Add a filtering feature to the compliance report
Problem to solve
Every research participant commented on the usefulness of being able to filter data by projects they care about, and for organizations that have hundreds of projects under a group this will be necessary to make the data in the report searchable.
Proposal
Add a filter section like the vulnerability report based on Projects and a Date Range for Merged Date.
Non-obvious design assumptions
- Page would load the last 30 days in the date picker automatically, with no range restriction (ideally).
- Filter by all projects by default
Implementation
frontend weight
Report app
- Only show loading when the app is initializing (loading for first time)
- Remove the default empty state for no merge requests, since it could be that there are, but there are simply no violations or filter results.
Filter component
- Fetch a list of all the projects in the current group.
- Render the filters:
-
Projects
usingGlDropdown
with search.- By default, select
All projects
. - Show loading while the list of projects is being fetched.
- Allow the user to pick multiple projects.
- By default, select
-
Daterange
usingGlDateRangePicker
for the last 30 days.
-
- When a filter is updated, update the URL query params.
- When the page loads, get the query params from the URL.
Table
- Query the GraphQL endpoint being added in #327119 (closed) using the filter params.
- Show the table loading state.
- Show the filtered results.
- Show an empty table if no violations are found.
Specs & documentation
- Update specs
- Add filter to compliance report documentation
Edited by Jiaan Louw