是否可以阻止git pull / fetches?

时间:2013-10-31 14:31:40

标签: git jenkins rebase

在我们的项目中,我们有一个从远程主分支运行的jenkins作业。开发人员经常从此远程主服务器进行重新绑定,以将最新更改提取到其本地副本中。 我们想要的是当jenkins被打破时(红色或黄色球)避免这种变化。说明是“只有当jenkins是绿色的时候才会变质”,但......人们很懒: - )

那么,我们可以在jenkins作业中做些什么来阻止执行失败时的git repo吗?

祝你好运!

1 个答案:

答案 0 :(得分:0)

在合并到您的git存储库之前,您似乎没有验证您的提交,而是在频繁的时间间隔内合并到git之后验证它们。

我认为除了从git存储库中删除所有用户的ssh-key之外,我们无法禁用git pull,这是不可行的。 我们可以在Jenkins中有一个post构建步骤,它可以操作Git中的authorized_keys文件来阻止对git repo的访问。 (我不确定它是否有效)

我们有一个相同的场景,每个构建+验证需要大约2个小时,我们无法真正为每个提交强制执行此测试。但我们能够处理这种情况。

如果您使用的是gerrit:

我们可以拥有自己的脚本,而不是使用Jenkins Gerrit-trigger插件,该脚本将轮询整个gerrit以获得所有批准并准备合并并运行验证的更改。验证成功后,该作业中的所有更改将自动合并(在Gerrit中提交)。有了这个,我们可以避免合并的错误提交。

如果您不使用gerrit:

我们可以有两个单独的分支

  1. 开发分支(所有开发人员推送他们的更改)
  2. 集成分支(开发人员可以从中获取更改)
  3. 所有开发人员都会将他们的更改推送到开发分支,并且在频繁的时间间隔内我们可以验证开发分支并仅在验证成功时将更改推送到集成分支。