Add commit-range bundling to changelog bundle (--start-git-ref/--end-git-ref) - #3848
Merged
Conversation
Mpdreamz
approved these changes
Aug 13, 2026
Base automatically changed from
feature/changelog-commit-range-resolver
to
main
August 13, 2026 09:22
…git-ref) Date-promotion systems (serverless, Cloud ECH/ECE) hand off two commit hashes from a protected branch instead of an externally staged PR list, which was rejected for cache-poisoning and repeatability reasons (docs-actions#235). The bundle command now derives the PR list from the range via GitHubCommitRangeService, sources each PR's entry pool-first with changelog-add-style PR-metadata fallback, records the end ref as the bundle's git_ref metadata, and can print a per-PR run report with --dry-run. Implements the git-ref bundling core from the release-notes onboarding RFC (docs-eng-team#698). Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
The bundle-create CI action locates the generated bundle via --plan's
output_path, so a git-ref profile without an explicit output pattern must
plan the same {product}-{version}.yaml path the real run writes.
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
cotti
force-pushed
the
feature/changelog-commit-range-bundling
branch
from
August 13, 2026 09:22
643f00c to
f63fed0
Compare
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Mpdreamz
pushed a commit
that referenced
this pull request
Aug 14, 2026
…git-ref) (#3848) * Add commit-range bundling to changelog bundle (--start-git-ref/--end-git-ref) Date-promotion systems (serverless, Cloud ECH/ECE) hand off two commit hashes from a protected branch instead of an externally staged PR list, which was rejected for cache-poisoning and repeatability reasons (docs-actions#235). The bundle command now derives the PR list from the range via GitHubCommitRangeService, sources each PR's entry pool-first with changelog-add-style PR-metadata fallback, records the end ref as the bundle's git_ref metadata, and can print a per-PR run report with --dry-run. Implements the git-ref bundling core from the release-notes onboarding RFC (docs-eng-team#698). Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> * Mirror the commit-range output naming convention in bundle --plan The bundle-create CI action locates the generated bundle via --plan's output_path, so a git-ref profile without an explicit output pattern must plan the same {product}-{version}.yaml path the real run writes. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> * Drop unnecessary null-forgiving operators flagged by IDE0370 Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
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.
Why
Converts elastic/cloud-style date promotions from "unblocked manually" (#3783) to "automated": the promotion event hands off two commit hashes from a protected branch, and
changelog bundlederives the PR list itself instead of consuming an externally staged list (rejected in docs-actions#235). This is the git-ref bundling core from the release-notes onboarding RFC (docs-eng-team#698) and the docs-builder half of thechangelog-promotion-bundleworkflow contract (docs-actions#266).What
changelog bundle <profile> <version> --start-git-ref A --end-git-ref B(both refs always required together — the start ref is never inferred, per the RFC review):GitHubCommitRangeService(previous PR in this stack).prsreferences are scrubbed from public copies, sidestepping docs-eng-team#734 for discovery) or byprsreferences — otherwise the entry is synthesized from PR metadata through the same extraction path aschangelog add(release-note text from the PR body,pivot.*label mappings,rules.create). PRs whose metadata cannot be fetched are reported as missing, never silently dropped.--end-git-refas itsgit_refmetadata.--dry-runprints the run report (resolved PR list with per-PR source: pool / inferred / missing, plus commits without a PR) as Markdown suitable for a release PR body;--planreportsneeds_network/needs_github_token.output_products, repo/owner, rules); filter-producing shapes (productspattern,source: github_release) are rejected. Without an explicitoutput:pattern the bundle is named{product}-{version}.yamlby convention — deliberately not building onoutput:, which B2: Validate that bundle profileoutput:is not set; emit hard error at bundle time #3774 (B2) is phasing out.Stack: 2/3 — based on the commit-range resolution service PR; followed by a GitHub HTTP transport refactor.