Consider adding maintainers to .gitlab/CODEOWNERS file
Problem
Starting %13.0 adding groups to .gitlab/CODEOWNERS is possible which makes assigning team groups to specific code paths easy
Proposal
Make the Monitor group CODEOWNERS of code we are responsible for.
Since we don't have any guidelines on how to organize the section these options are possible:
1️⃣ Use stage name as section [Monitor]
Example:
...
[Monitor]
# APM
## Metrics
app/assets/javascripts/pages/projects/environments/metrics @gitlab-org/monitor/apm/frontend-team
app/assets/javascripts/pages/projects/prometheus/metrics @gitlab-org/monitor/apm/frontend-team
app/controllers/concerns/metrics @gitlab-org/monitor/apm/backend-team
app/finders/metrics @gitlab-org/monitor/apm/backend-team
app/models/metrics @gitlab-org/monitor/apm/backend-team
app/policies/metrics @gitlab-org/monitor/apm/backend-team
app/services/metrics @gitlab-org/monitor/apm/backend-team
app/services/projects/prometheus/metrics @gitlab-org/monitor/apm/backend-team
app/views/projects/prometheus/metrics @gitlab-org/monitor/apm/backend-team
app/workers/metrics @gitlab-org/monitor/apm/backend-team
...
# /APM
# Health
## Status Page
/ee/app/assets/javascripts/status_page_settings @gitlab-org/monitor/health/backend-team
/ee/app/finders/status_page @gitlab-org/monitor/health/backend-team
/ee/app/models/status_page @gitlab-org/monitor/health/backend-team
/ee/app/serializers/status_page @gitlab-org/monitor/health/backend-team
/ee/app/services/concerns/status_page @gitlab-org/monitor/health/backend-team
/ee/app/services/status_page @gitlab-org/monitor/health/backend-team
/ee/app/workers/status_page @gitlab-org/monitor/health/backend-team
/ee/lib/status_page @gitlab-org/monitor/health/backend-team
...
## Incident Management
...
2️⃣ Use group names as section [Monitor:APM] and [Monitor:Health]
...
[Monitor:APM]
# Metrics
app/assets/javascripts/pages/projects/environments/metrics @gitlab-org/monitor/apm/frontend-team
app/assets/javascripts/pages/projects/prometheus/metrics @gitlab-org/monitor/apm/frontend-team
app/controllers/concerns/metrics @gitlab-org/monitor/apm/backend-team
app/finders/metrics @gitlab-org/monitor/apm/backend-team
app/models/metrics @gitlab-org/monitor/apm/backend-team
app/policies/metrics @gitlab-org/monitor/apm/backend-team
app/services/metrics @gitlab-org/monitor/apm/backend-team
app/services/projects/prometheus/metrics @gitlab-org/monitor/apm/backend-team
app/views/projects/prometheus/metrics @gitlab-org/monitor/apm/backend-team
app/workers/metrics @gitlab-org/monitor/apm/backend-team
...
[Monitor:Health]
# Status Page
/ee/app/assets/javascripts/status_page_settings @gitlab-org/monitor/health/backend-team
/ee/app/finders/status_page @gitlab-org/monitor/health/backend-team
/ee/app/models/status_page @gitlab-org/monitor/health/backend-team
/ee/app/serializers/status_page @gitlab-org/monitor/health/backend-team
/ee/app/services/concerns/status_page @gitlab-org/monitor/health/backend-team
/ee/app/services/status_page @gitlab-org/monitor/health/backend-team
/ee/app/workers/status_page @gitlab-org/monitor/health/backend-team
/ee/lib/status_page @gitlab-org/monitor/health/backend-team
...
# Incident Management
...
3️⃣ Use category names as section [Metrics], [Status Page], [Incident Management]
[Metrics]
app/assets/javascripts/pages/projects/environments/metrics @gitlab-org/monitor/apm/frontend-team
app/assets/javascripts/pages/projects/prometheus/metrics @gitlab-org/monitor/apm/frontend-team
app/controllers/concerns/metrics @gitlab-org/monitor/apm/backend-team
app/finders/metrics @gitlab-org/monitor/apm/backend-team
app/models/metrics @gitlab-org/monitor/apm/backend-team
app/policies/metrics @gitlab-org/monitor/apm/backend-team
app/services/metrics @gitlab-org/monitor/apm/backend-team
app/services/projects/prometheus/metrics @gitlab-org/monitor/apm/backend-team
app/views/projects/prometheus/metrics @gitlab-org/monitor/apm/backend-team
app/workers/metrics @gitlab-org/monitor/apm/backend-team
...
[Status Page]
/ee/app/assets/javascripts/status_page_settings @gitlab-org/monitor/health/backend-team
/ee/app/finders/status_page @gitlab-org/monitor/health/backend-team
/ee/app/models/status_page @gitlab-org/monitor/health/backend-team
/ee/app/serializers/status_page @gitlab-org/monitor/health/backend-team
/ee/app/services/concerns/status_page @gitlab-org/monitor/health/backend-team
/ee/app/services/status_page @gitlab-org/monitor/health/backend-team
/ee/app/workers/status_page @gitlab-org/monitor/health/backend-team
/ee/lib/status_page @gitlab-org/monitor/health/backend-team
...
[Alert Management]
app/assets/javascripts/alert_management @gitlab-org/monitor/health/frontend-team
app/assets/javascripts/pages/projects/alert_management @gitlab-org/monitor/health/frontend-team
app/assets/stylesheets/pages/alert_management @gitlab-org/monitor/health/backend-team
app/finders/alert_management @gitlab-org/monitor/health/backend-team
app/graphql/mutations/alert_management @gitlab-org/monitor/health/backend-team
app/graphql/resolvers/alert_management @gitlab-org/monitor/health/backend-team
app/graphql/types/alert_management @gitlab-org/monitor/health/backend-team
app/models/alert_management @gitlab-org/monitor/health/backend-team
app/policies/alert_management @gitlab-org/monitor/health/backend-team
app/presenters/alert_management @gitlab-org/monitor/health/backend-team
app/services/alert_management @gitlab-org/monitor/health/backend-team
app/views/projects/alert_management @gitlab-org/monitor/health/backend-team
lib/gitlab/alert_management @gitlab-org/monitor/health/backend-team
...
Reorganize group structure of gitlab-org/monitor
In order to support group names like @gitlab-org/monitor/health/frontend-team or @gitlab-org/monitor/apm/backend-team etc. we'd need to tweak our current group structure of https://gitlab.com/gitlab-org/monitor (image)
🅰 gitlab-org/monitor/GROUP/END-team
We could "convert" APM and Health projects to groups and create groups like:
- https://gitlab.com/gitlab-org/monitor/apm/backend-team
- https://gitlab.com/gitlab-org/monitor/apm/frontend-team
- https://gitlab.com/gitlab-org/monitor/health/backend-team
- https://gitlab.com/gitlab-org/monitor/health/frontend-team
🅱 gitlab-org/monitor/GROUP-END-team
Alternatively, we could use @gitlab-org/monitor/health-frontend-team (note the the -) so we end up with:
- https://gitlab.com/gitlab-org/monitor/apm-backend-team
- https://gitlab.com/gitlab-org/monitor/apm-frontend-team
- https://gitlab.com/gitlab-org/monitor/health-backend-team
- https://gitlab.com/gitlab-org/monitor/health-frontend-team
Note, because of gitlab-org/gitlab#215070 (closed) we need to create a "Placeholder" project (example https://gitlab.com/gitlab-org/secure/threat-insights-frontend-team/placeholder) to make this group mentionable