gitlab在请求合并时实现一个钩子

时间:2017-06-13 14:39:56

标签: git gitlab

我想在从gitlab生成合并请求时运行脚本 我想'我有3个选择 git hook gitlab webhook gitlab触发器

我很感激之前做过这件事的人的一些建议以及最好的方法

由于

3 个答案:

答案 0 :(得分:1)

Git钩子是一个原生的Git功能,git does not have a concept of merge requests - they are a feature of GitLab and competitor's platforms。因此,在这种情况下,git hook无法满足您的需求。

GitLab webhooks是您正在寻找的解决方案,因为它们可以在打开合并请求时触发,see docs。它们通过调用HTTP(S)端点来工作,因此如果您的脚本设置为根据对此端点的请求运行,或者通过某些外部构建过程(例如Jenkins)运行,那么这些应该满足您的需求。

触发器用于通过GitLab(CI)“触发”项目的重建  (重新运行gitlab管道或外部构建),see docs。因此,如果可以使用gitlab CI或可以集成到GitLab中的外部构建过程来设置要运行的脚本,它们可能会满足您的需求。

答案 1 :(得分:0)

好吧,我似乎找到了一个更简单的答案

在项目设置页面上有以下选项 -

Merge Requests

Only allow merge requests to be merged if the build succeeds 
Builds need to be configured to enable this feature. 
Only allow merge requests to be merged if all discussions are resolved

如果构建失败,设置第一个将阻止合并进程

希望这有助于其他人

答案 2 :(得分:0)

从Gitlab 11.4开始,您可以在GitlabCI / CD中指定管道任务以仅在具有"pipelines for merge requests“功能的合并请求的上下文中触发。
因此,在您的情况下,您将为这种管道指定特定的脚本。