Skip to content

feat: draft releases, version verification, and reusable workflows#210

Merged
SoulPancake merged 2 commits into
mainfrom
feat/release-workflow-improvements
May 12, 2026
Merged

feat: draft releases, version verification, and reusable workflows#210
SoulPancake merged 2 commits into
mainfrom
feat/release-workflow-improvements

Conversation

@SoulPancake

@SoulPancake SoulPancake commented May 4, 2026

Copy link
Copy Markdown
Member

Description

What problem is being solved?

How is it being solved?

What changes are made to solve it?

References

Review Checklist

  • I have clicked on "allow edits by maintainers".
  • I have added documentation for new/changed functionality in this PR or in a PR to openfga.dev [Provide a link to any relevant PRs in the references section above]
  • The correct base branch is being used, if not main
  • I have added tests to validate that the change in functionality is working as expected

Summary by CodeRabbit

Release Notes

  • Chores
    • Added automated version verification for tagged releases to ensure consistency across all release artifacts.
    • Streamlined pull request validation workflow using a centralized validation process.
    • Updated release pull request configuration to create drafts by default for improved quality control.

Review Change Stack

Copilot AI review requested due to automatic review settings May 4, 2026 17:21
@SoulPancake
SoulPancake requested a review from a team as a code owner May 4, 2026 17:21
@coderabbitai

coderabbitai Bot commented May 4, 2026

Copy link
Copy Markdown

Walkthrough

This PR updates GitHub Actions workflows and release configuration to strengthen the release process: version verification across tag, manifest, and project file; delegation of PR title validation and release undrafting to external workflows; and enabling draft release pull requests in release-please configuration.

Changes

Release Process Automation

Layer / File(s) Summary
Draft Release Configuration
release-please-config.json
Release-please now creates generated release pull requests as drafts instead of ready-to-merge.
Version Verification Job
.github/workflows/main.yaml
New verify-version job validates consistency between git tag version, .release-please-manifest.json, and .csproj Version property for net8.0, failing the workflow on any mismatch.
Publishing Job Dependencies
.github/workflows/main.yaml
Updated publish job to depend on verify-version before running, ensuring version integrity is confirmed first.
Release Undrafting
.github/workflows/main.yaml
Replaced inline create-release job with undraft-release job that delegates to openfga/sdk-generator/.github/workflows/undraft-release.yml@main, running after publish on matching version tags.

PR Validation Workflow Refactoring

Layer / File(s) Summary
PR Title Validation Reusable Workflow
.github/workflows/pr-title-conventional-commit.yml
Replaced inline validate-pr-title job using ytanikin/pr-conventional-commits action with pr-title-check job calling external reusable workflow openfga/sdk-generator/.github/workflows/pr-title-check.yml@main, retaining pull-request read permissions.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • openfga/dotnet-sdk#193: New verify-version and undraft-release workflow steps directly reference the .release-please-manifest.json and .csproj Version that were introduced/modified by this PR.
  • openfga/dotnet-sdk#191: This PR adds a workflow job verifying the git tag matches the csproj Version, while that PR updated the csproj Version for a release bump — both changes touch the same project version.

Suggested reviewers

  • rhamzeh
🚥 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 summarizes the three main changes: draft releases (release-please-config.json), version verification (verify-version job), and reusable workflows (pr-title-check and undraft-release delegations).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ 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 feat/release-workflow-improvements

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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the repository’s release automation to support draft GitHub releases, adds a tag/manifest/.csproj version consistency check before publishing, and replaces in-repo workflow logic with reusable workflows maintained in openfga/sdk-generator.

Changes:

  • Enable draft releases in release-please configuration.
  • Add a verify-version job on tag builds to ensure the pushed tag matches .release-please-manifest.json and the SDK .csproj version before publishing.
  • Switch PR title validation and release undrafting to reusable workflows from openfga/sdk-generator.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

File Description
release-please-config.json Enables draft release behavior in release-please config.
.github/workflows/pr-title-conventional-commit.yml Replaces local PR title validation action with a reusable workflow.
.github/workflows/main.yaml Adds version verification before publish and replaces local release creation with an undraft reusable workflow.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/main.yaml Outdated
Comment thread .github/workflows/main.yaml Outdated
Comment thread .github/workflows/pr-title-conventional-commit.yml
Comment thread .github/workflows/pr-title-conventional-commit.yml
Comment thread .github/workflows/main.yaml Outdated
…proj parsing

- Remove `needs: [pack]` from verify-version so it runs immediately on
  tag pushes for fast failure
- Add `pack` to publish's needs so it still gates on the artifact
- Replace grep-based XML parsing with `dotnet msbuild -getProperty:Version`
- Add trailing newline to file
@SoulPancake
SoulPancake requested a review from rhamzeh May 11, 2026 18:38

@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.

🧹 Nitpick comments (1)
.github/workflows/main.yaml (1)

279-284: ⚡ Quick win

Consider pinning to a stable commit reference.

The reusable workflow at openfga/sdk-generator/.github/workflows/undraft-release.yml@main exists and is properly configured. However, using @main will always pull the latest version, which can introduce unexpected changes. Consider pinning to a specific commit SHA or release tag (e.g., @b432a8a) for greater stability and predictability.

🤖 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/main.yaml around lines 279 - 284, The workflow reference
uses an ever-moving ref
"openfga/sdk-generator/.github/workflows/undraft-release.yml@main" which can
introduce breaking changes; update the uses value for the undraft-release job to
pin to a specific commit SHA or release tag (for example replace "@main" with a
concrete "@<commit-sha>" or "@vX.Y.Z") so the undraft-release reusable workflow
is stable and repeatable.
🤖 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.

Nitpick comments:
In @.github/workflows/main.yaml:
- Around line 279-284: The workflow reference uses an ever-moving ref
"openfga/sdk-generator/.github/workflows/undraft-release.yml@main" which can
introduce breaking changes; update the uses value for the undraft-release job to
pin to a specific commit SHA or release tag (for example replace "@main" with a
concrete "@<commit-sha>" or "@vX.Y.Z") so the undraft-release reusable workflow
is stable and repeatable.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c721a849-6f7f-4a5a-8e5f-758cce0cf2fa

📥 Commits

Reviewing files that changed from the base of the PR and between 996f018 and c53c9df.

📒 Files selected for processing (3)
  • .github/workflows/main.yaml
  • .github/workflows/pr-title-conventional-commit.yml
  • release-please-config.json

@SoulPancake
SoulPancake added this pull request to the merge queue May 12, 2026
Merged via the queue into main with commit 04b5ad1 May 12, 2026
26 checks passed
@SoulPancake
SoulPancake deleted the feat/release-workflow-improvements branch May 12, 2026 18:44
This was referenced May 13, 2026
@SoulPancake SoulPancake mentioned this pull request May 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants