Say how the changelog is assembled without gh - #3063
Merged
Conversation
`gem:changelog` and `gem:changelog:json` go through `gh`, which a Claude Code on the web session cannot reach: `api.github.com` is blocked at the agent proxy for anything the shell does, so `gh` is absent, installing it does not help, and rewriting the tasks against REST or Net::HTTP would be refused the same way. The rest of the release is unaffected -- the other tasks read git, or run on a runner. Document the route that does work there, the GitHub MCP server, as the three steps the task itself takes: resolve the base tag, list the commits, then match the pull requests by `head.sha`. That intersection is what the GraphQL `associatedPullRequests` query answers. The trap it warns about is the obvious shortcut of reading the numbers out of `Merge pull request #N` subjects, which looks like it works and loses pull requests silently: the path filter the task uses drops the merge commits while keeping the commits they merged, and five of the eight numbers of the 4.1.2 cycle went with them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014QUAgW2m9wsYE1cLM1fFbw
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
gem:changelogandgem:changelog:jsongo throughgh, which a Claude Code on the web session cannot reach.api.github.comis blocked at the agent proxy for anything the shell does —ghis not installed, installing it does not help, and rewriting the tasks against REST or Net::HTTP would be refused the same way, since the 403 is keyed on the session rather than on the client. The rest of the release is unaffected:gem:check_releaseandgem:tagread git and the working tree, andgem:gh_releaseruns on a runner.So
docs/release.mdgains a section for the route that does work there — the GitHub MCP server — written as the three steps the task itself takes: resolve the base tag withgit describe, list the commits withgit log, then match the pull requests byhead.shaagainstlist_pull_requests. That intersection is what the GraphQLassociatedPullRequestsquery answers, reached from the other side.Most of the section is the ways it goes wrong, because the obvious shortcut is a trap. Reading the numbers out of
Merge pull request #Nsubjects looks like it works on this repository and loses pull requests silently: the path filter the task uses (--full-history --simplify-merges -- . ':(exclude)rust') drops the merge commits while keeping the commits they merged, so five of the eight numbers of the 4.1.2 cycle disappear with them, and a squashed or rebased pull request never writes that subject at all. Also documented:head.shaonly lands in the history because this repository merges with merge commits, the listing reportsmerged: falsefor merged pull requests somerged_atis the field to read, backports need their(cherry picked from commit <sha>)trailer resolved first aschangelog_originsdoes, and therust/exclusion belongs on the pull requests rather than on the commit list.Verified against the 4.1.2 cycle: the procedure yields exactly #3053–#3061, with #3052 correctly falling outside
v4.1.1. This is the list #3062 was written from.Docs only, no code change.
Generated by Claude Code