Skip to content

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.

Technical details (frontend proposal)

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:

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.

Edited by Miranda Fluharty