Add JIRA change ticket ID to chain of custody report

Problem to solve

Compliance-minded organizations have strict auditing requirements that force them to document all changes they make to production environments. Part of this process involves the use of a change control system such as JIRA or ServiceNow where change tickets are created to document the business case for the change. Since these systems are external to GitLab, there's currently no way to formally establish a relationship between a GitLab MR and the required change ticket.

Intended users

User experience goal

When downloading the chain of custody report, the report should contain any related change ticket linked to each respective MR.

Proposal

Add an additional column to the chain of custody report for Change Ticket, which should list any ticket ID added to an MR by way of #235616 (closed).

Merge Commit Author Merge Request Merged By Pipeline Group Project Approver(s) Change Ticket
SHA Bugs !45 Bugs pipeline_id My-Group awesome-project Daffy Duck TICKET-1234
SHA Lola !45 Lola pipeline_id My-Group awesome-project Marvin TICKET-1234
SHA Daffy !46 Daffy pipeline_id My-Group awesome-project Lola TICKET-567
SHA Yosemite !46 Yosemite pipeline_id My-Group awesome-project Marvin TICKET-567
SHA Marvin !46 Marvin pipeline_id My-Group awesome-project Lola TICKET-567
SHA Lola !47 Lola pipeline_id My-Group awesome-project Bugs TICKET-8910

Implementation plan

  1. Add a new Change Ticket column to MergeCommits::ExportCsvService#header_to_value_hash with the value coming from the #235616 (closed) implementation
  2. Update ee/spec/services/merge_commits/export_csv_service_spec.rb and other related tests to test the new column

Further details

Edited by Sam Kerr