How-to
Approve a change
Updated
On this page
Approve a pull request so that Zof counts your approval. It takes about 2 minutes, and you need to be a release approver for the change's owner, with write access to the repository.
Zof counts an ordinary GitHub pull request review. You approve on GitHub, not in the console.
Record override reason, under a Quality gates row's next step, doesn't approve anything. It records your reason in the audit log and never passes the gate; the change still needs an approval on GitHub.
Before you start
- An admin has listed you, or a GitHub team you're an active member of, in Release approvers for the change's owner. See Choose who can approve.
- You can write to the repository on GitHub: Write, Maintain or admin access. See Who can do what.
- You didn't write the change. Zof never counts an approval from the author, or from anyone who pushed commits to it.
- The check says "AWAITING APPROVAL", and its "To unblock" list says who the approval is for.
If the check says "No owner is known for these files. Map them in System map first.", an approval cannot resolve it yet. Add the files to a service in System map, then follow the eligible approvers shown for the change.
Approve on GitHub
- Open the pull request in Releases. While it waits for an approval, Approve in GitHub at the top opens the pull request on GitHub. To see who may approve, open the Gates tab and click the approval gate's Evidence. The drawer shows who may approve and the counted/required approvals for the current commit. Use Approve in GitHub to open the pull request.
- Open the
Zof / Controlcheck and read the evidence in "Why" and "Impact and verification". - Open the "Files changed" tab and click "Review changes".
- Choose "Approve", then click "Submit review".
Zof decides again as soon as it sees your review. A review with only comments doesn't count, and neither does a review from a bot or an app.
Approve again after a new commit
An approval belongs to one commit. When someone pushes a new commit, approvals of the old commit are ignored, and the check says "A required approval is missing." again. For why, see Evidence and approvals are tied to a commit.
- Wait until the check on the new commit has Verification's results.
- Read the evidence again.
- Approve the pull request again on GitHub.
The check also asks you to approve again if the evidence changed after you approved. It then says "Evidence changed since" your approval, followed by "re-approve".
Request changes instead
If you choose "Request changes", Zof blocks the change. Its result becomes "RELEASE DENIED", with the reason "An authorized reviewer requested changes on this head."
That block lasts until you approve the commit. It also ends if your review is dismissed, or when a new commit is pushed. A comment-only review doesn't lift it, and neither does another approver's approval.
Check that it worked
- On GitHub, open the
Zof / Controlcheck. Your approval is no longer asked for under "To unblock". If nothing else is missing, the title is "RELEASE AUTHORIZED". - Open the pull request in Releases and open the Gates tab. The approval gate shows the counted/required approvals for this commit, and its drawer lists each recorded review.
If your approval doesn't count, the check says why:
| The check says | Why, and what to do |
|---|---|
| "A required approval is missing." | Zof couldn't match you to the owner: you aren't listed for it, you can't write to the repository, or you approved an older commit. Ask an admin to check Release approvers. |
| "An approval no longer counts." | You wrote or pushed to the change, your approval came before the evidence for this commit, or the evidence changed since. If you wrote or pushed to it, someone else approves. Otherwise, approve again. |
| "approved before Verification results for this commit were available" | Review the evidence and approve again. |
| "is recorded and is checked once Verification answers" | Verification hasn't answered yet for the evidence you approved. Your approval is kept, and Zof checks it once Verification answers. Nothing to do. |
| "A reviewer's teams are unresolved; retrying." | Zof couldn't check your team membership with GitHub. It retries about once a minute. If it keeps happening, see Members read permission. |