Pipeline Filter: Add Pipeline Status, Tag Name
<!-- The first four sections: "Problem to solve", "Intended users", "User experience goal", and "Proposal", are strongly recommended, while the rest of the sections can be filled out during the problem validation or breakdown phase. However, keep in mind that providing complete and relevant information early helps our product team validate the problem and start working on a solution. --> ### Problem to solve The project pipelines list (CI/CD > Pipelines) shows all pipelines triggered for the project but users need the ability to filter the list to focus on pipelines most relevant to them: *As a developer, I want to be able to zero in on things that matter to me, as opposed to things that matter to the whole team*. Pipeline filters was introduced in https://gitlab.com/gitlab-org/gitlab/-/issues/215367 with the ability to filter by Trigger Author and by Branch Name. In this issue we will add two additional pipeline filters: * **Pipeline Status** * **Tag Name** As well as filter pipelines by url query params like so: * `https://gitlab.com/gitlab-org/gitlab/pipelines?page=2&scope=all&username=pburdette` ### Intended users Personas are described at https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/ * [Sasha (Software Developer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sasha-software-developer) * [Devon (DevOps Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#devon-devops-engineer) ### User experience goal The user should be able to filter the pipelines list by `Pipeline Status` and by `Tag Name`. Design specs can be found in the [epic](https://gitlab.com/groups/gitlab-org/-/epics/3286) or here https://gitlab-org.gitlab.io/gitlab-design/hosted/dimitrie/ce18054-pipeline-filters-spec-previews/ ### Proposal Enable filtering the project pipeline list on the following criteria: * `pipeline status` * `tag name` for icons please use: * `status` * `tag` ### Further details - This issue is a scoped down issue of https://gitlab.com/gitlab-org/gitlab/-/issues/15268, which has been promoted to epic https://gitlab.com/groups/gitlab-org/-/epics/3286. ### Permissions and Security <!-- What permissions are required to perform the described actions? Are they consistent with the existing permissions as documented for users, groups, and projects as appropriate? Is the proposed behavior consistent between the UI, API, and other access methods (e.g. email replies)?--> ### Documentation Update list of available filters on the [View pipelines](https://docs.gitlab.com/ee/ci/pipelines/#view-pipelines) docs by adding the new pipeline filters added in this issue. ### Availability & Testing <!-- This section needs to be retained and filled in during the workflow planning breakdown phase of this feature proposal, if not earlier. What risks does this change pose to our availability? How might it affect the quality of the product? What additional test coverage or changes to tests will be needed? Will it require cross-browser testing? Please list the test areas (unit, integration and end-to-end) that needs to be added or updated to ensure that this feature will work as intended. Please use the list below as guidance. * Unit test changes * Integration test changes * End-to-end test change See the test engineering planning process and reach out to your counterpart Software Engineer in Test for assistance: https://about.gitlab.com/handbook/engineering/quality/test-engineering/#test-planning --> - What risks does this change pose to our availability? - No risk to our availability - How might it affect the quality of the product? - This will increase the quality of our product, adding values to UX by providing meaningful filtered data. - Will it require cross-browser testing? - Yes, please make sure all intended behaviors are the same cross-browser (i.e. Chrome, Firefox, IE, Safari ... etc.) - What additional test coverage or changes to tests will be needed? - Please see below Please list the test areas (unit, integration and end-to-end) that needs to be added or updated to ensure that this feature will work as intended. Please use the list below as guidance. * Unit test changes - Yes * Filter with `Status`, ensure table updates correctly with correct pipelines by pipeline status * Filter with `Tag`, ensure table updates correctly with correct pipelines by tag name * Filter with multiple filters (i.e. both status and tag) * Removing filters will update table data * Integration test changes * Ensure query params are correct when making api call * Ensure invalid/illegal inputs are being captured/handled appropriately * End-to-end test change - not required See the test engineering planning process and reach out to your counterpart Software Engineer in Test for assistance: https://about.gitlab.com/handbook/engineering/quality/test-engineering/#test-planning ### Links / references Related backend work: [Backend work for Pipeline Filter - Pipeline Status, Tag Name](https://gitlab.com/gitlab-org/gitlab/-/issues/217748)
issue