提问者:小点点

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


我想在从 gitlab 生成合并请求时运行脚本,我“认为”我有 3 种选择 git hook gitlab webhook gitlab 触发器

我将不胜感激的一些意见任何人谁做过这之前和什么将是最好的方法

谢谢你。


共3个答案

匿名用户

Git 钩子是原生的 Git 功能,git 没有合并请求的概念——它们是 GitLab 和竞争对手平台的一个功能。因此,在这种情况下,git 钩子将无法满足您的需求。

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

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

匿名用户

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

在项目设置页面上有这些选项-

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

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

希望这对其他人有所帮助

匿名用户

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