Repository navigation
ci: introduces semantic-release for automatic versioning - #10
Conversation
There was a problem hiding this comment.
🔵 Needs a closer look
These changes add repo-wide release automation (tagging and GitHub Releases) whose behavior depends on external repository settings, token permissions, and third-party action versions that warrant final human verification.
1 open issue
What changed in this PR
This PR introduces automated, conventional-commits–based versioning to the OpenAPI specs repository. It adds a semantic-release configuration and a GitHub Actions workflow that, on every push to main, computes the next version and creates a git tag (v${version}) plus a GitHub Release. A notable customization is an @semantic-release/exec hook that also forces a patch release whenever a root-level spec (*.yaml) changes, even if the commit type wouldn't otherwise trigger one. A second workflow validates that PR titles follow the conventional-commit format, which matters because squash-merge commit messages (used to compute versions) derive from the PR title.
Changes:
- Add
.releaserc.jsondefining the release pipeline (commit-analyzer, exec, release-notes-generator, github) with the conventionalcommits preset and spec-change gating. - Add
release.yamlworkflow that runssemantic-releasevianpxon push tomainwith least-privilege, job-scopedcontents: write. - Add
pr-title-check.yamlworkflow usingamannn/action-semantic-pull-requestto enforce conventional PR titles.
| File | Description |
|---|---|
.releaserc.json |
semantic-release config; gates releases on conventional commits and root *.yaml changes via an exec git-diff hook. |
.github/workflows/release.yaml |
Push-to-main workflow that runs semantic-release to tag versions and publish GitHub Releases. |
.github/workflows/pr-title-check.yaml |
Validates PR titles as conventional commits so squash-merge versioning works correctly. |
Review effort: Balanced

This pull request introduces automated workflows and configuration to enforce semantic commit conventions and automate releases based on those conventions. The main changes are the addition of GitHub Actions for PR title checking and release automation, along with a
.releaserc.jsonconfiguration file to define release rules and changelog formatting.CI/CD Automation:
.github/workflows/pr-title-check.yamlto automatically check that pull request titles follow semantic commit conventions, ensuring consistency and enabling automated versioning..github/workflows/release.yamlto automate releases on every merge tomain, using semantic-release to determine version bumps and generate tags based on conventional commit messages.Release Configuration:
.releaserc.jsonto configure semantic-release, specifying branch, tag format, commit analysis, changelog sections, and special handling for YAML spec changes.