Set specific reviewers for single codebase effort
This extends Danger so it informs MR authors that single codebase merge requests need to be approved by a specific group of engineers. Co-authored-by: Yorick Peterse <yorickpeterse@gmail.com>
This commit is contained in:
parent
a89df58527
commit
87d19300e3
3 changed files with 60 additions and 1 deletions
|
@ -12,3 +12,4 @@ danger.import_dangerfile(path: 'danger/duplicate_yarn_dependencies')
|
||||||
danger.import_dangerfile(path: 'danger/prettier')
|
danger.import_dangerfile(path: 'danger/prettier')
|
||||||
danger.import_dangerfile(path: 'danger/eslint')
|
danger.import_dangerfile(path: 'danger/eslint')
|
||||||
danger.import_dangerfile(path: 'danger/roulette')
|
danger.import_dangerfile(path: 'danger/roulette')
|
||||||
|
danger.import_dangerfile(path: 'danger/single_codebase')
|
||||||
|
|
|
@ -58,7 +58,9 @@ changes = helper.changes_by_category
|
||||||
changes.delete(:none)
|
changes.delete(:none)
|
||||||
categories = changes.keys - [:unknown]
|
categories = changes.keys - [:unknown]
|
||||||
|
|
||||||
unless changes.empty?
|
# Single codebase MRs are reviewed using a slightly different process, so we
|
||||||
|
# disable the review roulette for such MRs.
|
||||||
|
if changes.any? && !gitlab.mr_labels.include?('single codebase')
|
||||||
team =
|
team =
|
||||||
begin
|
begin
|
||||||
helper.project_team
|
helper.project_team
|
||||||
|
|
56
danger/single_codebase/Dangerfile
Normal file
56
danger/single_codebase/Dangerfile
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
def mention_single_codebase_approvers
|
||||||
|
frontend_maintainers = %w(@filipa @iamphill)
|
||||||
|
backend_maintainers = %w(@rspeicher @rymai @yorickpeterse @godfat)
|
||||||
|
|
||||||
|
rows = []
|
||||||
|
users = []
|
||||||
|
|
||||||
|
if gitlab.mr_labels.include?('frontend')
|
||||||
|
frontend_maintainer = frontend_maintainers.sample
|
||||||
|
|
||||||
|
rows << "| ~frontend | `#{frontend_maintainer}`"
|
||||||
|
users << frontend_maintainer
|
||||||
|
end
|
||||||
|
|
||||||
|
if gitlab.mr_labels.include?('backend')
|
||||||
|
backend_maintainer = backend_maintainers.sample
|
||||||
|
|
||||||
|
rows << "| ~backend | `#{backend_maintainer}`"
|
||||||
|
users << backend_maintainer
|
||||||
|
end
|
||||||
|
|
||||||
|
if rows.empty?
|
||||||
|
backup_maintainer = backend_maintainers.sample
|
||||||
|
|
||||||
|
rows << "| ~frontend / ~backend | `#{backup_maintainer}`"
|
||||||
|
users << backup_maintainer
|
||||||
|
end
|
||||||
|
|
||||||
|
markdown(<<~MARKDOWN.strip)
|
||||||
|
## Single codebase changes
|
||||||
|
|
||||||
|
This merge request contains changes related to the work of moving towards a
|
||||||
|
[single codebase](https://gitlab.com/groups/gitlab-org/-/epics/802) for
|
||||||
|
Community Edition and Enterprise Edition. These changes will need to be
|
||||||
|
reviewed and approved by the following engineers:
|
||||||
|
|
||||||
|
| Category | Reviewer
|
||||||
|
|----------|---------
|
||||||
|
#{rows.join("\n")}
|
||||||
|
|
||||||
|
To make sure this happens, please follow these steps:
|
||||||
|
|
||||||
|
1. Add all of the mentioned users to the list of merge request approvals.
|
||||||
|
2. Assign the merge request to the first person in the above list.
|
||||||
|
|
||||||
|
If you are a reviewer, please follow these steps:
|
||||||
|
|
||||||
|
1. Review the merge request. If it is good to go, approve it.
|
||||||
|
2. Once approved, assign to the next person in the above list. If you are
|
||||||
|
the last person in the list, merge the merge request.
|
||||||
|
MARKDOWN
|
||||||
|
end
|
||||||
|
|
||||||
|
if gitlab.mr_labels.include?('single codebase')
|
||||||
|
mention_single_codebase_approvers
|
||||||
|
end
|
Loading…
Reference in a new issue