首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用Travis-CI的拉请求

禁用Travis-CI的拉请求
EN

Stack Overflow用户
提问于 2014-01-12 15:46:12
回答 2查看 2.6K关注 0票数 10

我有一个项目,使用Travis-CI来构建和rsync一个静态网站.我使用以下方法来确保这只发生在master中。

代码语言:javascript
复制
branches:
  only:
    - master

然而,当有人在存储库上提出请求时,Travis-CI前瞻性地将该分支合并到Master并进行构建和rsync,这意味着任何人都可以通过提交一个pull请求来替换我网站的任何内容。

是否有办法防止Travis-CI试图构建拉请求?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-28 13:30:41

你不能禁用拉请求生成吗?至少在撰写本文时,我认为这是每个回购设置的一种选择:

票数 7
EN

Stack Overflow用户

发布于 2014-01-12 15:49:31

您可以通过检查环境变量TRAVIS_PULL_REQUEST来了解Travis是否正在检查拉请求。它包括:

如果当前作业是拉请求,则为拉请求号,如果不是拉请求,则为"false“。

另见the docs

您可以更改命令以检查此命令,并且只能在非拉请求上使用

代码语言:javascript
复制
if [[ $TRAVIS_PULL_REQUEST == 'false' ]]; then your-command; fi

为了避免@ruslo描述的场景,您可以(而且应该!)使用encrypted environment variables构建rsync连接。这些请求在拉请求(至少是来自叉子的请求)中是不可用的,因此这里的一切都是安全的:

请注意,安全env变量不适用于来自叉的拉请求。这是因为在提交的代码中公开此类信息的安全风险。每个人都可以提交一个拉请求,如果有一个未加密的变量可用,它可以很容易地显示。

(文档中所述的原因是不同的,但这种机制在这里也会起作用。)

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21076678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档