Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 0 additions & 11 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,6 @@ jobs:
fetch-depth: 0
- uses: editorconfig-checker/action-editorconfig-checker@v2
- run: editorconfig-checker
commitlint:
name: Lint commits for semantic-release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: actions/setup-node@v6
with:
node-version: "20"
- run: npx commitlint --from=${{ github.event.pull_request.base.sha }} --to=${{ github.sha }} --verbose
security:
name: Security validation
runs-on: ubuntu-latest
Expand Down
63 changes: 63 additions & 0 deletions .github/workflows/pr_title.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: PR Title Check
Copy link
Member Author

Choose a reason for hiding this comment

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


on:
pull_request_target:
types: [opened, edited, synchronize, reopened]
jobs:
commitlint:
name: PR title / description conforms to semantic-release
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v6
with:
node-version: "20"
- run: npm install @commitlint/config-conventional
- run: >
echo 'module.exports = {
// Workaround for https://github.com/dependabot/dependabot-core/issues/5923
"ignores": [(message) => /^Bumps \[.+]\(.+\) from .+ to .+\.$/m.test(message)],
"rules": {
"body-max-line-length": [0, "always", Infinity],
"footer-max-line-length": [0, "always", Infinity],
"body-leading-blank": [0, "always"]
}
}' > .commitlintrc.js
- run: npx commitlint --extends @commitlint/config-conventional --verbose <<< $COMMIT_MSG
env:
COMMIT_MSG: >
${{ github.event.pull_request.title }}

${{ github.event.pull_request.body }}
- if: failure()
uses: actions/github-script@v8
with:
script: |
const message = `**ACTION NEEDED**

Substrait follows the [Conventional Commits
specification](https://www.conventionalcommits.org/en/v1.0.0/) for
release automation.

The PR title and description are used as the merge commit message.\
Please update your PR title and description to match the specification.
`
// Get list of current comments
const comments = await github.paginate(github.rest.issues.listComments, {
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number
});
// Check if this job already commented
for (const comment of comments) {
if (comment.body === message) {
return // Already commented
}
}
// Post the comment about Conventional Commits
github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: message
})
core.setFailed(message)
Copy link
Member

Choose a reason for hiding this comment

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

I wonder if we could make this action simpler by not commenting on the PR? And instead just have the CI/CD check fail? I'm not so particular, this just seems simpler and easier to maintain that way 🤷

Copy link
Member Author

Choose a reason for hiding this comment

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

I'm going to leave the comment for now, as it includes links to the conventional commit standard, which helps users understand what the requirements are explicitly.