如何编写自定义 GitLab 审批规则?

How to write custom GitLab approval rules?

我的团队正在使用 GitLab Premium。在项目设置中,在 Merge request approvals 下,有一个 Approval rules 部分。在第一行,我们将 Approvals required 数量增加到 1,这样每个合并请求都必须得到至少一个其他队友的批准。到目前为止一切顺利。

我可以看到还有一个 License-Check 规则和 Coverage-Check 规则可以启用,它们的作用是非常不言自明。还有一个 添加批准规则 按钮,您可以在其中为新规则设置名称和批准者,但实际上 describe/choose 实际规则应该是什么。我能找到的所有文档都简单地解释了如何单击 UI。

您实际上是如何设置新规则的?是否可以编写自己的自定义规则?

例如,我们想设置一个规则,只有团队的一个子集可以批准“大型”合并请求(其中“大型”由更改的行数定义,如 [=35 报告的那样) =] 日志)。我想这会类似于 License-CheckCoverage-Check,但由我们编写。这可能吗?

我认为这还不可能。目前,审批规则为 branch-specific。合并请求的内容无关紧要。

尽管如此,我认为有一个解决方案适合您:GitLab 允许您编写可以访问 GitLab API 的机器人。您需要的是侦听新合并请求的外部服务。然后,您的工具必​​须以某种方式找出实际进行了多少更改(Merge Request API as far as I can tell). Depending on this, you can then adjust the approval rules via the API for the corresponding MR (API reference 还不可能做到这一点)。

这个方法对你有帮助吗?

您也可以在 GitLab Community Forum 中提问,在那里您可能会得到更好的帮助。