Feature/141 add support for coderabbit summary in pr description#144
Conversation
- Added support for coderabbit Summary as a source for Release Notes.
|
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 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. 📒 Files selected for processing (1)
Summary by CodeRabbit
Summary by CodeRabbit
WalkthroughThe 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
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
Assessment against linked issues
Suggested reviewers
Poem
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed 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)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
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 }} |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
Actionable comments posted: 4
🔭 Outside diff range comments (2)
release_notes_generator/action_inputs.py (1)
1-414:⚠️ Potential issueFix 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 issueFix 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.AnyStrimported but unusedRemove unused import:
typing.AnyStr(F401)
379-382: Use
return any(lbl in labels for lbl in self.labels)instead offorloopReplace 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 offorloopReplace 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 offorloopReplace 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
AnyStrimport 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.AnyStrimported but unusedRemove 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
📒 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_patternparameter from theget_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_notesimproves the code by:
- Removing the external parameter dependency
- Adding support for dual extraction modes
- 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_defaultmethod cleanly extracts the logic that was previously inline, improving readability and maintainability.
| 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 }} |
There was a problem hiding this comment.
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.
| 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.
There was a problem hiding this comment.
@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'] |
There was a problem hiding this comment.
💡 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.ymlLength 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.
| 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.
There was a problem hiding this comment.
@miroslavpojer Thanks for fixing the parameter name inconsistency. This will help users avoid confusion when configuring the action.
(_/)
(•ᴗ•)
/ >🥕
| 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 "") | ||
|
|
There was a problem hiding this comment.
🛠️ 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.
There was a problem hiding this comment.
@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.
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (5)
release_notes_generator/model/record.py (2)
24-24: Remove unused import.The
AnyStrtype from thetypingmodule 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.AnyStrimported but unusedRemove 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.
-``` +```markdownAlso 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
📒 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 theget_rls_notesmethod.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_defaultmethod 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_notesproperty now callsget_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.
There was a problem hiding this comment.
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 tocoderabbit-summary-ignore-typesand 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
📒 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)
.github/workflows/release_draft.yml
Outdated
| - { 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' ] |
There was a problem hiding this comment.
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.
| 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.
.github/workflows/release_draft.yml
Outdated
| coderabbit-support-active: 'true' | ||
| coderabbit-release-notes-title: 'Summary by CodeRabbit' | ||
| coderabbit-summary-ignore-types: [ 'Documentation', 'Tests', 'Chores', 'Bug Fixes', 'Refactor' ] |
There was a problem hiding this comment.
💡 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.ymlLength 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.
There was a problem hiding this comment.
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-groupsmixes spacing (Documentation,Testsvs.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
📒 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 howcoderabbit-support-activeenables 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)
There was a problem hiding this comment.
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
📒 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)
There was a problem hiding this comment.
Actionable comments posted: 0
♻️ Duplicate comments (1)
README.md (1)
43-61: Ensure Inputs Table Aligns withaction.ymlDefinitions
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 inaction.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: trueinstead of'true') to maintain consistency with other boolean examples (verbose: false).
143-151: Clarify fallback behavior for CodeRabbit summaries
The description forcoderabbit-support-activeshould explicitly state that the action will only look for thecoderabbit-release-notes-titlesection if no section matches the defaultrelease-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 thecoderabbit-release-notes-titlecheck 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
📒 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.
Summary by CodeRabbit
Closes #141