Consider adding maintainers to .gitlab/CODEOWNERS file
## Problem
Starting %"13.0" adding groups to [`.gitlab/CODEOWNERS`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/CODEOWNERS) is possible which makes assigning team groups to specific code paths easy :tada:
## 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:
### :one: 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
...
```
### :two: 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
...
```
### :three: 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](/uploads/e213bae3c7396d6d000b471d7d0ed9d6/Screenshot_2020-07-24_Groups___monitor.png))
### :a: `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
### :b: `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 https://gitlab.com/gitlab-org/gitlab/-/issues/215070 we need to create a "Placeholder" project (example https://gitlab.com/gitlab-org/secure/threat-insights-frontend-team/placeholder) to make this group mentionable_
issue