Skip to content

Add changelog-release-pr composite action#66

Draft
yonib05 wants to merge 10 commits into
strands-agents:mainfrom
yonib05:changelog-release-action
Draft

Add changelog-release-pr composite action#66
yonib05 wants to merge 10 commits into
strands-agents:mainfrom
yonib05:changelog-release-action

Conversation

@yonib05

@yonib05 yonib05 commented Jun 11, 2026

Copy link
Copy Markdown
Member

Description

Adds a changelog-release-pr/ composite action that turns GitHub Releases into structured changelog markdown files and opens a PR into strands-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 change label, merge-commit SHA, author) → render a markdown file matching the harness-sdk changelog content-collection schema (preserving any human-written highlights/body on re-sync) → open a PR via peter-evans/create-pull-request.

Built to match devtools house style: plain dependency-free .cjs modules invoked through actions/github-script (like strands-command/scripts/javascript/process-input.cjs), authenticated with a single github-token input (mirrors strands-finalize; no AWS). Handles the historical wrinkle that older harness releases link PRs on the old strands-agents/sdk-python repo — enrichment and links use each PR's own repo.

Type of Change

New feature

Testing

  • 38 unit tests via Node's built-in runner: 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).
  • End-to-end validated against the real harness-sdk Zod schema: generated files for a harness-python, harness-typescript, evals, and pre-monorepo bare-v release, dropped into the harness-sdk content collection and run through astro sync — synced with zero schema errors.

Notes for reviewers

  • Consumed by changelog-sync.yml workflows in harness-sdk (same-repo, github.token) and evals (cross-repo PR into harness-sdk, needs a token with pull-requests:write on harness-sdk — see that PR).
  • Backfill of all ~107 historical releases is run via workflow_dispatch after this merges.

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.

1 participant