summaryrefslogtreecommitdiffhomepage
path: root/.github/workflows
diff options
context:
space:
mode:
authorAiden Cline <[email protected]>2026-01-08 11:23:52 -0600
committerAiden Cline <[email protected]>2026-01-08 11:23:52 -0600
commit970796b83280ca82b0545c6a2701ade01b733031 (patch)
tree90e0dee567dc296e426f9ebe9b16734696a666c8 /.github/workflows
parent3c5043497c159585654169aab3c7b791d861090f (diff)
downloadopencode-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.yml62
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);
+ }