git - 如何仅在 merge 请求 merge 后触发 bash 脚本?

标签 git gitlab gitlab-ci

我写了一个像这样的简单的 gitlab-ci.yml

job1:
  script: 
  - echo hello

目前,只要将提交推送到任何分支,就会触发脚本。

如何配置 gitlab-ci 使这个脚本只在 merge 请求 merge 到 master 分支后触发?

我在 only 中找不到如何实现我的目标关键词。

Settings -> Integrations 页面中有一个Merge request events选项,似乎提供了接近我想要的功能。

enter image description here

最佳答案

基于问题here , 我用 gitlab-webhook-translator在 merge 请求 merge 后触发脚本。

这里的关键点是设置条件为":object_kind == 'merge_request' && :object_attributes.work_in_progress === false && :object_attributes.state == 'merged'".

我想提的另一件事是,我们必须在 gitlab 中选中 Allow requests to the local network from hooks and services 框,以便我们可以使用 gitlab wbehooks。

enter image description here

我使用 a simple web server检查从 gitlab 发送的请求。这就是我如何发现 gitlab-webhook-translator 条件的 :object_attributes.state == 'merged' 选项。

关于git - 如何仅在 merge 请求 merge 后触发 bash 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53111869/

相关文章:

Android studio git 消息 : following untracked working tree files would be overwritten by merge, 但未显示哪些文件

git - 如何将 Git 存储库分支与 FTP 同步?

gitlab - 如何在 GitLab 中禁用两因素身份验证?

docker - 结束连接时出现错误,Gitlab ci 退出 lftp 命令

caching - Gitlab CI 中缓存/工件的正确用法是什么?

git - 为什么 "git flow feature pull"不跟踪?

git - 当 `git add --patch` 编辑很尴尬时,如何准备清晰的差异?

ssh - Gitlab 指纹已经被占用,部署 key 项目部署 key 指纹已经被占用

docker - Gitlab在Docker中从6.x迁移到8

docker - 如何解决这个 gitlab ci yaml 错误?职位 :test-on-scdf-tasks config contains unknown keys: trigger