git - 如何使用 GitLab 在服务器端触发 git 钩子
问题描述
因此,我需要在从任何分支合并期间对某些文件名进行验证,以便在我的存储库中开发分支。我搜索了很多,但我发现的唯一示例是集成 Jenkins 和 GitLab 以在每次提交/推送等中构建项目。
但是是否可以在服务器端以某种方式配置要执行的预推送脚本(可能由 Jenkins),所以每次收到推送以将某些内容合并到这个开发分支时,我都会执行我的自定义脚本?我不想构建它,只对文件进行验证以能够停止或不停止推送请求。
解决方案
Jenkins GitLab 钩子插件用于侦听和接收发送到 GitLab(对于给定存储库)的每个推送事件。
从那里您可以使用您要执行的脚本触发您想要的任何 Jenkins 作业(不一定是构建作业)。
如果您想在合并到开发分支之前执行所述脚本,您需要让 webhook 监控推送事件在专用分支上完成(这将触发脚本,然后合并到开发和推送)
如果您的 GitLab 实例是内部部署的,那么您可以考虑设置“自定义服务器端 Git 挂钩”,例如:
- 一个 pre-receive 钩子,如果它不符合某些标准,它可能会使推送无效
- 可以修改某些文件的接收后挂钩(可能添加新的附加提交)
推荐阅读
- python - 如何使用具有 blit=True 的 FuncAnimation 为 Poly3DCollection 设置动画?
- python - 为什么 Map 工作但 Apply 引发 ValueError
- c++ - 偶数和奇数矢量位置
- tensorflow - tensorflow:与批处理时间相比,回调方法`on_train_batch_end`很慢
- oracle - 如何使用 Oracle 获取年初至今 (YTD) 的数据计数?
- go - AWS Go SDK lambda.Start() 编译错误
- r - 为什么迭代所有循环但只在 R 上显示最终结果?
- ruby-on-rails - Rails counter_cache on has_many 通过
- php - 将变量从 PHP 文件发送到另一个 PHP 文件
- mysql - Spring Data R2DBC mysql - 日志查询和查询参数