Safeguard
Developer Tools•

A payments release checklist built from repository controls

A release checklist for payment code can be mostly automated: protected branches, required checks, deployment approval, and a recorded rollback path.

Safeguard Security Team
4 min read

A release checklist for payment code works well when most items are enforced by the repository rather than remembered by people. Require reviews and checks on the release branch, gate production with an approved deployment, record what shipped, and rehearse the way back before you need it.

Automate what you can enforce

GitHub rulesets let you require status checks before merging, require deployments to succeed in a named environment first, block force pushes, and require signed commits. GitHub environments add required reviewers, self-review prevention, wait timers and branch limits. Each item you put in a rule is an item nobody can forget on a busy day.

Checklist itemEnforced by
Change came through a pull requestRuleset requiring pull requests
A different person approved itRequired approvals and code owner review
Tests and security checks passedRequired status checks
History cannot be rewrittenBlock force pushes rule
Deployed and verified in staging firstRule requiring deployments to succeed in an environment
Production deploy approved by a personEnvironment with required reviewers and self-review blocked
Just the release branch can deployEnvironment deployment branch rule

The GitHub documentation describes each of these. The block force pushes rule notes that force pushes can delete branches or point a branch at commits that were never approved in a pull request, which is why it matters for a release branch.

Items that need a human

Some items cannot be enforced by a setting. Add these to the pull request template:

  1. Does this change touch money movement, authorization or key handling? If yes, name the owner reviewers.
  2. Are there database migrations? Describe the order and whether they can be reversed.
  3. What is the rollback plan, and who runs it?
  4. Which dashboards or alerts will show a problem in the first hour?
  5. Is the release window appropriate for your payment volumes?

These questions are our suggestions. The intent is that a person writes the answer down before shipping.

A staged release flow

  1. Merge to the main branch through a protected pull request.
  2. A pipeline builds an artifact and runs tests and dependency checks.
  3. The pipeline deploys to staging, which the ruleset can require before merge.
  4. A production deployment job waits in the protected environment. Reviewers see the change summary.
  5. After approval, optional wait timer elapses, then the deploy proceeds.
  6. A post deploy check confirms health and key payment metrics.
  7. The release record captures commit, approver, time and result.

Rehearse the way back

A rollback plan that has never run is a guess. Practice reverting a deployment in staging, including database changes. For schema changes, prefer steps that work with both old and new code so a rollback does not require a data repair under pressure.

Keep an emergency path that is honest

Sometimes you need to ship a fix quickly. Define in advance what is allowed: for example one approver instead of two, with the other review done afterwards. If you let administrators bypass rules, GitHub's environment settings let you choose whether they can, so decide deliberately and record each use.

Review the checklist itself

After each release that had a surprise, ask which checklist item or rule would have caught it, and add it. Remove items nobody uses, since long lists get skimmed.

Where Safeguard fits

Safeguard's policies and gates add vulnerability and dependency checks to the pull request stage, and its compliance and evidence automation can keep dated records of results. A free scan is available at gold.safeguard.sh/scan.

Try it yourself

Click through it at your own pace, or open it full screen.

Step through the gate and note which checks must pass before a release branch accepts a change.

Quick check

Should a hotfix skip the checklist?

Define a shorter emergency path in advance, and record each use. Skipping silently erodes the control.

Which controls are automated?

Pull request requirement, approvals, status checks, force push blocking and deployment approval can all be enforced by repository and environment settings.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.