-
Notifications
You must be signed in to change notification settings - Fork 754
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
added script to require a review post push #3431
Changes from 3 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -21,6 +21,38 @@ jobs: | |
- name: Skip merge queue | ||
if: ${{ contains(github.ref, 'gh-readonly-queue') }} | ||
run: exit 0 | ||
- name: Get comments | ||
id: comments | ||
run: echo "bodies=$(gh pr view ${{ github.event.number }} --repo ${{ github.repository }} --json comments --jq '[.comments[].body]')" >> "$GITHUB_OUTPUT" | ||
env: | ||
GH_TOKEN: ${{ github.token }} | ||
- name: Fail when author pushes new code | ||
# Require new reviews when the author is pushing and he is not a member | ||
if: | | ||
github.event_name == 'pull_request_target' && | ||
github.event.action == 'synchronize' && | ||
github.event.sender.login == github.event.pull_request.user.login && | ||
github.event.pull_request.author_association != 'MEMBER' | ||
run: | | ||
# We get the list of reviewers who approved the PR | ||
REVIEWERS=$(gh api repos/${{ github.repository }}/pulls/${{ github.event.number }}/reviews \ | ||
--jq '{reviewers: [.[] | select(.state == "APPROVED") | .user.login]}') | ||
|
||
# We request them to review again | ||
echo $REVIEWERS | gh api --method POST repos/${{ github.repository }}/pulls/${{ github.event.number }}/requested_reviewers --input - | ||
|
||
echo "::error::Project needs to be reviewed again" | ||
exit 1 | ||
env: | ||
GH_TOKEN: ${{ github.token }} | ||
- name: Comment requirements | ||
# If the previous step failed and github-actions hasn't commented yet we comment instructions | ||
if: failure() && !contains(fromJson(steps.comments.outputs.bodies), 'Review required!') | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "Review required!" is not really such a generic sentence that could not come from someone else :P Please either search for the full comment or filter by the bot as author? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good call, I applied the whole comment as the text to search for. |
||
run: | | ||
gh pr comment ${{ github.event.number }} --repo ${{ github.repository }} --body "Review required! Latest push from author must always be reviewed" | ||
env: | ||
GH_TOKEN: ${{ github.token }} | ||
COMMENTS: ${{ steps.comments.outputs.users }} | ||
- name: Get PR number | ||
env: | ||
PR_NUMBER: ${{ github.event.pull_request.number }} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Interesting but some of the members (like here @seadanda) are recognized as
CONTRIBUTOR
, not a MEMBER#4099 -> https://github.com/paritytech/polkadot-sdk/actions/runs/8692055614/job/23835753129
seems like it should be github.event.pull_request.author_association != 'CONTRIBUTOR' && github.event.pull_request.author_association != 'MEMBER' per https://michaelheap.com/github-actions-check-permission/ & https://stackoverflow.com/questions/63188674/github-actions-detect-author-association
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Bullrich #4137