1

我正在构建一个为 3rd 方服务提供 API 的开源库。在此期间,我正在学习测试、git-flow 和持续部署,并遇到了一个与保护开源项目的环境变量相关的问题。

我目前已经通过 travis cli: 生成了秘密环境变量
travis encrypt key=value,用于自动化系统测试。

在将更新推送到功能分支或拉取请求时,注意到测试是由 travis ci 自动运行的,这很棒。但我开始想知道是什么保护我免受有人发出拉取请求,恶意收集process.env对象并将其推送到外部的东西,从而暴露我宝贵的环境变量。

如何真正确保在 travis ci 中保护环境凭据(例如 API 凭据)以进行系统测试?

我什至应该创建系统测试吗?或者我应该伪造对外部服务的请求?

4

1 回答 1

0

Travis CI 文档说:

为了保护安全数据,Travis CI 仅在来自同一存储库的拉取请求上可用。这些被认为是值得信赖的,因为只有对存储库具有写入权限的成员才能发送它们。

从分叉存储库发送的拉取请求在其构建中没有可用的数据。所有被视为机密的数据都不会添加到构建环境中。

https://docs.travis-ci.com/user/pull-requests#Security-Restrictions-when-testing-Pull-Requests

于 2016-06-09T19:19:06.047 回答