PR Governance Controller
Unify Change Management Processes within a Git-standard Pull Request Model
Articles in this section
Motivation
Many enterprises require robust governance for all change management. This is often done within blessed systems of record, with ServiceNow being the most common. Plural lets you synchronize these processes with the GitOps-friendly pull request workflow offered by your SCM provider, using two main strategies:
- ServiceNow - a dedicated controller implementation that synchronizes pull request and ServiceNow change request approvals and status
- Webhook - a custom webhook for any nonstandard systems you might want to implement
In all cases, the flow has four main phases:
- Open - a pull request is opened and a callback is made to the external system to create the change record
- Confirm - the change record is polled on a jittered interval to determine whether it has been approved
- Approval - Plural approves the pull request itself, using an SCM credential you specify
- Close - the change record is closed once the pull request is merged or closed
Managing PR Approval
This flow guarantees that pull requests cannot be merged without approval from the external system, but only if the SCM credential provided is made a required approver. This can be done in a few different ways:
- Repo-level configuration. Many repos have global methods to require approvals from specific users and groups.
- CODEOWNERS - a standard convention among Git providers that requires approvals from specific users or groups for specific file paths within a repo.
We recommend CODEOWNERS as it's more flexible.