我正在构建一个为第三方服务提供API的开源库。在此期间,我学习测试,git-flow和持续部署,并遇到了与确保开源项目的环境变量相关的问题。
我目前通过travis cli生成了秘密环境变量:travis encrypt key=value
,用于自动系统测试。
在推送对功能分支或拉取请求的更新时,注意到测试由travis ci自动运行,这很棒。但是我开始想知道是什么保护我免受某人发出拉动请求,这些请求恶意收集process.env
对象并将其推送到外部,从而揭示了我宝贵的环境变量。
如何真正确保环境凭据(例如API凭证)在travis ci中受到系统测试的保护?
我是否应该创建系统测试?或者我应该伪造对外部服务的请求?
答案 0 :(得分:0)
Travis CI文档说:
为了保护安全数据,Travis CI仅提供安全数据 来自同一存储库的pull请求。考虑这些 值得信赖,因为只有对存储库具有写访问权限的成员才能 发送它们。
从分叉存储库发送的拉取请求没有此数据 在他们的构建中可用。所有被视为机密的数据 不会被添加到构建的环境中。
https://docs.travis-ci.com/user/pull-requests#Security-Restrictions-when-testing-Pull-Requests