mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-06-25 13:46:07 +00:00
76 lines
2.1 KiB
YAML
76 lines
2.1 KiB
YAML
name: Signed commits
|
|
|
|
on:
|
|
pull_request_target:
|
|
types:
|
|
- opened
|
|
- reopened
|
|
- synchronize
|
|
- ready_for_review
|
|
|
|
permissions:
|
|
pull-requests: write
|
|
|
|
jobs:
|
|
signed-commits:
|
|
if: github.repository_owner == 'shadcn-ui'
|
|
runs-on: ubuntu-latest
|
|
name: Signed commits
|
|
steps:
|
|
- name: Check PR commits
|
|
uses: actions/github-script@v7
|
|
with:
|
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
script: |
|
|
const body = "Can you sign the commits please? See https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits. Thank you."
|
|
|
|
const { owner, repo } = context.repo
|
|
const pullNumber = context.payload.pull_request.number
|
|
|
|
const commits = await github.paginate(github.rest.pulls.listCommits, {
|
|
owner,
|
|
repo,
|
|
pull_number: pullNumber,
|
|
per_page: 100,
|
|
})
|
|
|
|
const unsignedCommits = commits.filter((commit) => {
|
|
return commit.commit.verification?.reason === "unsigned"
|
|
})
|
|
|
|
const comments = await github.paginate(github.rest.issues.listComments, {
|
|
owner,
|
|
repo,
|
|
issue_number: pullNumber,
|
|
per_page: 100,
|
|
})
|
|
|
|
const existingComments = comments.filter((comment) => {
|
|
return comment.user.type === "Bot" && comment.body.trim() === body
|
|
})
|
|
|
|
if (unsignedCommits.length > 0) {
|
|
core.info(`Found ${unsignedCommits.length} unsigned commits.`)
|
|
|
|
if (existingComments.length === 0) {
|
|
await github.rest.issues.createComment({
|
|
owner,
|
|
repo,
|
|
issue_number: pullNumber,
|
|
body,
|
|
})
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
core.info("All commits are signed.")
|
|
|
|
for (const comment of existingComments) {
|
|
await github.rest.issues.deleteComment({
|
|
owner,
|
|
repo,
|
|
comment_id: comment.id,
|
|
})
|
|
}
|