我有一个项目,使用Travis-CI来构建和rsync一个静态网站.我使用以下方法来确保这只发生在master中。
branches:
only:
- master然而,当有人在存储库上提出请求时,Travis-CI前瞻性地将该分支合并到Master并进行构建和rsync,这意味着任何人都可以通过提交一个pull请求来替换我网站的任何内容。
是否有办法防止Travis-CI试图构建拉请求?
发布于 2015-06-28 13:30:41
你不能禁用拉请求生成吗?至少在撰写本文时,我认为这是每个回购设置的一种选择:

发布于 2014-01-12 15:49:31
您可以通过检查环境变量TRAVIS_PULL_REQUEST来了解Travis是否正在检查拉请求。它包括:
如果当前作业是拉请求,则为拉请求号,如果不是拉请求,则为"false“。
另见the docs。
您可以更改命令以检查此命令,并且只能在非拉请求上使用
if [[ $TRAVIS_PULL_REQUEST == 'false' ]]; then your-command; fi为了避免@ruslo描述的场景,您可以(而且应该!)使用encrypted environment variables构建rsync连接。这些请求在拉请求(至少是来自叉子的请求)中是不可用的,因此这里的一切都是安全的:
请注意,安全env变量不适用于来自叉的拉请求。这是因为在提交的代码中公开此类信息的安全风险。每个人都可以提交一个拉请求,如果有一个未加密的变量可用,它可以很容易地显示。
(文档中所述的原因是不同的,但这种机制在这里也会起作用。)
https://stackoverflow.com/questions/21076678
复制相似问题