通过 MR 中 Comments 关键字内容触发 CI 流水线

问题(Problem to solve)

在合并请求中添加评论,评论中如出现某关键字(如 run ci),则触发极狐GitLab CI/CD 流水线。

客户链接(Customer Link)

https://jihulab.com/jh-presales/east/-/issues/258

  • 请@相关销售

解决方案(Proposal)

可以参考通过 Commit Message 来触发 GitLab CI 流水线的实现。内置了一个 CI_COMMIT_MESSAGE 的变量,在满足正则的情况下即可配合 Rules 去触发。 示例代码如下:

rspec:
  script: ...
  only:
    variables:
      - $CI_COMMIT_MESSAGE =~ /some-regexp/

这里具体的实现,可能是用类似 Push Events 的 Hooks 去做的,过滤的是 Payload 里 的 message 字段。

要实现 MR Comments 触发流水线,内置的 Merge Request 流水线变量似乎没有相关的变量,是否可以考虑添加一个类似 CI_MERGE_REQUEST_COMMENTS 的变量,然后基于正则去做匹配,最终触发流水线。

这个应该可以考虑使用 Merge Request Events 来做,Payload 里面有个 note 字段应该是记录具体的评论内容的。

针对的用户(Intended users)

功能使用度量指标(Feature Usage Metrics)- 可选