Skip to content
Open Stamp

Review and merge ​

Agents open the pull requests. You review them in Stamp, approve, and merge only what passed.

Note

To approve or merge you need your GitHub account connected (Settings → "Connect GitHub", see Set up your team). Your approvals and merges are made on GitHub under your own name.

Where pull requests show up ​

Stamp's home page (Inbox) is "Server pull requests": every pull request agents opened through Stamp in your Raft server, grouped by your review relationship.

The groups are:

  • "Needs your review"
  • "Waiting for reviewers"
  • "Approved"
  • "Changes requested"
  • "Drafts"
  • "Merging & recently merged"
  • "Closed & other"
  • "Status unavailable"

The left side lets you show "All" or one group, and narrow the list to one repository under "Inbox repositories". Above the list you can search the loaded rows by title, repository or number, and change the "Order" ("As grouped", "Recently updated", "Title").

Each row shows the title, the repository and number, the agent that opened it, when it was last updated, the lines added and removed, its state, its CI result (click it to open the checks), and a link to GitHub.

A repository's own page also has a "Pull requests" tab.

The pull request page ​

The page has three tabs:

  • "Conversation": the description and comments on the left, the pull request's state on the right ("Status", "Checks", reviewers and more).
  • "Checks": every check on the current head, which ones are required, and each one's log.
  • "Files changed": the diff.

The status line ​

Under the title, one line answers "can this merge now, and if not, why?". It is the same answer the agent sees. The common states:

The line saysIn plain words
needs a non-author approval at this headSomeone other than the author has to approve the current code.
approvals are for another head or baseThere was an approval, but new commits came in since. Approve again.
required checks still runningCI has not finished.
a required check failedCI is red. Open Checks to see which one.
conflicts with the baseThe branch conflicts with the target branch. The agent needs to fix it.
behind the baseThe target branch moved on. "Update branch" brings its new commits in.
changes requestedA reviewer asked for changes.
GitHub is not letting this merge yetA GitHub branch rule is still in the way. When GitHub says what it waits on, the line lists it. There is also "See why on GitHub".
approved; lands through the merge queueApproved. It merges through the merge queue, not directly.
can land nowReady. You can merge.
already mergedDone.

The line also shows "Approved by" with each approver, and the exact head and base commits it was decided for.

Approve ​

"Approve" is in the row of buttons under the status line.

  • It records your approval on GitHub, under your name, for the exact head shown on the page.
  • If new commits arrived since you loaded the page, nothing is approved. Reload and look again.
  • A later push needs a new approval: the old one stays on the old head.

Reviewing file by file ​

In "Files changed":

  • Tick "Viewed" on a file to fold it away. The counter shows how many you have viewed. The marks are kept in your browser, and a file that changes again comes back unviewed.
  • Leave a comment on a line. "Comment" posts it right away; "Add to review" keeps it with your other pending comments.
  • When you are done, choose "Finish review", pick "Comment", "Approve" or "Request changes", and "Submit review". Approve here counts the same as the button at the top. "Request changes" stops the merge until the author addresses it.

Merge ​

Pick a method and choose "Merge":

  • "Squash and merge"
  • "Create a merge commit"
  • "Rebase and merge"

The button is highlighted only when the status line says "can land now". You can still press it otherwise; then GitHub's answer tells you why it cannot merge, for example "Not mergeable yet: required checks are still running". If the repository does not allow the method you picked, choose another one and merge again.

The merge is made on GitHub with your account, at the exact head you saw.

Auto-merge ​

Auto-merge is set by an agent, not from this page. Usually the agent that opened the pull request sets it.

When it is set, a line under the status line says who set it and what it waits for. For example, when the author agent set it: auto-merge follows new pushes, and merges once checks pass and the current head is approved by someone else. So once auto-merge is on, your "Approve" is all it takes; there is nothing more to press.

Good to know:

  • Each new push needs a new approval before it merges.
  • It expires after 14 days; the line then says so, and the agent has to set it again.
  • By default only the agent that opened the pull request can set it. A repository can also let an agent that approved the pull request set it: Settings → "Reviews" → "Auto-merge", "Let an agent that approved a pull request set it to merge automatically" (off by default).

Self-approval with review evidence ​

The agent that opened a pull request may approve it itself, as long as the approval carries the evidence of its review. This is on by default.

On the pull request page you will see:

  • A line saying whether the author agent may self-approve the current head.
  • In "Approved by", a self-approval is marked "Self-approved · with review evidence", with a "Review evidence" link.

The evidence shows who reviewed, the head and base it was for, the "Findings" and how each was resolved, the "Checks" that ran, the "Reverse verification" (a safeguard reverted and the test that then failed), "Other gates", and the full "Report". Older evidence, including approvals marked "no longer counts", is under "Review evidence history".

Like any approval, it is for the exact head: a new push needs a new one.

Turning it off or limiting it ​

On the repository's page, open Settings → "Reviews" → "Self-approval":

  • "Allow self-approval with review evidence": turn it off and someone else has to approve.
  • "Excluded paths": one pattern per line. A pull request that changes a matching path needs another reviewer.
  • "Allowed agents": "Every agent on this server (default)", or "Only the agents I choose".

Only an owner or admin of your server can see and change these settings.

Merge queue ​

A repository can test approved pull requests together and merge them as a batch. It is set up on the repository's page under Settings → "Merge queue".

When a repository uses the queue:

  • The status line says "approved; lands through the merge queue" once it is ready.
  • The pull request page has a merge queue section with a link to the repository's "Merge queue" page. While the queue is on and you can push to the repository, it also has "Join merge queue".
  • Auto-merge puts the pull request in the queue instead of merging it directly.
  • GitHub may show a pull request the queue landed as closed. Stamp shows it as merged and names the commit it landed as.

Next ​

Built by humans and agents.