Skip to content

Address PRs by number instead of head branch name#45

Open
Phlogistique wants to merge 2 commits into
claude/code-review-bug-check-3njvdxfrom
claude/pr-number-addressing-3njvdx
Open

Address PRs by number instead of head branch name#45
Phlogistique wants to merge 2 commits into
claude/code-review-bug-check-3njvdxfrom
claude/pr-number-addressing-3njvdx

Conversation

@Phlogistique

Copy link
Copy Markdown
Collaborator

A head branch can carry several PRs (one per base), so gh calls keyed by branch name can comment on, label, or retarget the wrong PR — the same ambiguous-lookup family as the bug fixed in #39. Every gh call that acts on a specific PR now uses the PR number:

  • The squash-merge fan-out carries number/branch pairs from gh pr list (numbers for gh, branches for git).
  • The conflict-resolved run gets PR_NUMBER from the event payload via action.yml.

This is also an opportunity to drop an API call: the synchronize payload already carries the PR's base branch, so the resume's manual-retarget check now reads it from a new PR_BASE env var instead of gh pr view --json baseRefName. The resume test's gh mock no longer answers baseRefName queries, so a reintroduced lookup fails loudly.

Stacked on #42 (the changes overlap in main()); this PR retargets onto main once #42 lands.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JHvKryT4QUpHYdNq9YEQxX


Generated by Claude Code

A head branch can carry several PRs (one per base), so gh calls keyed by
branch name can comment, label, or retarget the wrong one. Every gh call
that acts on a specific PR now uses the PR number: the fan-out carries
number/branch pairs from gh pr list, and the conflict-resolved run gets
PR_NUMBER from the event payload via action.yml.

The payload also already carries the PR's base branch, so the resume
takes it from a new PR_BASE variable instead of querying the API; the
resume test's gh mock no longer answers baseRefName queries, so a
reintroduced lookup fails loudly.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01JHvKryT4QUpHYdNq9YEQxX
Phlogistique added a commit that referenced this pull request Jun 9, 2026
`branches: ['*']` looks like "all branches", but in GitHub's [filter
pattern
syntax](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet)
the `*` glob does not match `/` — and `pull_request.branches` filters on
the *base* branch. So the Tests workflow silently skipped any PR whose
base branch contains a slash. Concretely: #45 is stacked on #42's
`claude/...` branch and got no Tests run at all.

Drop the filter — a bare `pull_request:` trigger covers every base
branch. (`'**'` would too, but no filter says what it means.) The
README's example workflows never had a filter, so no doc change is
needed beyond the inline comment.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01JHvKryT4QUpHYdNq9YEQxX

---
_Generated by [Claude
Code](https://claude.ai/code/session_01JHvKryT4QUpHYdNq9YEQxX)_

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants