Skip to content

Conversation

@Sewer56
Copy link
Member

@Sewer56 Sewer56 commented Dec 6, 2025

  • Added 40 changelog inputs to action.yml (4 control + 36 auto-changelog pass-through options)
  • Modified checkout step with conditional fetch-depth: 0 when changelog enabled
  • Added changelog generation step calling Reloaded-Project/devops-changelog@v1
  • Added conditional changelog artifact upload step
  • Modified GitHub release step with body_path for changelog content
  • Added conditional changelog file to release assets
  • Updated README.MD with changelog feature documentation and parameter tables
  • Feature is opt-in and backward compatible (changelog-enabled defaults to false)
  • No code duplication - composes with existing devops-changelog action

Summary by CodeRabbit

  • New Features
    • Added optional changelog generation with extensive customization options
    • Changelogs can be automatically included in GitHub releases and uploaded as release artifacts
    • 40+ new parameters available to configure changelog output, formatting, commit patterns, and display settings

✏️ Tip: You can customize this high-level summary in your review settings.

- Added 40 changelog inputs to action.yml (4 control + 36 auto-changelog pass-through options)
- Modified checkout step with conditional fetch-depth: 0 when changelog enabled
- Added changelog generation step calling Reloaded-Project/devops-changelog@v1
- Added conditional changelog artifact upload step
- Modified GitHub release step with body_path for changelog content
- Added conditional changelog file to release assets
- Updated README.MD with changelog feature documentation and parameter tables
- Feature is opt-in and backward compatible (changelog-enabled defaults to false)
- No code duplication - composes with existing devops-changelog action
@coderabbitai
Copy link

coderabbitai bot commented Dec 6, 2025

Walkthrough

This PR introduces comprehensive changelog generation support to the GitHub Actions workflow. It adds 41 new input parameters for controlling changelog generation (enabling, artifact handling, output formatting, URL/pattern configuration, versioning, and display options), integrates a new conditional "Generate Changelog" workflow step, and modifies existing steps to conditionally incorporate the generated changelog into release artifacts and GitHub releases.

Changes

Cohort / File(s) Summary
Documentation
README.md
Adds new changelog feature bullet in Features list; introduces comprehensive Changelog Parameters section documenting 41 input parameters with defaults; updates "How this Action Works" section to describe optional changelog generation and release body integration; expands Rust publishing description with new Workspace Projects pathway (rust-cargo-workspace-root and rust-cargo-workspace-crates)
Workflow Configuration
action.yml
Adds 41 new changelog-related input parameters (changelog-enabled, changelog-output, changelog-config, changelog-template, changelog-remote, changelog-package, changelog-\-version, changelog-\-pattern, changelog-\*-url, etc.) with descriptions and defaults; modifies checkout step to conditionally set fetch-depth based on changelog-enabled; introduces "Generate Changelog" step that runs conditionally and passes changelog inputs to changelog generation action; adds "Upload Changelog Artifact" step for conditional artifact uploads; enhances GitHub release creation step to conditionally include changelog in release body and as release asset

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • Focus areas for review:
    • Verify all 41 new input parameter names, default values, and descriptions in action.yml for accuracy and consistency
    • Confirm conditional logic for changelog-enabled flag is applied consistently across checkout, generate, upload, and release steps
    • Check README.md parameter documentation matches action.yml definitions exactly
    • Validate syntax and structure of the new workflow steps (Generate Changelog and Upload Artifact)

Possibly related PRs

Poem

🐰 A changelog springs forth with each release,
Parameters dance, never to cease!
From git logs to tags, we weave the tale,
Where artifacts bloom and workflows prevail! 📜✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: adding optional changelog generation functionality via the devops-changelog action, which matches the primary purpose of the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch add-changelog-generation

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0edea4a and 0ce4ec1.

📒 Files selected for processing (2)
  • README.MD (2 hunks)
  • action.yml (3 hunks)
🔇 Additional comments (7)
README.MD (3)

23-23: LGTM!

The feature bullet is concise and clearly communicates the changelog generation capability.


216-220: LGTM!

The updated "How this Action Works" section correctly indicates the optional nature of changelog generation. The Rust/Cargo documentation clearly distinguishes between the two publishing methods (standalone vs. workspace projects) with helpful descriptions.


159-211: README Changelog Parameters documentation is accurate and consistent with action.yml.

All 40 changelog input names in the README tables exactly match the input definitions in action.yml, including proper hyphenation and naming conventions. No discrepancies found.

action.yml (4)

79-241: Comprehensive changelog parameter structure looks good.

The new inputs section provides clear organization with consistent naming conventions (kebab-case), sensible defaults (false for booleans, empty strings for optional configs), and concise descriptions. The control inputs (changelog-enabled, changelog-include-in-release, changelog-upload-artifact) are properly marked as non-required, making the feature genuinely opt-in and backward-compatible.


258-300: Changelog generation step is properly wired.

The step correctly:

  • Guards with if: inputs.changelog-enabled == 'true'
  • Disables redundant operations (auto-checkout: false, upload-artifact: false, upload-release: false)
  • Passes all 36 pass-through inputs without duplication or mutation
  • Delegates responsibility to the composed devops-changelog@v1 action

302-307: Artifact upload step has correct conditional logic.

The step properly guards both feature enablement (changelog-enabled) and user opt-in (changelog-upload-artifact), and references the correct artifact name and path inputs.


328-328: Release body and files integration correctly conditionalized.

The expressions for body_path and files use the && and || pattern to conditionally include the changelog. When enabled, they resolve to the changelog output path; otherwise, to an empty string. softprops/action-gh-release gracefully handles empty patterns in multiline file lists by treating them as unmatched patterns that do not trigger failures (unless fail_on_unmatched_files is explicitly set to true). This approach preserves backward compatibility for workflows that don't use the changelog feature.

@Sewer56 Sewer56 merged commit 3274512 into v3-master Dec 6, 2025
2 checks passed
@Sewer56 Sewer56 deleted the add-changelog-generation branch December 6, 2025 11:57
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.

2 participants