Graph the average code coverage of all of a group's projects
Release notes
The previously released Repository Analytics for Group Test Coverage is an easy way to see the current test coverage for projects in a group and get data for visualization outside of GitLab. Group Test Coverage now includes a graph of the average of all project test coverage over time to provide at a glance how test coverage for the group is trending over time.
Problem to solve
As a development team lead, I want a single image to show the current code coverage and how it's trending over time, so I can quickly get the test coverage data that Dakota is asking for and get back to work.
From the epic: As a development team lead, I want a single page of code coverage data for my group's projects, so I can quickly get the test coverage data Dakota is asking for and get back to work.
Intended users
Further details
- Ultimately Dakota wants one graph to tell the story that code coverage is increasing. This is that graph.
- This saves Delaney the step of creating the graph themselves after downloading the data.
Proposal
- By default include all projects that belong to a group and have jobs with coverage data calculated.
- This does not include sub-groups at this time. We'll cover this in a future iteration.
- By default include just the value(s) from the default branch for each project
- We know that "average" of these is not a great number but by providing links into projects and other data within the projects Delaney and their team can make informed decisions. This is intended to provide a starting point for conversation.
- Average in this case will be (sum of job coverage values / number of jobs with coverage value)
- Add the data to the GraphQL API for historic coverage data to build the graph of the average coverage over time @morefice can you help fill in the technical bits and schema with @mfluharty
Frontend
Add a new section/component (TestCoverageGraph
?) to group_repository_analytics.vue
to handle the following:
- Load recent coverage data (
codeCoverageActivities
) via GraphQL, see example query below - Display the data as a line graph using GlAreaChart with coverage value as the vertical axis and time as the horizontal axis - we can steal some inspiration from the
Code coverage statistics for master
section of the existing Project Repository Analytics page (source code link)
{
group(fullPath: "gitlab-org") {
name
id
codeCoverageActivities(startDate: "2020-10-20") {
nodes {
projectCount
averageCoverage
coverageCount
date
}
}
}
}
Permissions and Security
None.
Documentation
- Add a screenshot and a blurb to the existing documentation
- Add any caveats, exceptions, etc. to the documentation
Availability & Testing
What does success look like, and how can we measure that?
Acceptance Criteria
- Graph is displayed by default on the page
- The page loads in around 1 second (without graph) and the graph loads within 10 seconds for the gitlab.org group page.
Measures of success
- We expect that 30 days after launch of this feature weekly page views of the analytics page will increase to 100 per week on gitlab.com.
What is the type of buyer?
Dakota - The Application Development Director is the buyer for this feature.
This will be built for GitLab Premium
Is this a cross-stage feature?
No.