Skip to content

11 ноября 2024 г. B Tone, 21:31: Завершить чат #436

11 ноября 2024 г. B Tone, 21:31: Завершить чат

11 ноября 2024 г. B Tone, 21:31: Завершить чат #436

Workflow file for this run

name: Check for non-GitHub Bot PRs
on:
issue_comment:
types: [created]
jobs:
checks:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v7
id: comment
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: return context.payload.issue.pull_request && context.payload.comment.body === '/check'
- uses: actions/checkout@v4
if: steps.comment.outputs.result == 'true'
- name: Checkout Git Branch
if: steps.comment.outputs.result == 'true'
run: |
git fetch origin +refs/pull/${{ github.event.issue.number }}/merge
git checkout FETCH_HEAD
- name: Comment for non-GitHub Bot PRs
id: non-bot-check
if: steps.comment.outputs.result == 'true'
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const { data: { merge_commit_sha, user: { login }} } = await github.rest.pulls.get({
pull_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo
});
console.log(`PR created by ${login}`);
if (login !== 'github-actions[bot]') {
const { data: { files }} = await github.rest.repos.getCommit({
ref: merge_commit_sha,
owner: context.repo.owner,
repo: context.repo.repo,
});
const protectedFiles = files.filter(({ filename }) => /^spec\//.test(filename))
if (protectedFiles && protectedFiles.length) {
await github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: 'Thank you for contribution!\nSeems like you trying to change specification not in a right place :thinking:\nThis repository contains code for website [semver.org](https://semver.org) with spec translations. If you are looking for direct changes to SemVer, please use [semver/semver](https://github.com/semver/semver) repository.\n\nPlease close this PR and create a new one to the right repository. If you have any questions, feel free to ping someone from @semver/maintainers'
});
const comments = protectedFiles.map(({ filename }) => ({
"path": filename,
"position": 1,
"body": "This file shouldn't be changed in this repo"
}))
await github.rest.pulls.createReview({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number,
event: 'REQUEST_CHANGES',
comments
})
} else {
await github.rest.pulls.createReview({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number,
event: 'APPROVE'
})
}
}