Skip to content

FEAT: Implementing the Release Notes Generator to the project#164

Open
tmikula-dev wants to merge 3 commits into
masterfrom
feature/158-adapt-rn-generation-workflow
Open

FEAT: Implementing the Release Notes Generator to the project#164
tmikula-dev wants to merge 3 commits into
masterfrom
feature/158-adapt-rn-generation-workflow

Conversation

@tmikula-dev

@tmikula-dev tmikula-dev commented Jun 12, 2026

Copy link
Copy Markdown

Overview

This pull request introduces improvements to the release management process by adding structured templates and automating checks for release notes in pull requests. It also adds a workflow to automate the drafting of releases, including release notes generation and tagging.

Release Notes

  • Implementing RN Generator tool to the project

Related

Closes #158

Summary by CodeRabbit

  • Chores
    • Added a standardized pull request template to capture an overview, release notes (with placeholders), and related issues.
    • Introduced an automated pull request check to ensure release notes are present and not left as placeholder text.
    • Added a draft-release workflow that validates tag inputs, generates structured release notes, creates a new git tag, and publishes a draft release.

@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: beda52a7-d3d4-4d6c-85fb-8905f4647044

📥 Commits

Reviewing files that changed from the base of the PR and between 5518d63 and 73b8aa2.

📒 Files selected for processing (1)
  • .github/workflows/release_draft.yml
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/release_draft.yml

Walkthrough

This PR adds a PR template with a "Release Notes" section, a GitHub Actions workflow that checks PR descriptions for release notes on PR events to master, and a manual "Draft Release" workflow that validates tags, generates release notes, creates a git tag, and publishes a draft release.

Changes

Release Notes and Draft Release Workflows

Layer / File(s) Summary
PR Template for Release Notes
.github/pull_request_template.md
Pull request template with overview and release notes sections (with TBD placeholders) to guide contributors toward consistent release note formatting.
PR Release Notes Validation
.github/workflows/check_pr_release_notes.yml
GitHub Actions workflow that triggers on PR events to master, validates that PR descriptions include a Release Notes section via a pinned action, enforces per-branch concurrency, and supports skip labels and placeholder detection.
Draft Release Workflow
.github/workflows/release_draft.yml
Manual workflow accepting tag-name and optional from-tag-name inputs, validates tag formats, generates release notes using predefined chapter/label ordering, creates git tags and publishes draft releases via GitHub API with contents: write permissions.
sequenceDiagram
    participant Developer
    participant GH_Actions as GitHub Actions
    participant GH_API as GitHub API
    
    Developer->>GH_Actions: Trigger workflow_dispatch with tag-name
    GH_Actions->>GH_Actions: Validate tag format and from-tag-name
    GH_Actions->>GH_Actions: Generate release notes with chapters
    GH_Actions->>GH_API: Create git tag via github-script
    GH_Actions->>GH_API: Create draft release with generated notes
    GH_API-->>Developer: Draft release published
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested reviewers

  • dk1844
  • benedeki
  • Zejnilovic
  • jakipatryk
  • salamonpavel
  • miroslavpojer

Poem

I am a rabbit in a dev's green tree,
I hop through PRs and mark where notes should be,
Templates, checks, and drafts in tow,
I nibble gaps so changelogs grow,
Hooray — release time is good to go! 🐰

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main objective—implementing the release notes generator workflow—aligning with the PR's core changes of adding templates and automation workflows.
Linked Issues check ✅ Passed The PR implements all required coding objectives from issue #158: both workflow files use commit SHAs, release notes validation is configured, PR template is added, and consistency between workflow configurations is maintained.
Out of Scope Changes check ✅ Passed All three files (PR template, PR check workflow, and release draft workflow) are directly within scope of issue #158 objectives. No unrelated changes are present.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/158-adapt-rn-generation-workflow

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

❤️ Share

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

@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown

JaCoCo core module code coverage report - scala 2.13.11

Build Failed

@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown

JaCoCo doobie module code coverage report - scala 2.13.11

Build Failed

@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown

JaCoCo slick module code coverage report - scala 2.13.11

Build Failed

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (2)
.github/pull_request_template.md (1)

1-12: ⚡ Quick win

Document the "no RN" label skip option.

The template should inform contributors that they can use the no RN label to skip the release notes check and exclude the PR from generated notes. Consider adding a comment like:

<!-- Summarize the key changes for release notes. -->
<!-- To skip this check and exclude from release notes, apply the "no RN" label -->
## Release Notes

This aligns with the PR objective to document the label's use and helps contributors understand the skip mechanism configured in both the check and draft workflows.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/pull_request_template.md around lines 1 - 12, Add an inline HTML
comment above the "## Release Notes" header in the PR template that tells
contributors they can apply the "no RN" label to skip the release-notes check
and exclude the PR from generated notes (mention the exact label text: "no RN");
update the existing release notes block to include that comment so CI/checks and
the draft workflow users immediately see the skip mechanism.
.github/workflows/release_draft.yml (1)

115-124: ⚖️ Poor tradeoff

Consider using built-in gh release command.

The static analysis tool suggests that softprops/action-gh-release functionality is already available via the runner's built-in gh CLI. Using the built-in command reduces third-party action dependencies.

♻️ Optional refactor using gh CLI
-      - name: Create draft release
-        uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          name: ${{ github.event.inputs.tag-name }}
-          body: ${{ steps.generate_release_notes.outputs.release-notes }}
-          tag_name: ${{ github.event.inputs.tag-name }}
-          draft: true
-          prerelease: false
+      - name: Create draft release
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+          TAG_NAME: ${{ github.event.inputs.tag-name }}
+          RELEASE_NOTES: ${{ steps.generate_release_notes.outputs.release-notes }}
+        run: |
+          gh release create "$TAG_NAME" \
+            --title "$TAG_NAME" \
+            --notes "$RELEASE_NOTES" \
+            --draft \
+            --repo ${{ github.repository }}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/release_draft.yml around lines 115 - 124, The workflow
step "Create draft release" currently uses the third-party action
softprops/action-gh-release; replace it with a run step that invokes the
built-in gh CLI (gh release create) so you remove the external dependency.
Update the step named "Create draft release" to run a shell command using gh
release create with --title (or name), the tag from
github.event.inputs.tag-name, --notes from
steps.generate_release_notes.outputs.release-notes, --draft and --prerelease as
appropriate, and ensure the GITHUB_TOKEN is provided to the gh CLI via
environment (GITHUB_TOKEN) or gh auth setup before the command.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/release_draft.yml:
- Around line 77-89: The release-drafter chapters currently assign the same
label "documentation" to both the "Refactoring" and "Documentation️" chapters
causing documentation PRs to show in both sections; update the "Refactoring"
chapter's label (the entry with title "Refactoring") to a unique label used for
refactoring PRs in this repo (e.g., "refactor" or the actual refactoring label
name), ensuring it no longer uses label: documentation so PRs are categorized
into a single correct chapter.

---

Nitpick comments:
In @.github/pull_request_template.md:
- Around line 1-12: Add an inline HTML comment above the "## Release Notes"
header in the PR template that tells contributors they can apply the "no RN"
label to skip the release-notes check and exclude the PR from generated notes
(mention the exact label text: "no RN"); update the existing release notes block
to include that comment so CI/checks and the draft workflow users immediately
see the skip mechanism.

In @.github/workflows/release_draft.yml:
- Around line 115-124: The workflow step "Create draft release" currently uses
the third-party action softprops/action-gh-release; replace it with a run step
that invokes the built-in gh CLI (gh release create) so you remove the external
dependency. Update the step named "Create draft release" to run a shell command
using gh release create with --title (or name), the tag from
github.event.inputs.tag-name, --notes from
steps.generate_release_notes.outputs.release-notes, --draft and --prerelease as
appropriate, and ensure the GITHUB_TOKEN is provided to the gh CLI via
environment (GITHUB_TOKEN) or gh auth setup before the command.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: de40f288-6604-43ab-aa14-84b62ce6f4ec

📥 Commits

Reviewing files that changed from the base of the PR and between 5b94bd0 and 17b92e1.

📒 Files selected for processing (4)
  • .github/CODEOWNERS
  • .github/pull_request_template.md
  • .github/workflows/check_pr_release_notes.yml
  • .github/workflows/release_draft.yml

Comment thread .github/workflows/release_draft.yml
@tmikula-dev tmikula-dev added the dependent The item depends on some other open item (Issue or PR) label Jun 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependent The item depends on some other open item (Issue or PR) enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Generate Release Notes Workflow

1 participant