首页 > 解决方案 > 如何使用 GitLab 在服务器端触发 git 钩子

问题描述

因此,我需要在从任何分支合并期间对某些文件名进行验证,以便在我的存储库中开发分支。我搜索了很多,但我发现的唯一示例是集成 Jenkins 和 GitLab 以在每次提交/推送等中构建项目。

但是是否可以在服务器端以某种方式配置要执行的预推送脚本(可能由 Jenkins),所以每次收到推送以将某些内容合并到这个开发分支时,我都会执行我的自定义脚本?我不想构建它,只对文件进行验证以能够停止或不停止推送请求。

标签: gitjenkinsgitlabwebhooksgithooks

解决方案


Jenkins GitLab 钩子插件用于侦听和接收发送到 GitLab(对于给定存储库)的每个推送事件。

从那里您可以使用您要执行的脚本触发您想要的任何 Jenkins 作业(不一定是构建作业)。
如果您想在合并到开发分支之前执行所述脚本,您需要让 webhook 监控推送事件在专用分支上完成(这将触发脚本,然后合并到开发和推送)


如果您的 GitLab 实例是内部部署的,那么您可以考虑设置“自定义服务器端 Git 挂钩”,例如:

  • 一个 pre-receive 钩子,如果它不符合某些标准,它可能会使推送无效
  • 可以修改某些文件的接收后挂钩(可能添加新的附加提交)

推荐阅读