【问题标题】:In Travis Public Repository how to add a Secure variable that works on Pull requests too在 Travis 公共存储库中,如何添加一个适用于拉取请求的安全变量
【发布时间】:2015-07-03 14:36:59
【问题描述】:

我在公共存储库中有 Travis-ci。完成执行后,它会生成一个我想上传到 cloudinary.com 的图像,但它可以是任何其他服务。

问题在于,我需要在 .travis.yml 中添加身份验证令牌。但我不想公开它,为此 travis 提供了一种保护 Env 变量的方法:http://docs.travis-ci.com/user/environment-variables/#Secure-Variables。但是它们不适用于 PULL 请求:

由于分叉的拉取请求,安全环境变量不可用 将此类信息暴露给未知代码的安全风险。 加密和解密密钥与存储库相关联。如果你分叉 一个项目并将其添加到 Travis CI,它将具有不同的密钥 原创。

任何人都知道如何添加可用于 PUSH 和 PULL REQUESTS 的隐藏值?

【问题讨论】:

  • 那么简单地合并拉取请求并不能解决问题?
  • 不,因为我想对发送未知人员的拉取请求运行自动化测试。如果他们通过测试,那么我将合并这些拉动。 Travis 将根据测试结果自动对这些拉取请求执行 cmets。由于同样的原因,我无法在此答案stackoverflow.com/questions/18027115/… 中使用回复。它会影响拉取请求
  • 您是否了解如何使用可用于拉取请求的 travis 安全变量?
  • 还没有@SaurabhShah
  • 如果您发布一个指向您的存储库的链接,我可以查看一下,看看您的.travis.yml 与我们项目中的github.com/eclipse/scanning/blob/master/.travis.yml 有什么不同之处:github.com/eclipse/scanning/blob/master/.travis.yml

标签: security authentication travis-ci


【解决方案1】:

正如您在问题中所写的那样:根据 Travis CI 官方文档https://docs.travis-ci.com/user/environment-variables,您将无法从不受信任的构建(例如拉取请求)中访问这些变量。这是有道理的,因为有人可以向您的存储库提交包含恶意代码的拉取请求,然后公开您的秘密值。

底线:如果您想让秘密值可用于拉取请求,您必须假设它们不再是秘密 - 因此您也可以将未加密的值硬编码到您的 .travis.yml 并从那里使用它。这似乎不是一个好主意。 ;-)

在您的情况下可能的解决方案:您可以只使用提供匿名上传的图片托管服务吗?您不需要身份验证密钥,因此您的拉取请求也可以上传。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-25
    • 2011-04-27
    • 1970-01-01
    • 2013-06-10
    • 2016-12-26
    • 2018-10-14
    • 2018-05-20
    • 1970-01-01
    相关资源
    最近更新 更多