Skip to content

Feature/141 add support for coderabbit summary in pr description#144

Merged
miroslavpojer merged 9 commits intomasterfrom
feature/141-Add-support-for-coderabbit-summary-in-PR-description
May 19, 2025
Merged

Feature/141 add support for coderabbit summary in pr description#144
miroslavpojer merged 9 commits intomasterfrom
feature/141-Add-support-for-coderabbit-summary-in-PR-description

Conversation

@miroslavpojer
Copy link
Collaborator

@miroslavpojer miroslavpojer commented May 19, 2025

Summary by CodeRabbit

  • New Features
    • Added support for CodeRabbit integration, including new input parameters to enable CodeRabbit mode, customize the release notes section title, and specify groups to ignore in summaries.
    • Enhanced release notes extraction to support group-based filtering and improved detection of release notes sections.
  • Documentation
    • Updated and reorganized the documentation for greater clarity, including new tables, usage examples, and best practice notes.
  • Bug Fixes
    • Fixed a minor typo in input descriptions.
  • Tests
    • Added and extended tests to cover new CodeRabbit-related inputs and release notes extraction logic.
  • Chores
    • Updated workflow configuration to support new release notes grouping and filtering options.

Closes #141

- Added support for coderabbit Summary as a source for Release Notes.
@miroslavpojer miroslavpojer self-assigned this May 19, 2025
@miroslavpojer miroslavpojer requested a review from Zejnilovic as a code owner May 19, 2025 06:25
@miroslavpojer miroslavpojer requested review from Copilot and removed request for Zejnilovic May 19, 2025 06:25
@coderabbitai
Copy link

coderabbitai bot commented May 19, 2025

Warning

Rate limit exceeded

@miroslavpojer has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 5 minutes and 55 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 62c9362 and bc67333.

📒 Files selected for processing (1)
  • README.md (3 hunks)

Summary by CodeRabbit

  • New Features
    • Added support for CodeRabbit integration, including new input parameters to enable CodeRabbit mode, customize the release notes section title, and specify groups to ignore in summaries.
    • Enhanced release notes extraction to support group-based filtering and improved detection of release notes sections.
  • Documentation
    • Updated and reorganized the documentation for greater clarity, including new tables, usage examples, and best practice notes.
  • Bug Fixes
    • Fixed a minor typo in input descriptions.
  • Tests
    • Added and extended tests to cover new CodeRabbit-related inputs and release notes extraction logic.
  • Chores
    • Updated workflow configuration to support new release notes grouping and filtering options.

Summary by CodeRabbit

  • New Features

    • Added support for CodeRabbit integration, including new configuration options for CodeRabbit release notes title, activation flag, and group ignore list.
  • Documentation

    • Improved and reorganized the README for better clarity, including updated input tables, enhanced usage examples, and detailed explanations of the release notes extraction process.
  • Bug Fixes

    • Corrected a minor description typo in the action input documentation.
  • Tests

    • Expanded test coverage for new CodeRabbit-related inputs and behaviors in release notes extraction.

Walkthrough

The changes introduce support for extracting release notes from CodeRabbit-generated summaries in PR descriptions. This includes new input parameters for enabling CodeRabbit support, customizing the summary title, and specifying chapters to ignore. Documentation, input handling, extraction logic, and tests are all updated to accommodate these features.

Changes

File(s) Change Summary
README.md, action.yml Added and documented new inputs for CodeRabbit support; updated usage examples and explanations for release notes extraction, including CodeRabbit-specific logic and ignore groups.
release_notes_generator/action_inputs.py, release_notes_generator/utils/constants.py Introduced new constants and static methods to handle CodeRabbit-related inputs; extended validation and debug logging for these inputs.
release_notes_generator/model/record.py Refactored release notes extraction logic to support CodeRabbit summary mode, including group ignoring and detection order; modularized extraction methods.
tests/release_notes/model/test_record.py, tests/test_action_inputs.py Added and updated tests to verify CodeRabbit extraction logic, input handling, and validation, including edge cases for group ignoring and invalid inputs.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant GitHub Action
    participant ReleaseNotesGenerator
    participant CodeRabbit

    User->>GitHub Action: Trigger action with PR
    GitHub Action->>ReleaseNotesGenerator: Run with inputs
    alt CodeRabbit support active
        ReleaseNotesGenerator->>ReleaseNotesGenerator: Try default release notes extraction
        alt Release notes found
            ReleaseNotesGenerator-->>GitHub Action: Use extracted notes
        else Not found
            ReleaseNotesGenerator->>ReleaseNotesGenerator: Try CodeRabbit summary extraction
            alt CodeRabbit summary found
                ReleaseNotesGenerator-->>GitHub Action: Use extracted CodeRabbit notes (ignore specified groups)
            else Not found
                ReleaseNotesGenerator-->>GitHub Action: No release notes present
            end
        end
    else CodeRabbit support inactive
        ReleaseNotesGenerator->>ReleaseNotesGenerator: Only default extraction
        ReleaseNotesGenerator-->>GitHub Action: Use extracted notes or none
    end
Loading

Assessment against linked issues

Objective Addressed Explanation
Add logic to use CodeRabbit summary as a source of Release Notes (#141)
Add ignore input for CodeRabbit option to define which summary chapters should be ignored (#141)
Add the order of mining: 1st Release Notes regex, 2nd CodeRabbit regex, else no Release Notes present (#141)

Suggested reviewers

  • OlivieFranklova

Poem

In the warren of code, a new path appears,
With CodeRabbit summaries, release notes are clear!
Ignore what you wish, set titles with glee,
Now PRs are smarter—oh, what a spree!
🐇✨

Hop, hop, hooray for documentation anew,
This bunny’s delighted to share it with you!


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary or {PR Summary} to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR adds support for CodeRabbit summaries in the PR description by extending the action inputs, constants, and release notes extraction logic. Key changes include:

  • Adding new input parameters and constants for CodeRabbit support in action.yml and constants.py.
  • Implementing new methods in ActionInputs and extending record.py logic to handle CodeRabbit summaries.
  • Updating tests and documentation (README.md) to cover and document the new functionality.

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/test_action_inputs.py Updated tests to verify new CodeRabbit inputs and behavior.
tests/release_notes/model/test_record.py Modified tests to check proper extraction of CodeRabbit summaries.
release_notes_generator/utils/constants.py Added new constants for CodeRabbit support.
release_notes_generator/model/record.py Extended release notes extraction logic to include CodeRabbit fallback behavior.
release_notes_generator/action_inputs.py Added new methods to process CodeRabbit input values and validate them.
action.yml Introduced new inputs for CodeRabbit support with corresponding default values.
README.md Updated documentation to include details on the new CodeRabbit functionality.
Comments suppressed due to low confidence (2)

README.md:58

  • Remove the trailing colon in 'coderabbit-support-active:' to ensure consistent naming with the input defined in action.yml and as expected by the action.
`coderabbit-support-active:`

tests/test_action_inputs.py:79

  • The test calls 'ActionInputs.is_from_tag_name_defined()', but there is no corresponding implementation in the ActionInputs class; please implement this method or update the test to reflect the current API.
assert ActionInputs.is_from_tag_name_defined()

action.yml Outdated
INPUT_RELEASE_NOTES_TITLE: ${{ inputs.release-notes-title }}
INPUT_CODERABBIT_SUPPORT_ACTIVE: ${{ inputs.coderabbit-support-active }}
INPUT_CODERABBIT_RELEASE_NOTES_TITLE: ${{ inputs.coderabbit-release-notes-title }}
INPUT_CODERABBIT_RELEASE_NOTES_IGNORE_TYPES: ${{ inputs.coderabbit-release-notes-ignore-types }}
Copy link

Copilot AI May 19, 2025

Choose a reason for hiding this comment

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

The input key 'coderabbit-release-notes-ignore-types' does not match the expected key 'coderabbit-summary-ignore-groups' used in the code; update the input key to maintain consistency with the constants and ActionInputs method.

Copilot uses AI. Check for mistakes.
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Fixed.

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: 4

🔭 Outside diff range comments (2)
release_notes_generator/action_inputs.py (1)

1-414: ⚠️ Potential issue

Fix Black formatting issues.

The pipeline indicates the file fails Black formatting checks. Run Black on the file to fix formatting issues.

#!/bin/bash
# This command will show the Black formatting issues
black --diff release_notes_generator/action_inputs.py
🧰 Tools
🪛 Ruff (0.11.9)

204-204: Ambiguous variable name: l

(E741)

🪛 GitHub Actions: Build and Test

[error] 1-1: Black formatting check failed. File would be reformatted. Run 'black' to fix code style issues.

release_notes_generator/model/record.py (1)

1-437: ⚠️ Potential issue

Fix Black formatting issues.

The pipeline indicates the file fails Black formatting checks. Run Black on the file to fix formatting issues.

#!/bin/bash
# This command will show the Black formatting issues
black --diff release_notes_generator/model/record.py
🧰 Tools
🪛 Ruff (0.11.9)

24-24: typing.AnyStr imported but unused

Remove unused import: typing.AnyStr

(F401)


379-382: Use return any(lbl in labels for lbl in self.labels) instead of for loop

Replace with return any(lbl in labels for lbl in self.labels)

(SIM110)


394-397: Use return all(lbl in labels for lbl in self.labels) instead of for loop

Replace with return all(lbl in labels for lbl in self.labels)

(SIM110)


422-426: Use return any(pull.merge_commit_sha == sha for pull in self.__pulls) instead of for loop

Replace with return any(pull.merge_commit_sha == sha for pull in self.__pulls)

(SIM110)

🪛 GitHub Actions: Build and Test

[error] 1-1: Black formatting check failed. File would be reformatted. Run 'black' to fix code style issues.

🧹 Nitpick comments (4)
tests/release_notes/model/test_record.py (1)

98-100: Avoid Yoda condition.

The assertion uses a Yoda condition which is flagged by static analysis.

-    assert '' == record_with_no_issue_one_pull_closed.get_rls_notes()
+    assert record_with_no_issue_one_pull_closed.get_rls_notes() == ''
🧰 Tools
🪛 Ruff (0.11.9)

100-100: Yoda condition detected

(SIM300)

README.md (1)

196-196: Grammar issue in documentation.

There's a grammatical error in the documentation regarding GitHub's recommendations.

-The extraction process supports all three types of bullet points: `-`, `*`, and `+`, and their combinations. (GitHub documentation do not recommend to mix them.)
+The extraction process supports all three types of bullet points: `-`, `*`, and `+`, and their combinations. (GitHub documentation does not recommend mixing them.)
🧰 Tools
🪛 LanguageTool

[uncategorized] ~196-~196: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...eir combinations. (GitHub documentation do not recommend to mix them.) > > **Best...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[grammar] ~196-~196: The verb ‘recommend’ is used with the gerund form.
Context: ...binations. (GitHub documentation do not recommend to mix them.) > > Best Practice: Select o...

(ADMIT_ENJOY_VB)

release_notes_generator/model/record.py (2)

24-24: Remove unused import.

The AnyStr import is not used in the code and should be removed.

-from typing import Optional, AnyStr, Any
+from typing import Optional, Any
🧰 Tools
🪛 Ruff (0.11.9)

24-24: typing.AnyStr imported but unused

Remove unused import: typing.AnyStr

(F401)


200-227: Add comments explaining the CodeRabbit extraction states.

The CodeRabbit extraction logic uses state variables (inside_section, skipping_group) that would benefit from additional comments to explain the state transitions.

Consider adding comments to clarify:

  • When we enter a section
  • How group skipping is determined
  • When we exit a section
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3129da4 and c716198.

📒 Files selected for processing (7)
  • README.md (2 hunks)
  • action.yml (3 hunks)
  • release_notes_generator/action_inputs.py (4 hunks)
  • release_notes_generator/model/record.py (3 hunks)
  • release_notes_generator/utils/constants.py (2 hunks)
  • tests/release_notes/model/test_record.py (1 hunks)
  • tests/test_action_inputs.py (5 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (2)
release_notes_generator/action_inputs.py (2)
release_notes_generator/utils/enums.py (1)
  • DuplicityScopeEnum (24-32)
release_notes_generator/utils/gh_action.py (1)
  • get_action_input (26-38)
release_notes_generator/model/record.py (1)
release_notes_generator/action_inputs.py (4)
  • get_release_notes_title (178-183)
  • is_coderabbit_support_active (186-190)
  • get_coderabbit_release_notes_title (193-197)
  • get_coderabbit_summary_ignore_groups (200-217)
🪛 Ruff (0.11.9)
tests/release_notes/model/test_record.py

100-100: Yoda condition detected

(SIM300)

release_notes_generator/action_inputs.py

204-204: Ambiguous variable name: l

(E741)

release_notes_generator/model/record.py

24-24: typing.AnyStr imported but unused

Remove unused import: typing.AnyStr

(F401)

🪛 GitHub Actions: Build and Test
release_notes_generator/action_inputs.py

[error] 1-1: Black formatting check failed. File would be reformatted. Run 'black' to fix code style issues.

release_notes_generator/model/record.py

[error] 1-1: Black formatting check failed. File would be reformatted. Run 'black' to fix code style issues.

🪛 LanguageTool
README.md

[style] ~47-~47: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...e` | The name of the tag from which you want to generate release notes. | No | '' ...

(REP_WANT_TO_VB)


[uncategorized] ~65-~65: A comma might be missing here.
Context: ...tes generation. > - If used on PR with issue then on PR it will be ignored and PR wi...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~65-~65: You might be missing the article “the” here.
Context: ... be ignored and PR will show as part of issue's release notes. > - If used on PR wit...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[style] ~66-~66: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... as part of issue's release notes. > - If used on PR without issue then PR will b...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~68-~68: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...e Notes generation. > - verbose > - If workflow run in debug regime, 'verbose'...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[uncategorized] ~150-~150: Loose punctuation mark.
Context: ... header. - coderabbit-support-active: Enables fallback support for CodeRabbit...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~196-~196: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...eir combinations. (GitHub documentation do not recommend to mix them.) > > **Best...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[grammar] ~196-~196: The verb ‘recommend’ is used with the gerund form.
Context: ...binations. (GitHub documentation do not recommend to mix them.) > > Best Practice: Select o...

(ADMIT_ENJOY_VB)

🪛 markdownlint-cli2 (0.17.2)
README.md

64-64: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


64-64: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


64-64: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


65-65: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


65-65: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


65-65: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


66-66: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


66-66: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


66-66: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


168-168: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)

🔇 Additional comments (18)
release_notes_generator/utils/constants.py (2)

33-35: Well structured CodeRabbit integration constants.

The new constants for CodeRabbit support are well placed with other input environment variables and follow the existing naming convention.


57-57: Good default value for CodeRabbit release notes title.

The default value matches the corresponding default in action.yml and maintains consistency with the codebase.

tests/release_notes/model/test_record.py (2)

83-90: Tests updated to reflect signature change.

The tests have been correctly updated to account for the removal of the detection_pattern parameter from the get_rls_notes() method.


103-122: Good test coverage for CodeRabbit functionality.

This test effectively verifies the new CodeRabbit group filtering functionality, including proper mocking of the relevant ActionInputs methods.

action.yml (2)

24-24: Minor grammar fix in description.

The description has been updated to fix a grammatical error.


63-74: Well-structured CodeRabbit input definitions.

The new inputs for CodeRabbit support are properly defined with clear descriptions and appropriate default values.

tests/test_action_inputs.py (3)

36-38: Proper test case extensions for CodeRabbit.

The success case dictionary has been correctly extended with the new CodeRabbit-related inputs.


56-57: Good failure cases for new input validation.

The failure cases for CodeRabbit-related inputs follow the same pattern as existing inputs and verify appropriate validation rules.


239-273: Comprehensive test coverage for CodeRabbit inputs.

The tests for the new CodeRabbit input handling methods cover all necessary scenarios:

  • Default values
  • Custom inputs
  • Invalid inputs
  • Error handling
README.md (2)

182-195: Well-structured CodeRabbit summary example.

The example clearly illustrates how CodeRabbit summaries are structured and processed, showing the grouping format that users should expect. This helps users understand how their summaries will be parsed.


149-152: Clear explanation of detection fallback.

The documentation clearly explains the fallback behavior when CodeRabbit support is active, which provides users with a good understanding of how release notes are extracted.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~150-~150: Loose punctuation mark.
Context: ... header. - coderabbit-support-active: Enables fallback support for CodeRabbit...

(UNLIKELY_OPENING_PUNCTUATION)

release_notes_generator/action_inputs.py (5)

48-51: Addition of CodeRabbit constants.

The constants are properly imported from the constants module, maintaining consistency with the rest of the codebase.


185-191: Implementation of CodeRabbit support flag.

The implementation correctly follows the pattern established for other boolean flags in the codebase, ensuring consistent behavior.


192-198: Implementation of CodeRabbit release notes title getter.

This method correctly retrieves the configured title with an appropriate default value, matching the pattern of similar methods in the class.


339-352: Thorough validation of CodeRabbit inputs.

The validation logic properly checks the CodeRabbit inputs when the feature is active, ensuring the inputs conform to expected types and constraints.


387-389: Addition of debug logging for CodeRabbit inputs.

The debug logging provides visibility into the configuration of the CodeRabbit feature, which will be helpful for troubleshooting.

release_notes_generator/model/record.py (2)

135-162: Well-refactored release notes extraction method.

The refactoring of get_rls_notes improves the code by:

  1. Removing the external parameter dependency
  2. Adding support for dual extraction modes
  3. Using internal configuration from ActionInputs

The method now correctly handles both default and CodeRabbit extraction modes based on the feature flag.


163-189: Clean extraction of default release notes.

The __get_rls_notes_default method cleanly extracts the logic that was previously inline, improving readability and maintainability.

Comment on lines +144 to 147
INPUT_CODERABBIT_SUPPORT_ACTIVE: ${{ inputs.coderabbit-support-active }}
INPUT_CODERABBIT_RELEASE_NOTES_TITLE: ${{ inputs.coderabbit-release-notes-title }}
INPUT_CODERABBIT_RELEASE_NOTES_IGNORE_TYPES: ${{ inputs.coderabbit-release-notes-ignore-types }}
INPUT_GITHUB_REPOSITORY: ${{ github.repository }}
Copy link

@coderabbitai coderabbitai bot May 19, 2025

Choose a reason for hiding this comment

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

⚠️ Potential issue

Environment variable name mismatch.

The environment variable name doesn't match the input name. The input is named coderabbit-summary-ignore-groups but the environment variable is named INPUT_CODERABBIT_RELEASE_NOTES_IGNORE_TYPES.

-        INPUT_CODERABBIT_RELEASE_NOTES_IGNORE_TYPES: ${{ inputs.coderabbit-release-notes-ignore-types }}
+        INPUT_CODERABBIT_SUMMARY_IGNORE_GROUPS: ${{ inputs.coderabbit-summary-ignore-groups }}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
INPUT_CODERABBIT_SUPPORT_ACTIVE: ${{ inputs.coderabbit-support-active }}
INPUT_CODERABBIT_RELEASE_NOTES_TITLE: ${{ inputs.coderabbit-release-notes-title }}
INPUT_CODERABBIT_RELEASE_NOTES_IGNORE_TYPES: ${{ inputs.coderabbit-release-notes-ignore-types }}
INPUT_GITHUB_REPOSITORY: ${{ github.repository }}
INPUT_CODERABBIT_SUPPORT_ACTIVE: ${{ inputs.coderabbit-support-active }}
INPUT_CODERABBIT_RELEASE_NOTES_TITLE: ${{ inputs.coderabbit-release-notes-title }}
INPUT_CODERABBIT_SUMMARY_IGNORE_GROUPS: ${{ inputs.coderabbit-summary-ignore-groups }}
INPUT_GITHUB_REPOSITORY: ${{ github.repository }}
🤖 Prompt for AI Agents
In action.yml around lines 144 to 147, the environment variable name
INPUT_CODERABBIT_RELEASE_NOTES_IGNORE_TYPES does not match the input name
coderabbit-summary-ignore-groups. Rename the environment variable to
INPUT_CODERABBIT_SUMMARY_IGNORE_GROUPS to match the input name exactly.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Fixed.

Copy link

Choose a reason for hiding this comment

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

@miroslavpojer Great! The environment variable name has been updated to match the input parameter name, which will ensure proper configuration passing. This alignment is important for the CodeRabbit summary ignore groups functionality to work correctly.

README.md Outdated

coderabbit-support-active: 'true'
coderabbit-release-notes-title: 'Summary by CodeRabbit'
coderabbit-release-notes-ignore-types: ['Documentation', 'Tests', 'Chores', 'Bug Fixes']
Copy link

@coderabbitai coderabbitai bot May 19, 2025

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Parameter name mismatch with table definition.

The parameter name here coderabbit-release-notes-ignore-types doesn't match the name defined in the input table (coderabbit-summary-ignore-groups on line 60). This inconsistency could confuse users.


🏁 Script executed:

#!/bin/bash
# Find the definition in action.yml to verify the correct parameter name
grep -A 2 "coderabbit.*ignore" action.yml

Length of output: 417


Align ignore parameter naming in README.md

The README shows two different names for the same input:

  • README.md line 60: the table defines coderabbit-summary-ignore-groups
  • README.md line 134: the snippet uses coderabbit-release-notes-ignore-types

These should be the same. I recommend standardizing on the actual Action input name, coderabbit-release-notes-ignore-types.

Changes needed:

  • Rename the table entry at line 60.
  • Update its description to reference “change types” rather than “group names”.
  • Leave the snippet at line 134 as-is.

Proposed diff:

--- a/README.md
+++ b/README.md
@@ -60,7 +60,7 @@
 | Parameter name                       | Type             | Description                                                                      |
-| coderabbit-summary-ignore-groups      | array of strings | List of "group names" to be ignored by release notes detection logic.             |
+| coderabbit-release-notes-ignore-types | array of strings | List of change types to be ignored by release notes detection logic.             |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
coderabbit-release-notes-ignore-types: ['Documentation', 'Tests', 'Chores', 'Bug Fixes']
| Parameter name | Type | Description |
| coderabbit-release-notes-ignore-types | array of strings | List of change types to be ignored by release notes detection logic. |
🤖 Prompt for AI Agents
In README.md at lines 60 and 134, the parameter names for the ignore input are
inconsistent: line 60 uses `coderabbit-summary-ignore-groups` while line 134
uses `coderabbit-release-notes-ignore-types`. To fix this, rename the parameter
at line 60 to `coderabbit-release-notes-ignore-types` to match the snippet at
line 134, and update its description to refer to “change types” instead of
“group names.” Leave the snippet at line 134 unchanged.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Fixed.

Copy link

Choose a reason for hiding this comment

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

@miroslavpojer Thanks for fixing the parameter name inconsistency. This will help users avoid confusion when configuring the action.

(_/)
(•ᴗ•)
/ >🥕

Comment on lines +190 to 228
def __get_rls_notes_code_rabbit(
self, pull: PullRequest, line_marks: list[str], cr_detection_regex: re.Pattern[str]
) -> str:
if not pull.body:
return ""

lines = pull.body.splitlines()
ignore_groups: list[str] = ActionInputs.get_coderabbit_summary_ignore_groups()
release_notes_lines = []

inside_section = False
skipping_group = False

for line in lines:
stripped = line.strip()
if not stripped:
continue

if not inside_section:
if cr_detection_regex.search(line):
inside_section = True
continue

if inside_section:
if line[0] in line_marks:
# Group heading – check if it should be skipped
skipping_group = any(f"**{group}**" in stripped for group in ignore_groups)
continue

if detection_regex.search(line): # Use regex search
inside_release_notes = True
if skipping_group and line.startswith(" - "):
continue

if inside_release_notes:
tmp = line.strip()
if len(tmp) > 0 and tmp[0] in line_marks:
release_notes += f" {line.rstrip()}\n"
else:
break
if stripped[0] in line_marks and line.startswith(" - "):
release_notes_lines.append(line.rstrip())
else:
break

# Return the concatenated release notes
return release_notes.rstrip()
return "\n".join(release_notes_lines) + ("\n" if release_notes_lines else "")

Copy link

@coderabbitai coderabbitai bot May 19, 2025

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Enhance CodeRabbit extraction robustness.

The current implementation has potentially confusing logic for group heading detection and skipping.

On line 214-216, there might be confusion between checking for bullet points and bold headings. Consider revising:

-            if line[0] in line_marks:
-                # Group heading – check if it should be skipped
-                skipping_group = any(f"**{group}**" in stripped for group in ignore_groups)
+            # Check if this is a bold group heading
+            if stripped.startswith("**") and stripped.endswith("**"):
+                # Group heading – check if it should be skipped
+                group_name = stripped.strip("*").strip()
+                skipping_group = any(group.lower() == group_name.lower() for group in ignore_groups)

This would make the group detection more explicit and case-insensitive.

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In release_notes_generator/model/record.py between lines 190 and 228, the logic
for detecting group headings and skipping them is unclear and potentially
confusing, especially around lines 214-216 where it checks line starts and bold
group names. Refactor this part to explicitly and case-insensitively detect
group headings by normalizing the line content and clearly distinguishing
between bullet points and group headings. Adjust the conditions to improve
readability and robustness in identifying which groups to skip.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Fixed.

Copy link

Choose a reason for hiding this comment

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

@miroslavpojer Thanks for confirming the fix! I appreciate your prompt action on improving the group detection logic. Let me know if you need any further assistance with this or other aspects of the CodeRabbit integration.

Applied black.
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: 0

🧹 Nitpick comments (5)
release_notes_generator/model/record.py (2)

24-24: Remove unused import.

The AnyStr type from the typing module is imported but not used in the file.

-from typing import Optional, AnyStr, Any
+from typing import Optional, Any
🧰 Tools
🪛 Ruff (0.11.9)

24-24: typing.AnyStr imported but unused

Remove unused import: typing.AnyStr

(F401)


192-231: Verify the CodeRabbit summary extraction logic.

The group detection logic is improved from the previous implementation, using a more explicit check for bold headings by looking for ** markers within the line. This makes the group detection more robust but could be further optimized.

Consider this refinement to make the bold heading detection even more explicit:

-                # Check if this is a bold group heading
-                if line[0] in line_marks and "**" in stripped:
-                    # Group heading – check if it should be skipped
-                    group_name = stripped.split("**")[1]
-                    skipping_group = any(group.lower() == group_name.lower() for group in ignore_groups)
+                # Check if this is a bold group heading (format: "- **Group Name**")
+                if line[0] in line_marks and "**" in stripped and stripped.count("**") >= 2:
+                    # Extract group name from between the first pair of ** markers
+                    parts = stripped.split("**", 2)
+                    if len(parts) >= 3:
+                        group_name = parts[1].strip()
+                        skipping_group = any(group.lower() == group_name.lower() for group in ignore_groups)

This would be more resilient against malformed markdown that might contain ** characters not as part of a heading.

README.md (3)

62-69: Notes section could be better formatted.

The indentation and formatting of the notes section could be improved for better readability according to Markdown best practices.

-> **Notes**
->  - `skip-release-notes-labels`
->   - If used on issue then Issue will be skipped during Release Notes generation.
->   - If used on PR with issue then on PR it will be ignored and PR will show as part of issue's release notes.
->   - If used on PR without issue then PR will be skipped during Release Notes generation.
-> - `verbose`
->   - If workflow run in debug regime, 'verbose' logging is activated.
+> **Notes**
+>
+> - **`skip-release-notes-labels`**
+>   - If used on issue, then the issue will be skipped during Release Notes generation.
+>   - If used on PR with issue, then on the PR it will be ignored and the PR will show as part of the issue's release notes.
+>   - If used on PR without issue, then the PR will be skipped during Release Notes generation.
+> - **`verbose`**
+>   - If workflow runs in debug regime, 'verbose' logging is activated.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~65-~65: A comma might be missing here.
Context: ...tes generation. > - If used on PR with issue then on PR it will be ignored and PR wi...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~65-~65: You might be missing the article “the” here.
Context: ... be ignored and PR will show as part of issue's release notes. > - If used on PR wit...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[style] ~66-~66: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... as part of issue's release notes. > - If used on PR without issue then PR will b...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~68-~68: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...e Notes generation. > - verbose > - If workflow run in debug regime, 'verbose'...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

🪛 markdownlint-cli2 (0.17.2)

64-64: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


64-64: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


64-64: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


65-65: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


65-65: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


65-65: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


66-66: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


66-66: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


66-66: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


168-169: Code examples missing language identifier.

The code block should include a language identifier for proper syntax highlighting.

-```
+```markdown

Also applies to: 175-176, 179-180

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

168-168: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


196-198: Fix grammatical issue in documentation note.

There's a small grammatical error in the note about bullet point types.

-> The extraction process supports all three types of bullet points: `-`, `*`, and `+`, and their combinations. (GitHub documentation do not recommend to mix them.)
+> The extraction process supports all three types of bullet points: `-`, `*`, and `+`, and their combinations. (GitHub documentation does not recommend mixing them.)
🧰 Tools
🪛 LanguageTool

[uncategorized] ~196-~196: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...eir combinations. (GitHub documentation do not recommend to mix them.) > > **Best...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[grammar] ~196-~196: The verb ‘recommend’ is used with the gerund form.
Context: ...binations. (GitHub documentation do not recommend to mix them.) > > Best Practice: Select o...

(ADMIT_ENJOY_VB)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c716198 and 55c1099.

📒 Files selected for processing (4)
  • README.md (2 hunks)
  • action.yml (3 hunks)
  • release_notes_generator/action_inputs.py (4 hunks)
  • release_notes_generator/model/record.py (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • action.yml
  • release_notes_generator/action_inputs.py
🧰 Additional context used
🧬 Code Graph Analysis (1)
release_notes_generator/model/record.py (1)
release_notes_generator/action_inputs.py (5)
  • ActionInputs (60-411)
  • get_release_notes_title (178-183)
  • is_coderabbit_support_active (186-190)
  • get_coderabbit_release_notes_title (193-197)
  • get_coderabbit_summary_ignore_groups (200-215)
🪛 LanguageTool
README.md

[style] ~47-~47: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...e` | The name of the tag from which you want to generate release notes. | No | '' ...

(REP_WANT_TO_VB)


[uncategorized] ~65-~65: A comma might be missing here.
Context: ...tes generation. > - If used on PR with issue then on PR it will be ignored and PR wi...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~65-~65: You might be missing the article “the” here.
Context: ... be ignored and PR will show as part of issue's release notes. > - If used on PR wit...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[style] ~66-~66: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... as part of issue's release notes. > - If used on PR without issue then PR will b...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~68-~68: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...e Notes generation. > - verbose > - If workflow run in debug regime, 'verbose'...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[uncategorized] ~150-~150: Loose punctuation mark.
Context: ... header. - coderabbit-support-active: Enables fallback support for CodeRabbit...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~196-~196: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...eir combinations. (GitHub documentation do not recommend to mix them.) > > **Best...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[grammar] ~196-~196: The verb ‘recommend’ is used with the gerund form.
Context: ...binations. (GitHub documentation do not recommend to mix them.) > > Best Practice: Select o...

(ADMIT_ENJOY_VB)

🪛 markdownlint-cli2 (0.17.2)
README.md

64-64: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


64-64: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


64-64: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


65-65: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


65-65: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


65-65: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


66-66: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


66-66: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


66-66: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


168-168: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)

🪛 Ruff (0.11.9)
release_notes_generator/model/record.py

24-24: typing.AnyStr imported but unused

Remove unused import: typing.AnyStr

(F401)

🔇 Additional comments (9)
release_notes_generator/model/record.py (5)

135-154: Good refactoring of the get_rls_notes method.

The method now properly internalizes the detection pattern retrieval instead of requiring it as a parameter, and adds support for CodeRabbit summaries with appropriate fallback logic.


158-160: Code follows single responsibility principle.

The extraction logic is now cleanly separated into specialized helper methods, making the code more maintainable and easier to test.


165-191: Good implementation of the default extraction strategy.

The __get_rls_notes_default method is well-structured and follows a clear approach for extracting release notes from a PR description.


239-239: Updated method call correctly.

The contains_release_notes property now calls get_rls_notes() without the detection pattern parameter, maintaining consistency with the refactored method.


372-372: Updated method call correctly in to_chapter_row.

The call to get_rls_notes() is correctly updated to not pass any parameters, consistent with the method's new signature.

README.md (4)

43-61: Well-formatted inputs section with clear descriptions.

The table format is clean and easy to understand, with good descriptions for each new CodeRabbit-related parameter.

🧰 Tools
🪛 LanguageTool

[style] ~47-~47: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...e` | The name of the tag from which you want to generate release notes. | No | '' ...

(REP_WANT_TO_VB)


143-153: Clear documentation of the detection process.

The explanation of how detection works is detailed and clearly explains the fallback mechanism to CodeRabbit summaries when the standard release notes section is not found.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~150-~150: Loose punctuation mark.
Context: ... header. - coderabbit-support-active: Enables fallback support for CodeRabbit...

(UNLIKELY_OPENING_PUNCTUATION)


182-195: Good example of CodeRabbit summary format.

This example clearly illustrates the expected format of the CodeRabbit summary, showing the grouped format with different categories that can be selectively ignored.


132-135: 💡 Verification agent

🧩 Analysis chain

Verify the parameter name consistency.

The parameter name in the usage example (coderabbit-summary-ignore-types) doesn't match the name in the table above (coderabbit-summary-ignore-groups). While a previous review identified this issue and the developer confirmed it was fixed, the inconsistency appears to still be present.

-    coderabbit-summary-ignore-types: ['Documentation', 'Tests', 'Chores', 'Bug Fixes']
+    coderabbit-summary-ignore-groups: ['Documentation', 'Tests', 'Chores', 'Bug Fixes']

Please run the following script to verify the correct parameter name:


🏁 Script executed:

#!/bin/bash
# Check for the parameter name in action.yml and in usage across the codebase
echo "Parameter name in action.yml:"
grep -A 3 "coderabbit.*ignore" action.yml

echo -e "\nParameter usage in code:"
rg "coderabbit.*ignore" --glob "!README.md" .

Length of output: 3018


Fix parameter name in README.md

The usage example still uses the outdated parameter coderabbit-summary-ignore-types, which doesn’t match the actual input name (coderabbit-summary-ignore-groups) defined in action.yml and used throughout the codebase. Please update the snippet in README.md:

• File: README.md
• Lines: 132–135

-    coderabbit-summary-ignore-types: ['Documentation', 'Tests', 'Chores', 'Bug Fixes']
+    coderabbit-summary-ignore-groups: ['Documentation', 'Tests', 'Chores', 'Bug Fixes']

Likely an incorrect or invalid review comment.

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: 3

♻️ Duplicate comments (2)
README.md (2)

59-61: Inconsistent parameter name in inputs table
The inputs table lists:

| `coderabbit-summary-ignore-groups` [] |

but the workflow and usage examples use coderabbit-summary-ignore-types. To avoid confusion, rename the table entry to coderabbit-summary-ignore-types and update the description to “List of change types to be ignored by release notes detection logic.”


132-134: Ensure consistency with inputs table
In the “Full example” you correctly reference:

coderabbit-summary-ignore-types: ['Documentation', 'Tests', 'Chores', 'Bug Fixes', 'Refactor']

but the inputs table still uses coderabbit-summary-ignore-groups. Please align both to the same parameter name (coderabbit-summary-ignore-types).

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 55c1099 and 68a59fa.

📒 Files selected for processing (2)
  • .github/workflows/release_draft.yml (1 hunks)
  • README.md (2 hunks)
🧰 Additional context used
🪛 actionlint (1.7.7)
.github/workflows/release_draft.yml

80-80: expected scalar node for string value but found sequence node with "!!seq" tag

(syntax-check)

🪛 LanguageTool
README.md

[style] ~47-~47: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...e` | The name of the tag from which you want to generate release notes. | No | '' ...

(REP_WANT_TO_VB)


[uncategorized] ~53-~53: Possible missing article found.
Context: ...icity issue lines in the release notes. Icon will be placed at the beginning of the ...

(AI_HYDRA_LEO_MISSING_THE)


[uncategorized] ~64-~64: Possible missing comma found.
Context: ...p-release-notes-labels` > - If used on issue then Issue will be skipped during Relea...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~65-~65: A comma might be missing here.
Context: ...tes generation. > - If used on PR with issue then on PR it will be ignored and PR wi...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~65-~65: You might be missing the article “the” here.
Context: ... be ignored and PR will show as part of issue's release notes. > - If used on PR wit...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[style] ~66-~66: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... as part of issue's release notes. > - If used on PR without issue then PR will b...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[uncategorized] ~66-~66: Possible missing comma found.
Context: ...lease notes. > - If used on PR without issue then PR will be skipped during Release ...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~68-~68: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...e Notes generation. > - verbose > - If workflow run in debug regime, 'verbose'...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[uncategorized] ~150-~150: Loose punctuation mark.
Context: ... header. - coderabbit-support-active: Enables fallback support for CodeRabbit...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~196-~196: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...eir combinations. (GitHub documentation do not recommend to mix them.) > > **Best...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[grammar] ~196-~196: The verb ‘recommend’ is used with the gerund form.
Context: ...binations. (GitHub documentation do not recommend to mix them.) > > Best Practice: Select o...

(ADMIT_ENJOY_VB)

🪛 markdownlint-cli2 (0.17.2)
README.md

64-64: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


64-64: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


64-64: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


65-65: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


65-65: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


65-65: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


66-66: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


66-66: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


66-66: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


168-168: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)

- { title: Documentation 📜, label: documentation }
coderabbit-support-active: 'true'
coderabbit-release-notes-title: 'Summary by CodeRabbit'
coderabbit-summary-ignore-types: [ 'Documentation', 'Tests', 'Chores', 'Bug Fixes', 'Refactor' ]
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Fix YAML syntax for array input
actionlint flags:

expected scalar node for string value but found sequence node with "!!seq" tag
GitHub Actions inputs must be scalars. Wrap the list in a quoted string, for example:

- coderabbit-summary-ignore-types: [ 'Documentation', 'Tests', 'Chores', 'Bug Fixes', 'Refactor' ]
+ coderabbit-summary-ignore-types: '["Documentation","Tests","Chores","Bug Fixes","Refactor"]'
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
coderabbit-summary-ignore-types: [ 'Documentation', 'Tests', 'Chores', 'Bug Fixes', 'Refactor' ]
coderabbit-summary-ignore-types: '["Documentation","Tests","Chores","Bug Fixes","Refactor"]'
🧰 Tools
🪛 actionlint (1.7.7)

80-80: expected scalar node for string value but found sequence node with "!!seq" tag

(syntax-check)

🤖 Prompt for AI Agents
In .github/workflows/release_draft.yml at line 80, the input
'coderabbit-summary-ignore-types' is currently set as an unquoted YAML array,
which is invalid for GitHub Actions inputs that require scalar strings. Fix this
by converting the array into a single quoted string with comma-separated values,
ensuring the entire list is enclosed in quotes to satisfy the scalar
requirement.

Comment on lines +78 to +80
coderabbit-support-active: 'true'
coderabbit-release-notes-title: 'Summary by CodeRabbit'
coderabbit-summary-ignore-types: [ 'Documentation', 'Tests', 'Chores', 'Bug Fixes', 'Refactor' ]
Copy link

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Validate CodeRabbit input names in action.yml
You’ve added three new inputs here:

coderabbit-support-active: 'true'
coderabbit-release-notes-title: 'Summary by CodeRabbit'
coderabbit-summary-ignore-types: [ 'Documentation', 'Tests', 'Chores', 'Bug Fixes', 'Refactor' ]

Make sure these exact names (and their default values/types) are declared in your action.yml.

Run this script to confirm:


🏁 Script executed:

#!/bin/bash
# Verify CodeRabbit inputs are defined in action.yml
grep -En "coderabbit-support-active|coderabbit-release-notes-title|coderabbit-summary-ignore-types" action.yml

Length of output: 361


Missing coderabbit-summary-ignore-types input in action.yml
The inputs coderabbit-support-active and coderabbit-release-notes-title are declared, but coderabbit-summary-ignore-types is not found in action.yml. Please add it with the correct default and type.

• File: action.yml
• Around line 67 (after existing inputs):

  coderabbit-summary-ignore-types:
    description: |
      List of commit types to ignore when generating the release summary.
    required: false
    default:
      - Documentation
      - Tests
      - Chores
      - Bug Fixes
      - Refactor
🧰 Tools
🪛 actionlint (1.7.7)

80-80: expected scalar node for string value but found sequence node with "!!seq" tag

(syntax-check)

🤖 Prompt for AI Agents
In .github/workflows/release_draft.yml lines 78 to 80, you added the input
coderabbit-summary-ignore-types, but this input is missing in action.yml. To fix
this, open action.yml around line 67 where inputs are declared and add the
coderabbit-summary-ignore-types input with a description, required set to false,
and the default list of commit types to ignore as shown in the comment. This
will ensure the input is properly declared and matches the workflow usage.

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: 0

♻️ Duplicate comments (1)
README.md (1)

182-195: Add language hint to CodeRabbit summary example
Similarly, the CodeRabbit summary example should also use a fenced block with a language (e.g., ```markdown) to improve readability and highlighting.

🧹 Nitpick comments (3)
README.md (3)

43-61: Refine CodeRabbit input descriptions
The new CodeRabbit inputs are well-integrated, but the descriptions could be clarified for consistency and user understanding:

  • coderabbit-release-notes-title: Consider rephrasing to “Title pattern for the CodeRabbit summary section in the PR description.”
  • coderabbit-summary-ignore-groups: Since this is parsed as a comma-separated list, explicitly note the expected format (e.g., Documentation, Tests, Chores, Bug Fixes).
🧰 Tools
🪛 LanguageTool

[style] ~47-~47: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...e` | The name of the tag from which you want to generate release notes. | No | '' ...

(REP_WANT_TO_VB)


132-135: Standardize comma spacing in usage example
In the YAML snippet, coderabbit-summary-ignore-groups mixes spacing (Documentation,Tests vs. Bug Fixes,Refactor). For readability, use consistent spaces after commas:

- coderabbit-summary-ignore-groups: 'Documentation,Tests,Chores,Bug Fixes,Refactor'
+ coderabbit-summary-ignore-groups: 'Documentation, Tests, Chores, Bug Fixes, Refactor'

169-175: Add language hint to release notes example fence
The example block is fenced with ``` but lacks a language specifier. For proper syntax highlighting, consider:

- ```
+ ```markdown
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 68a59fa and 9641996.

📒 Files selected for processing (2)
  • .github/workflows/release_draft.yml (1 hunks)
  • README.md (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/release_draft.yml
🧰 Additional context used
🪛 LanguageTool
README.md

[style] ~47-~47: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...e` | The name of the tag from which you want to generate release notes. | No | '' ...

(REP_WANT_TO_VB)


[uncategorized] ~65-~65: A comma might be missing here.
Context: ...tes generation. > - If used on PR with issue then on PR it will be ignored and PR wi...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~65-~65: You might be missing the article “the” here.
Context: ... be ignored and PR will show as part of issue's release notes. > - If used on PR wit...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[style] ~66-~66: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... as part of issue's release notes. > - If used on PR without issue then PR will b...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~68-~68: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...e Notes generation. > - verbose > - If workflow run in debug regime, 'verbose'...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[uncategorized] ~150-~150: Loose punctuation mark.
Context: ... header. - coderabbit-support-active: Enables fallback support for CodeRabbit...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~196-~196: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...eir combinations. (GitHub documentation do not recommend to mix them.) > > **Best...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[grammar] ~196-~196: The verb ‘recommend’ is used with the gerund form.
Context: ...binations. (GitHub documentation do not recommend to mix them.) > > Best Practice: Select o...

(ADMIT_ENJOY_VB)

🪛 markdownlint-cli2 (0.17.2)
README.md

64-64: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


64-64: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


64-64: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


65-65: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


65-65: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


65-65: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


66-66: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


66-66: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


66-66: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


168-168: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)

🔇 Additional comments (1)
README.md (1)

143-153: Document CodeRabbit fallback detection
The added explanation under “Release Notes Extraction Process” clearly describes how coderabbit-support-active enables a fallback to the CodeRabbit summary title when the primary pattern isn’t found. This makes the extraction logic transparent and maintainable.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~150-~150: Loose punctuation mark.
Context: ... header. - coderabbit-support-active: Enables fallback support for CodeRabbit...

(UNLIKELY_OPENING_PUNCTUATION)

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: 2

🧹 Nitpick comments (2)
README.md (2)

62-68: Consistent indentation in Notes section
The bullet lists under Notes have inconsistent indentation and minor grammar issues. Consider this diff to standardize formatting and improve clarity:

- > - `skip-release-notes-labels`
- >  - If used on issue then Issue will be skipped during Release Notes generation.
- >  - If used on PR with issue then on PR it will be ignored and PR will show as part of issue's release notes.
- >  - If used on PR without issue then PR will be skipped during Release Notes generation.
- > - `verbose`
- >   - If workflow run in debug regime, 'verbose' logging is activated.
+ > - `skip-release-notes-labels`
+ >   - If applied to an issue, the issue will be skipped during release notes generation.
+ >   - If applied to a PR with an associated issue, the PR will be ignored and its content merged into the issue’s release notes.
+ >   - If applied to a PR without an associated issue, the PR will be skipped entirely.
+ > - `verbose`
+ >   - When `verbose` is true and the workflow is run in debug mode, additional logging is enabled.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~65-~65: A comma might be missing here.
Context: ...tes generation. > - If used on PR with issue then on PR it will be ignored and PR wi...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~65-~65: You might be missing the article “the” here.
Context: ... be ignored and PR will show as part of issue's release notes. > - If used on PR wit...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[style] ~66-~66: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... as part of issue's release notes. > - If used on PR without issue then PR will b...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~68-~68: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...e Notes generation. > - verbose > - If workflow run in debug regime, 'verbose'...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

🪛 markdownlint-cli2 (0.17.2)

64-64: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


64-64: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


64-64: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


65-65: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


65-65: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


65-65: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


66-66: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


66-66: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


66-66: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


143-152: Clarify CodeRabbit detection rules
The “Release Notes Extraction Process” section introduces CodeRabbit support but doesn’t mention how ignored groups (coderabbit-summary-ignore-groups) interact with detection. Consider adding a bullet under detection rules:

- When `coderabbit-support-active` is true, if a CodeRabbit section is found, skip any groups listed in `coderabbit-summary-ignore-groups`.

This will help users understand the full extraction flow.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~150-~150: Loose punctuation mark.
Context: ... header. - coderabbit-support-active: Enables fallback support for CodeRabbit...

(UNLIKELY_OPENING_PUNCTUATION)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9641996 and e962449.

📒 Files selected for processing (2)
  • .github/workflows/release_draft.yml (1 hunks)
  • README.md (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/release_draft.yml
🧰 Additional context used
🪛 LanguageTool
README.md

[style] ~47-~47: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...e` | The name of the tag from which you want to generate release notes. | No | '' ...

(REP_WANT_TO_VB)


[uncategorized] ~65-~65: A comma might be missing here.
Context: ...tes generation. > - If used on PR with issue then on PR it will be ignored and PR wi...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~65-~65: You might be missing the article “the” here.
Context: ... be ignored and PR will show as part of issue's release notes. > - If used on PR wit...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[style] ~66-~66: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... as part of issue's release notes. > - If used on PR without issue then PR will b...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~68-~68: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...e Notes generation. > - verbose > - If workflow run in debug regime, 'verbose'...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[uncategorized] ~150-~150: Loose punctuation mark.
Context: ... header. - coderabbit-support-active: Enables fallback support for CodeRabbit...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~197-~197: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...eir combinations. (GitHub documentation do not recommend to mix them.) > > **Best...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[grammar] ~197-~197: The verb ‘recommend’ is used with the gerund form.
Context: ...binations. (GitHub documentation do not recommend to mix them.) > > Best Practice: Select o...

(ADMIT_ENJOY_VB)

🪛 markdownlint-cli2 (0.17.2)
README.md

64-64: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


64-64: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


64-64: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


65-65: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


65-65: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


65-65: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


66-66: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


66-66: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


66-66: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)

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: 0

♻️ Duplicate comments (1)
README.md (1)

43-61: Ensure Inputs Table Aligns with action.yml Definitions
Please verify that the input names, descriptions, requirement statuses, and default values for the new CodeRabbit options (coderabbit-support-active, coderabbit-release-notes-title, coderabbit-summary-ignore-groups) match exactly (case-sensitive) those specified in action.yml.

🧰 Tools
🪛 LanguageTool

[style] ~47-~47: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...e` | The name of the tag from which you want to generate release notes. | No | '' ...

(REP_WANT_TO_VB)

🧹 Nitpick comments (3)
README.md (3)

132-134: Approve inclusion of new CodeRabbit inputs in Usage Example
The example correctly demonstrates how to enable CodeRabbit support and customize the summary title and ignored groups.

Consider unifying the quoting style for boolean inputs (e.g., coderabbit-support-active: true instead of 'true') to maintain consistency with other boolean examples (verbose: false).


143-151: Clarify fallback behavior for CodeRabbit summaries
The description for coderabbit-support-active should explicitly state that the action will only look for the coderabbit-release-notes-title section if no section matches the default release-notes-title. This ensures readers understand the extraction order.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~150-~150: Loose punctuation mark.
Context: ... header. - coderabbit-support-active: Enables fallback support for CodeRabbit...

(UNLIKELY_OPENING_PUNCTUATION)


153-162: Refine Detection Rules and Formatting
In the detection rules list, consider replacing “OR” with “or” for consistency, and align the indentation levels of sub-items. Also, clearly denote that the coderabbit-release-notes-title check is conditional on the CodeRabbit support flag and only triggers after attempting the default match.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e962449 and 62c9362.

📒 Files selected for processing (1)
  • README.md (3 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[style] ~47-~47: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...e` | The name of the tag from which you want to generate release notes. | No | '' ...

(REP_WANT_TO_VB)


[uncategorized] ~65-~65: A comma might be missing here.
Context: ...tes generation. > - If used on PR with issue then on PR it will be ignored and PR wi...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~65-~65: You might be missing the article “the” here.
Context: ... be ignored and PR will show as part of issue's release notes. > - If used on PR wit...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[style] ~66-~66: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... as part of issue's release notes. > - If used on PR without issue then PR will b...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~68-~68: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...e Notes generation. > - verbose > - If workflow run in debug regime, 'verbose'...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[uncategorized] ~150-~150: Loose punctuation mark.
Context: ... header. - coderabbit-support-active: Enables fallback support for CodeRabbit...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~197-~197: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...eir combinations. (GitHub documentation do not recommend to mix them.) > > **Best...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[grammar] ~197-~197: The verb ‘recommend’ is used with the gerund form.
Context: ...binations. (GitHub documentation do not recommend to mix them.) > > Best Practice: Select o...

(ADMIT_ENJOY_VB)

🪛 markdownlint-cli2 (0.17.2)
README.md

64-64: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


64-64: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


64-64: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


65-65: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


65-65: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


65-65: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)


66-66: Inconsistent indentation for list items at the same level
Expected: 2; Actual: 3

(MD005, list-indent)


66-66: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


66-66: Multiple spaces after blockquote symbol
null

(MD027, no-multiple-space-blockquote)

🔇 Additional comments (1)
README.md (1)

113-113: Approve version bump in Usage Example
The usage example now references the correct action version (@v0.7.0) that includes PR #144.

@miroslavpojer miroslavpojer merged commit 5d8c769 into master May 19, 2025
7 checks passed
@miroslavpojer miroslavpojer deleted the feature/141-Add-support-for-coderabbit-summary-in-PR-description branch May 19, 2025 09:25
@coderabbitai coderabbitai bot mentioned this pull request May 19, 2025
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.

Add support for coderabbit summary in PR description

3 participants