Display the current coverage data for each selected project
Problem to solve
As a development team lead, I want a view of the current average code coverage for all the projects I selected, so that I can spot projects that are behind our targets and prioritize 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
- Being able to see the coverage for all projects selected in the GitLab UI saves Delaney a step of downloading the data and viewing in a spreadsheet.
- Delaney would like to be able to click into a project to get specific data by job for that project.
- Clicking on the GitLab.org project would go go the Analytics -> CI/CD page.
Proposal
Add a project selector to select one or more projects from the group.
Add a paginated table to display the following fields per selected project:
- project name
- coverage value
- number of coverage jobs
- date of coverage calculation (because coverage may not be updated daily)
- ability to click through to the project's repository analytics (the project-level equivalent of this group-level page)
- by default, sort the view by most recent coverage calculation time/date
For example:
Project | Coverage | Number of coverage jobs | Date calculated |
---|---|---|---|
Project1 | 55% | 2 | 2020-08-10 |
Project2 | 89% | 2 | 2020-07-31 |
A view similar to a project list or a table is what we think is the correct interface for this. There may be hundreds of selected projects so a graph is not always the ideal data presentation method.
The design for this interface can be seen in design 3.
Stretch ideas / future iteration opportunities: make the table sortable by coverage, date, project name.
frontend proposal)
Technical details (We'll need to:
- add a new section on the Group -> Analytics -> Repositories page (the page is being added in !37853 (merged))
- insert a new vue app to handle the rest, probably inside of
ee/app/assets/javascripts/analytics
, which consists of:- a search box or dropdown allowing the selection of multiple projects within the group
- maybe reuse
ee/app/assets/javascripts/analytics/shared/components/projects_dropdown_filter.vue
, which can be seen in action on the group value stream analytics page).
- maybe reuse
- an async call to get the coverage data for the selected projects
- use the finder introduced in !37768 (merged) (not sure if the endpoint exists yet
🤔 )
- use the finder introduced in !37768 (merged) (not sure if the endpoint exists yet
- a table to display the data
- sort this table (by default) by most recently generated coverage report
- each row should link to its project's
Repository Analytics
page
- a search box or dropdown allowing the selection of multiple projects within the group
Documentation
- Add a new screenshot to the docs with the new interface.
What does success look like, and how can we measure that?
Acceptance criteria
- The table displays all the data selected
- A user can click through to a project's Coverage Graph
Measure of Success
- This feature will be successful if there are 100 daily views of the page 30 days after launch of the feature. This will be measured by tracking page views.
Is this a cross-stage feature?
No.