Skip to content

Keep issue-sync changelog generation consistent with CI - #22

Merged
unbraind merged 2 commits into
mainfrom
fix/sync-changelog-1108
Nov 8, 2026
Merged

unbraind merged 2 commits into
mainfrom
fix/sync-changelog-1108

Conversation

@unbraind

@unbraind unbraind commented Nov 8, 2026 •

Copy link
Copy Markdown
Owner

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.

Written for commit d4540af. Summary will update on new commits.

View guided diff Turn on auto-fix

@sourcery-ai

sourcery-ai Bot commented Nov 8, 2026

Copy link
Copy Markdown

Sorry @unbraind, you've used your own review budget of 250,000 diff characters for the last 7 days.

You can request another review in 2 days and 15 hours by commenting @sourcery-ai review. Upgrade to get a review now.

@coderabbitai

coderabbitai Bot commented Nov 8, 2026 •

Copy link
Copy Markdown

Explain Change →

No actionable comments were generated in the recent review.

Summary by CodeRabbit

  • Bug Fixes
    • Changelogs generated during issue synchronization now match the output checked during release validation, avoiding discrepancies between synced and release-ready changelog content.
  • Documentation
    • Updated setup and workflow guidance to describe how issue synchronization generates changelog output and how that output is checked.

Walkthrough

The GitHub sync workflow now runs changelog:automation after import. The script aliases changelog:full. An integration test runs the configured script and changelog:check against a temporary fixture.

Changes

Sync Changelog Automation

Layer / File(s) Summary
Configure and verify sync changelog generation
package.json, .github/workflows/pm-github-sync.yml, test/automation-changelog.test.ts, README.md, CHANGELOG.md, .agents/pm/issues/pm-http-sync-changelog.toon, .agents/pm/history/pm-http-sync-changelog.jsonl
The workflow passes changelog:automation as its post-import script. The package script aliases changelog:full. The integration test runs the configured script and changelog:check using a temporary fixture. The README and changelog record the change, and the issue files record its acceptance criteria and verification.

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Sequence Diagram(s)

sequenceDiagram
  participant SyncWorkflow as GitHub sync workflow
  participant AutomationScript as changelog:automation
  participant FullGenerator as changelog:full
  SyncWorkflow->>AutomationScript: Select as post-import script
  AutomationScript->>FullGenerator: Run full changelog generator
Loading
Merge Risk: Minimal · up to d4540

Issue sync is configured to generate changelogs consistently with the release check. No merge-blocking issue is identified.

Pre-merge checks: Passed 5

Check name Status Explanation
Title check Passed The title names the main change: the issue-sync changelog generation is aligned with the CI changelog check. The changeset adds a changelog:automation script, wires it through the sync workflow's post…
Description check Passed The description states the problem (the gated sync candidate regenerates a historical-only changelog while CI checks full generation), the fix (selecting changelog:automation through the existing call…
Docstring Coverage Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title names the main change: the issue-sync changelog generation is aligned with the CI changelog check. The changeset adds a changelog:automation script, wires it through the sync workflow's post-import-script input, and adds a test and docs for that behavior. The title is specific and concise, and it does not contain filler.

Full details: Description check

Explanation

The description states the problem (the gated sync candidate regenerates a historical-only changelog while CI checks full generation), the fix (selecting changelog:automation through the existing caller input), the verification steps (temporary tracker test, revert check, focused tests, release:check runs), and the PM link. It is directly related to the changeset and includes enough detail to understand the change.

Full details: Docstring Coverage

Explanation

Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 1 functions across 1 files. (6 skipped: 6 unsupported.)

Finishing Touches

Generate docstrings

  • Commit to this branch
  • Create a new PR
Generate unit tests (beta)

  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Some tools did not complete. Review the errors below.

ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

package.json

ESLint skipped: missing config or dependency (missing-dependency). The ESLint configuration references a package that is not available in the sandbox.

test/automation-changelog.test.ts

ESLint skipped: the matched ESLint configuration already failed (missing-dependency).

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

Recent review info

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: f368cd61-4d1d-4db6-a8f4-1b07fab91985
Commits

Reviewing files that changed from the base of the PR and between 15d3e8e and d4540af.

Files selected for processing: 7

  • .agents/pm/history/pm-http-sync-changelog.jsonl
  • .agents/pm/issues/pm-http-sync-changelog.toon
  • .github/workflows/pm-github-sync.yml
  • CHANGELOG.md
  • README.md
  • package.json
  • test/automation-changelog.test.ts

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

@sourcery-ai

sourcery-ai Bot commented Nov 8, 2026 •

Copy link
Copy Markdown

Reviewer's Guide

Uses of the API

Configure the issue-sync workflow to select the dedicated changelog script so regeneration follows the package's canonical policy.

  • .github/workflows/pm-github-sync.yml L18
  • package.json L50-51

Documentation

Document the changelog policy used by GitHub issue synchronization and record the associated issue and synchronization history.

  • .agents/pm/history/pm-http-sync-changelog.jsonl L1-12
  • .agents/pm/issues/pm-http-sync-changelog.toon L1-26
  • CHANGELOG.md L16
  • README.md L150-153

Tests

Exercise the configured generator against a temporary tracker and verify its output with the package changelog checker.

  • test/automation-changelog.test.ts L1-41

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@unbraind

unbraind commented Nov 8, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai full review

Please review head d4540af, including outside-diff findings.

@coderabbitai

coderabbitai Bot commented Nov 8, 2026 •

Copy link
Copy Markdown
Action performed

Full review finished.

@unbraind
unbraind merged commit b77b8e7 into main Nov 8, 2026
8 checks passed
@unbraind
unbraind deleted the fix/sync-changelog-1108 branch November 8, 2026 08:35
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