diff --git a/.github/workflows/review-score.yml b/.github/workflows/review-score.yml index 262a951..4edace7 100644 --- a/.github/workflows/review-score.yml +++ b/.github/workflows/review-score.yml @@ -1,43 +1,35 @@ name: Review Score Gate -on: +"on": pull_request: types: [opened, reopened, synchronize] pull_request_review: types: [submitted, edited, dismissed] permissions: pull-requests: read - statuses: write - contents: read jobs: - score: + review-score-gate: runs-on: ubuntu-latest steps: - - name: Compute review score - uses: actions/github-script@v7 + - uses: actions/github-script@v7 with: script: | const REQUIRED_SCORE = 1; const TIE_GOES_TO_APPROVE = true; const pr = context.payload.pull_request; - if (!pr) { core.info('no pr'); return; } - const author = pr.user.login; + if (!pr) { core.info('no pr context'); return; } const reviews = await github.paginate(github.rest.pulls.listReviews, { owner: context.repo.owner, repo: context.repo.repo, pull_number: pr.number, per_page: 100 }); const latest = new Map(); for (const r of reviews) { const l = r.user && r.user.login; - if (!l || l === author) continue; + if (!l || l === pr.user.login) continue; if (r.state !== 'APPROVED' && r.state !== 'CHANGES_REQUESTED') continue; latest.set(l, r.state); } let a = 0, b = 0; for (const s of latest.values()) { if (s === 'APPROVED') a++; else b++; } const score = a - b; - let pass = score >= REQUIRED_SCORE; - if (!pass && TIE_GOES_TO_APPROVE && a >= 1 && score === 0) pass = true; - const desc = `score ${score} (${a} approve, ${b} block), need >= ${REQUIRED_SCORE}`; - core.info(desc); - await github.rest.repos.createCommitStatus({ - owner: context.repo.owner, repo: context.repo.repo, sha: pr.head.sha, - state: pass ? 'success' : 'failure', context: 'review-score', description: desc }); - if (!pass) core.setFailed(desc); + let pass = score >= REQUIRED_SCORE || (TIE_GOES_TO_APPROVE && a >= 1 && score === 0); + const msg = `score ${score} (${a} approve, ${b} block), need >= ${REQUIRED_SCORE}`; + core.info(msg); + if (!pass) core.setFailed(msg); diff --git a/README.md b/README.md index 5abb6ec..951a55c 100644 --- a/README.md +++ b/README.md @@ -1 +1,2 @@ -# ruleset-test \ No newline at end of file +# ruleset-test +edit for test