我有一个库,我用 FAKE 构建、打包并推送到 NuGet。工作正常。
现在,我想通过 Travis CI 以连续模式完成所有这些工作,包括“推送”部分。我知道存在安全问题,但似乎我可以通过将 NuGet API 密钥放在 Travis 环境变量中安全地(至少在原则上)做到这一点,因此它不适用于外部拉取请求,并且仅在构建特殊时推送专门的分支。
当 FAKE 遇到 Travis 时,问题就来了。
- 事实证明,当我使用Paket.Push 助手时,整个
paket.exe
命令行作为 FAKE 的输出发出,并带有我的 NuGet API 密钥。 - 同时,事实证明,Travis 允许任何未经身份验证的爱管闲事的人查看任何项目的完整构建日志。我的 NuGet API 密钥就在那里。
我知道我可以通过将 FAKE 重定向到/dev/null
(in .travis.yml
) 来禁用 FAKE 的整个输出,但我想保留大部分输出,只需用密钥隐藏该特定部分。
PaketPushParams
我在结构中找不到任何相关参数,谷歌也没有找到任何东西。下一步是查看 FAKE 源代码,看看输出是否是有条件的,但我想我会先问。我不能成为第一个打这个的人。:-)