diff options
| author | Aiden Cline <[email protected]> | 2026-01-08 11:23:52 -0600 |
|---|---|---|
| committer | Aiden Cline <[email protected]> | 2026-01-08 11:23:52 -0600 |
| commit | 970796b83280ca82b0545c6a2701ade01b733031 (patch) | |
| tree | 90e0dee567dc296e426f9ebe9b16734696a666c8 /.github/workflows | |
| parent | 3c5043497c159585654169aab3c7b791d861090f (diff) | |
| download | opencode-970796b83280ca82b0545c6a2701ade01b733031.tar.gz opencode-970796b83280ca82b0545c6a2701ade01b733031.zip | |
docs: add PR title guidelines and workflow to enforce conventional commits
Diffstat (limited to '.github/workflows')
| -rw-r--r-- | .github/workflows/pr-title.yml | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/.github/workflows/pr-title.yml b/.github/workflows/pr-title.yml new file mode 100644 index 000000000..220f34054 --- /dev/null +++ b/.github/workflows/pr-title.yml @@ -0,0 +1,62 @@ +name: PR Title Validation + +on: + pull_request: + types: [opened, edited, synchronize] + +jobs: + validate-title: + if: | + github.event.pull_request.user.login != 'actions-user' && + github.event.pull_request.user.login != 'opencode' && + github.event.pull_request.user.login != 'rekram1-node' && + github.event.pull_request.user.login != 'thdxr' && + github.event.pull_request.user.login != 'kommander' && + github.event.pull_request.user.login != 'jayair' && + github.event.pull_request.user.login != 'fwang' && + github.event.pull_request.user.login != 'adamdotdevin' && + github.event.pull_request.user.login != 'iamdavidhill' && + github.event.pull_request.user.login != 'opencode-agent[bot]' + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - name: Validate PR title + uses: actions/github-script@v7 + with: + script: | + const title = context.payload.pull_request.title; + const validPrefixes = ['feat:', 'fix:', 'docs:', 'chore:', 'refactor:', 'test:']; + const isValid = validPrefixes.some(prefix => title.startsWith(prefix)); + + if (!isValid) { + const body = `👋 Thanks for opening this PR! + + Your PR title \`${title}\` doesn't follow our conventional commit format. + + Please update it to start with one of these prefixes: + - \`feat:\` new feature or functionality + - \`fix:\` bug fix + - \`docs:\` documentation or README changes + - \`chore:\` maintenance tasks, dependency updates, etc. + - \`refactor:\` code refactoring without changing behavior + - \`test:\` adding or updating tests + + **Examples:** + - \`docs: update contributing guidelines\` + - \`fix: resolve crash on startup\` + - \`feat: add dark mode support\` + + See [CONTRIBUTING.md](../blob/dev/CONTRIBUTING.md#pr-titles) for more details.`; + + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.payload.pull_request.number, + body: body + }); + + core.setFailed('PR title does not follow conventional commit format'); + } else { + console.log('PR title is valid:', title); + } |
