Use triage-ops for hygiene-related rules instead of Danger
The challenge
We currently use Danger for several hygiene-related rules such as:
- https://gitlab.com/gitlab-org/ruby/gems/gitlab-dangerfiles/-/blob/master/lib/danger/rules/type_label/Dangerfile
- https://gitlab.com/gitlab-org/ruby/gems/gitlab-dangerfiles/-/blob/master/lib/danger/rules/commit_messages/Dangerfile
This has several drawbacks:
- This has a high maintenance cost since it requires updating Danger in many projects (and potentially also updating/releasing
gitlab-dangerfiles
prior to that) - This gets in the way of a consistent MR workflow/process experience across GitLab projects
- Due to 1., we cannot easily update nor enforce it at the same time for many projects
Additionally, one of our goal is to provide a consistent MR workflow/process experience across GitLab projects. One current focus is to ensure all "Product MRs" have a type label set.
By using Danger, we'd need to update a lot of different projects.
The proposal
If we implement this in triage-ops
instead, we at least solve the two problems listed above by:
- Reducing the maintenance cost since there's only one place to update and
triage-ops
is well-tested and completely under our control - This allows to provide a consistent experience across GitLab projects very quickly, as an update to the
triage-ops
reactive web service is deployed in seconds, and starts to be applied instantly after.
I suggest starting with the "type label" enforcement, and expanding later with other rules ("imported" from Danger or not).
Edited by Mek Stittri