Implementation: Generate a commit SHA-specific chain of custody report [Frontend]
### Problem to solve This is the ~frontend implementation issue for `Generate a commit SHA-specific chain of custody report` https://gitlab.com/groups/gitlab-org/-/epics/4608. ### User experience goal An `administrator` or `group owner` input a specific commimt SHA into a [chain of custody](https://gitlab.com/gitlab-org/gitlab/-/issues/213364) download prompt and receive a CSV report in the same format, but which shows the MR, pipeline, author, approver, etc for that specific commit SHA. ### Intended users * [Cameron (Compliance Manager)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#cameron-compliance-manager) * [Delaney (Development Team Lead)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#delaney-development-team-lead) * [Sasha (Software Developer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sasha-software-developer) * [Sidney (Systems Administrator)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sidney-systems-administrator) * [Rachel (Release Manager)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#rachel-release-manager) ### Proposal Update the [chain of custody report](https://gitlab.com/gitlab-org/gitlab/-/issues/213364) to filter the criteria to show only data points related to the specific commit SHA provided by a user. 1. An `admin` or `group owner` clicks on the `export` button and sees a prompt 1. Their options could be: `[List of all merge requests]` or `[ Search Commit SHA]` 1. Using the second option, they input `1a2bc3` to find a commit sha report 1. They receive the same report as we've built in https://gitlab.com/gitlab-org/gitlab/-/issues/213364, but it would show *only* data related to the specific commit SHA | Empty State | Error | Long hash | |-------------|-------|-----------| | ![Empty_state](https://gitlab.com/groups/gitlab-org/-/uploads/e4da5f6dd30ddafa6b7c281f3ade2820/Empty_state.png) | ![Error](https://gitlab.com/groups/gitlab-org/-/uploads/945e7e57ff57240ab4854d00c553c38d/Error.png) | ![Long_Commit_SHA](https://gitlab.com/groups/gitlab-org/-/uploads/8ca5a43f2de36b2d74af57d7ed992762/Long_Commit_SHA.png) | ### Implementation 1. Change the `List all merge commits` button to a [button with dropdown](https://design.gitlab.com/components/dropdowns/#button-combinations) with the new input form. 1. On input done, check if the hash is valid with a simple regular expression. 1. On export click, submit the commit hash to the `mergeCommitsCsvExportPath`.
issue