Skip to content

Replace the changelog action with a maintained one - #22

Open
shuo-zhou wants to merge 4 commits into
mainfrom
ci/changelog-automation
Open

shuo-zhou wants to merge 4 commits into
mainfrom
ci/changelog-automation

Conversation

@shuo-zhou

@shuo-zhou shuo-zhou commented Sep 20, 2026 •

Copy link
Copy Markdown
Member

Description

saadmk11/changelog-ci@v1.2.0 builds FROM python:3.12-slim-bullseye. Bullseye is end-of-life and Debian is draining its package pool, so apt-get install git fails with exit code 100 and the workflow cannot build at all. Switch to mikepenz/release-changelog-builder-action, which builds no Docker image and is actively maintained, keep the same label groups, and grant the workflow the permissions the changelog commit and the pull request comment need.

Re-runs are idempotent: a section that already exists for the version is replaced in place, and identical content produces no commit.

Status

Ready

Types of changes

  • Non-breaking change (fix or new feature that would not break existing functionality).
  • Breaking change (fix or new feature that would cause existing functionality to change).
  • New tests added to cover the changes.
  • In-line docstrings updated and documentation docs updated.

saadmk11/changelog-ci@v1.2.0 builds FROM python:3.12-slim-bullseye. Bullseye is end-of-life and Debian is draining its package pool, so apt-get install git fails with exit code 100 and the workflow cannot build at all. Switch to mikepenz/release-changelog-builder-action, which builds no Docker image and is actively maintained, keep the same label groups, and grant the workflow the permissions the changelog commit and the pull request comment need.

Re-runs are idempotent: a section that already exists for the version is replaced in place, and identical content produces no commit.
@codecov

codecov Bot commented Sep 20, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.16%. Comparing base (5b9ef29) to head (b2928bf).

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #22   +/-   ##
=======================================
  Coverage   90.16%   90.16%           
=======================================
  Files          24       24           
  Lines        1922     1922           
=======================================
  Hits         1733     1733           
  Misses        189      189           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Version-less release titles fail, and the workflow executes PR-controlled Python with write credentials.

Get a fresh assessment by requesting another Copilot review.

Review effort: Balanced
Findings: 1 High severity · 1 Medium severity

Open (2)
What changed in this PR

Replaces the obsolete changelog action with maintained release automation.

Changes:

  • Generates grouped release notes with a pinned action.
  • Adds idempotent changelog insertion and PR commenting.
  • Documents the updated release process.
File Description
CONTRIBUTING.md Documents automated changelog generation.
.gitignore Updates generated/config file rules.
.github/​workflows/​changelog.yml Implements the new workflow.
.github/​scripts/​update_changelog.py Inserts or replaces release sections.
.github/​changelog-config.json Defines changelog grouping and formatting.
.github/​changelog-ci-config.json Removes the obsolete configuration.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/changelog.yml Outdated
Comment thread .github/workflows/changelog.yml Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

The write-scoped PR workflow that commits and pushes changes warrants final human validation.

Review effort: Balanced
Findings: None

Resolved since last review (2)

@shuo-zhou
shuo-zhou requested a review from cmanjah September 22, 2026 08:15

@cmanjah cmanjah left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we add a few small tests for replace_section and drop_empty_groups? The update_changelog.py script has no tests.

Comment thread .github/workflows/changelog.yml Outdated
Comment thread .github/workflows/changelog.yml
Comment thread .github/workflows/changelog.yml
Comment thread .github/workflows/changelog.yml

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Category matching can duplicate entries, and releases containing only ignored changes currently fail.

Review effort: Balanced
Findings: None

Previously missed (2)

In code that hasn't changed since last review

Medium severity Prevent PR duplication across multiple matching changelog categories

.github/​changelog-config.json:26

The replacement action does not stop after the first matching category by default, so a PR carrying multiple configured labels is emitted once in every matching section. The previous builder explicitly removed a PR after its first match; add consume: true to each category to preserve that behavior and avoid duplicated changelog entries.

Medium severity Handle releases containing only ignored changes without empty-body failure

.github/​scripts/​update_changelog.py:114

When the range contains PRs but every one has an ignore_labels label, the action renders only the empty Other Changes heading (its empty_template is used only when zero PRs were fetched). drop_empty_groups removes that heading, making body empty and failing every release containing only ignored changes. Handle the no-eligible-entry case as either a clean no-op or an explicit placeholder instead of treating it as a generation failure.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The maintained action migration is complete, pinned, permission-aware, and preserves the intended changelog behavior.

Review effort: Balanced
Findings: None

@shuo-zhou
shuo-zhou requested a review from cmanjah September 28, 2026 16:12
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.

3 participants