Buf Schema Registry (BSR)

Reviewing commits


This page walks reviewers through the review flow, showing how to review commits that have been placed in the "pending" state due to server-wide policy enforcement. You must be a repository owner or admin to review commits.

As a reviewer, you work through any pending changes one by one, and approve or reject each commit. Reviewing a commit is a one-way street—once reviewed, the commit stays approved or rejected forever. The result of the review is marked for posterity in the Activity tab.

Review commits

  1. Click the Review changes button in the notification, or go to the Activity tab for your module and click the Review changes button for the individual commit.

    The commit with the breaking change and any other commits that may have stacked up behind it are shown in a queue on the left. The first commit's diff is shown in the center of the page, along with inline comments flagging each breaking change.

    Screenshot of the review flow diff screen

    The diff compares the breaking commit to the latest available commit on main. It's important to remember this after rejecting a commit or several—any future commits won't diff against previously rejected commits, but the latest in the repository.

  2. For each breaking change, you have two choices:

    • Approve the breaking change, indicating that the change was deliberate and that any breakage with downstream clients is acceptable.
    • Reject the breaking change and continue preventing downstream consumers from accessing the commit, marking it as Rejected on the Activity tab. A follow-up change is usually required from the committer after this, such as reverting the bad commit in git or patching it another way.

If additional commits require review, you're taken through each one in the order they were pushed. You can exit the flow at any time and come back to it later without losing completed reviews. Once commits have been reviewed, the original committers will receive emails notifying them that their commits have been evaluated, and the module's Activity tab will reflect the review state of each commit.

Screenshot of the review flow diff screen

Auto-resolved commits

When a commit has been pushed with a breaking change, additional commits may stack up behind it until the breaking change is resolved. The BSR auto-resolves commits where possible, according to the following rules:

  • When you approve a breaking change, either:
    • It will become available on the latest main branch, and be marked as Approved on the Activity tab.
    • If there are other pending commits stacked up behind the breaking change, the BSR will auto-approve them up to the next breaking change, and the last of those commits will be the latest on the main branch.
  • If you reject a commit and another commit is pushed that fixes the breaking change, any commits between the breaking change and the fix commit will be rejected. The fix commit becomes available on the latest main branch.