如何使用 GitLab 在服务器端触发 git 挂钩

How to trigger a git hook in server-side using GitLab

所以我需要在从任何分支合并到我的存储库中开发分支的过程中对某些文件名进行验证。我搜索了很多,但我发现的唯一例子是集成 Jenkins 和 GitLab 在每个 commit/push 等

中构建项目

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

Jenkins GitLab hook plugin 用于监听和接收发送到 GitLab(对于给定存储库)的每个推送事件。

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


如果你的 GitLab 实例是on-premise,那么你可以考虑设置一个“Custom server-side Git hooks”,比如:

  • 一个 pre-receive 挂钩,如果它不符合某些条件,它可能会使推送无效
  • 一个 post-receive 可以修改一些文件的挂钩(可能添加新的额外提交)