Keep issue-sync changelog generation consistent with CI

Merged
UN
7d ago
+87-1

The gated issue-sync candidate regenerates a historical-only changelog, while CI checks the package's normal full generation. The differing heading fails after the runtime tests pass.

Select changelog:automation through the existing caller input and delegate to the unchanged changelog:full command. The pinned reusable workflow adds --no-pending-release only for its default script name, so this keeps automation and verification on the package's canonical policy. Dependency pins and thresholds remain unchanged. The input follows the GitHub reusable workflow contract.

A real temporary tracker is initialized without Git, then uses a synthetic Git repository for release-tag generation. The configured generator passes the existing checker. Reverting only the caller input in a disposable copy makes that real check fail; restoring it passes 1/1. Focused tests, the linked PM test and typecheck pass.

Local npm run release:check and bun run release:check pass: npm coverage suite 144/144 with 0 skipped; bun coverage suite 144/144 with 0 skipped; packed npm/npx and Bun/bunx no-git acceptance also passes 2/2 per full gate. Exact-head CI remains the full gate. The existing bot branch remains untouched.

PM: pm-http-sync-changelog.

Summary by Sourcery

Align issue-sync changelog regeneration with the package’s canonical release-check policy.

New Features:

  • Add an automation-specific changelog script for issue synchronization that uses the package’s canonical full changelog generation policy.

Bug Fixes:

  • Keep GitHub issue-sync changelog regeneration consistent with the changelog verification performed by CI.

Enhancements:

  • Document the issue-sync changelog behavior and add PM tracking artifacts for the change.

Documentation:

  • Document that GitHub issue sync uses the automation changelog script to match the release gate.

Tests:

  • Add an end-to-end test that validates the configured sync regeneration and changelog check in a temporary tracker and synthetic Git repository.

Summary by cubic

Aligned GitHub issue-sync changelog regeneration with the package's release-check policy so it no longer fails CI.

The reusable sync workflow injects --no-pending-release into the default changelog:full script, while changelog:check verifies the canonical policy, so the gated sync candidate regenerated a historical-only changelog that then failed the check. Adds a changelog:automation script that delegates to the unchanged changelog:full and passes it via the workflow's post-import-script input; the pinned reusable workflow only injects the flag for its default script name, so the differing heading no longer appears. Dependency pins and coverage thresholds are unchanged.

  • Adds an end-to-end test that regenerates and checks the changelog in a temporary synthetic tracker.
  • Documents the changelog behavior used by GitHub issue sync.