Add changelog-release-pr composite action#66
Draft
yonib05 wants to merge 10 commits into
Draft
Conversation
…ndered frontmatter
…inst transient PR errors
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.
Description
Adds a
changelog-release-pr/composite action that turns GitHub Releases into structured changelog markdown files and opens a PR intostrands-agents/harness-sdk(where the changelog page lives). This is the automation half of the Strands changelog feature; the site/page half is a separate harness-sdk PR.Deterministic, no LLM. Pipeline: list/get release(s) → parse the auto-generated "What's Changed" body into structured entries → enrich each from its linked PR (
area-*labels → areas,breaking changelabel, merge-commit SHA, author) → render a markdown file matching the harness-sdk changelog content-collection schema (preserving any human-writtenhighlights/body on re-sync) → open a PR viapeter-evans/create-pull-request.Built to match devtools house style: plain dependency-free
.cjsmodules invoked throughactions/github-script(likestrands-command/scripts/javascript/process-input.cjs), authenticated with a singlegithub-tokeninput (mirrors strands-finalize; no AWS). Handles the historical wrinkle that older harness releases link PRs on the oldstrands-agents/sdk-pythonrepo — enrichment and links use each PR's own repo.Type of Change
New feature
Testing
cd changelog-release-pr/scripts && node --test(all pass). Cover tag→sdk/language mapping, release-body parsing (incl. CRLF, breaking markers, omitted-list, format-drift guard), PR enrichment + graceful degradation, YAML-safe markdown rendering (quoting reserved words / significant chars), highlights/body preservation on re-sync, and release selection (single/backfill).vrelease, dropped into the harness-sdk content collection and run throughastro sync— synced with zero schema errors.Notes for reviewers
changelog-sync.ymlworkflows in harness-sdk (same-repo,github.token) and evals (cross-repo PR into harness-sdk, needs a token withpull-requests:writeon harness-sdk — see that PR).workflow_dispatchafter this merges.