Instance DevOps Report MVC
Problem
As a GitLab champion, I've been an advocate for the value that GitLab can bring to my company. As a result, we've invested into the tool and run a large EE instance on Premium or Ultimate - and I'd like to keep an eye on how teams are using the application.
Different teams will be adopting GitLab at different rates, and I'd like to find centers of excellence (teams that are early adopters and are models for using the tool to collaborate and ship). I'd also like to find teams that are lagging behind, and encourage them to use the application more.
It's also not a guarantee that my company will be using GitLab for all 10 stages, so I need to realize some value from the tool even if I'm only using GitLab for SCM.
Proposal
Create a new page in GitLab that shows instance-level insight into how teams are interacting with merge requests. We should enable two things:
- Allow users to create a segment, which creates a boundary around a specific set of groups (this could represent a team or a business unit).
- For each segment, show KPIs on how that segment is using GitLab.
Creating a segment
- Specify a set of groups/subgroups/projects under a segment label.
- Example: Project X, Project Y, and everything under Subgroup A == Search Department
Showing KPIs
- Show merge requests merged/author, time to merge, and total MRs merged.
- Show this on a monthly basis.
- Depict the trend from the previous month: increasing, decreasing, flat, or blank if no information is available.
Other questions
- How should we handle permissions?
- Where does this page go?
We should make this available to as many users as we can. Ideally, we should find a place in the UI for instance-level features. If we don't have one, we can make this page admin-only for now.
- How often should this page get updated?
Because of performance concerns, it probably won't be possible to query this information in real-time. We can compute this daily and communicate in the UI when the info was collected.