Create PagerDuty Incidents from GitLab issues

Problem to solve

Responders need to be automatically notified when an alert is triggered. PagerDuty is one of the most common on-call and paging tools in market and is used by many of our enterprise customers. We want to enable the creation of PagerDuty incidents from GitLab issues via the PagerDuty Incident Creation API.

Intended users

Further details

Proposal

Enable creation of PagerDuty Incidents from a specific GitLab issue. This could be achieved via a quick action that sends a GitLab issue to PagerDuty and creates an incident

WIP Design

We are designing for the following workflow:

User creates an incident issue

They realize they need to page someone to address the incident

They utilize a slash command on the incident issue to create a PD incident (and thus page the appropriate people).

To allow this to happen, we're imagining we'll need a space to configure a PagerDuty integration and to create an appropriate Slack command.

Configuration
The plan is to combine configuration sections for this issue and #119018 into a single space within Settings > Operations > Incidents. This section already exists, and it currently holds the alert integration. The proposal is to add tabs to this section, and to add an additional tab for the PagerDuty integration. Here's how that would look:

Incidents section collapsed

Alerts tab

PagerDuty tab

Grafana tab

Note: moving the current Grafana integration into the Incidents section is outside of the scope of this issue. That work can be completed as part of: #219143

Still TBC in the designs: if the fields shown are sufficient for both creating incidents from GitLab issues, and for creating issues for PagerDuty incidents. We've requested engineering input to review and discuss.

Slack command
Currently, we're discussing /pagerduty as the slash command. Typing in this command will create a PagerDuty incident. But, do we need to also @ mention a user to ensure they are paged? We'll also need to ensure that, when the slack command is created, it's added to the prompt screen that appears as users type: