我在公共存储库上安装了Travis-ci。完成执行后,它会生成一个我想上传到cloudinary.com的图像,但它可以是任何其他服务。
问题是要做到这一点,我需要在.travis.yml中添加auth令牌。但是我不想公开公开它,因为travis提供了一种保护Env变量的方法:http://docs.travis-ci.com/user/environment-variables/#Secure-Variables。但是它们不适用于PULL请求:
安全Env变量不适用于来自forks的拉取请求 将此类信息暴露给未知代码的安全风险。 加密和解密密钥绑定到存储库。如果你叉 一个项目并将其添加到Travis CI,它将具有不同的密钥 原始
任何人都知道如何添加可用于PUSH和PULL REQUESTS的隐藏值?
答案 0 :(得分:0)
正如您在问题中所写的那样:根据官方Travis CI文档https://docs.travis-ci.com/user/environment-variables,您将无法从不受信任的构建(例如拉取请求)访问这些变量。这是有道理的,因为有人可以向您的存储库提交包含恶意代码的拉取请求,然后暴露您的秘密值。
底线:如果你想让秘密值可用于提取请求,你必须假设它们不再是秘密 - 因此你也可以将未加密的值硬编码到.travis.yml
并从中使用它那里。这似乎不是一个好主意。 ; - )
您可能的解决方案:您可以使用提供匿名上传的图片托管服务商吗?您不需要auth密钥,因此您的pull请求也可以上传。