Skip to content
47 linesCodeBlameRaw
1---
2name: fix-integration
3description: Fix a g1t pull request that failed when the merge queue tested it together with other pull requests (an integration.failed event). Use when g1t reports an integration failure, or a queued pull request was removed from the merge queue because a combined check failed.
4argument-hint: "[pull request number]"
5allowed-tools: Bash(g1t:*) Bash(git:*)
6---
7
8# Fix an integration failure
9
10The merge queue tests pull requests together, in queue order. A pull
11request can pass on its own and still fail once another one is merged
12with it. g1t then records an `integration.failed` event naming the pull
13request it holds responsible, the combination it tested (the pull requests
14merged together, in order), the failing check and its link, whether it
15bisected the combination to find the culprit, and the suspects when it
16could not tell.
17
18Pull request: $ARGUMENTS (if empty, use the current branch's pull request).
19
201. **Read what failed.** `g1t work events --type integration.failed --json`
21 for the event (narrow it with `--issue N`), and `g1t work context N` for
22 the issue, which shows the last integration failure, the pull requests
23 on it and the decisions so far.
242. **Open the failing check's log** from the event's check link, or with
25 `g1t run logs --failed` on that run. Find the first real error.
263. **Read the other pull requests in the combination.**
27 `g1t pr diff OTHER` for each one tested with yours, and look for what
28 meets your change: the same function changed two ways, a renamed or
29 removed name you still use, a migration, a fixture or a test that
30 assumes the old behaviour.
314. **Reproduce it locally.** Merge the default branch and the other pull
32 requests' branches into a scratch branch in the same order, and run the
33 failing check's command.
345. **Fix it on your branch.** Change only what the failure needs. If the
35 right fix belongs in the other pull request, say so on it
36 (`g1t pr comment OTHER`) instead of working around it, and tell the
37 person who asked you.
386. **Push, then queue again.** Push the fix, wait for `g1t pr checks
39 --watch` to pass, and merge again with `g1t pr merge`, which puts it
40 back in the queue.
417. **Leave a record.** `g1t session log --kind note "Integration failure
42 with #OTHER: CAUSE. Fixed by CHANGE."` so the next person can see why
43 the change looks the way it does.
44
45If the event says the failure was not bisected and lists several
46suspects, check that yours really is one before changing anything: run the
47check on your branch with only the default branch merged in.