Add action to welcome external contributors with the contributing guidelines

Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
Co-authored-by: Nuno Santos <nunofilipesantos@gmail.com>
This commit is contained in:
Rodrigo Q. Saramago 2022-10-19 09:28:58 -03:00
parent 2cb618a5c3
commit 813a37592d
No known key found for this signature in database
GPG Key ID: 9B36B2525704A359

View File

@ -0,0 +1,66 @@
name: External contributor greeter
on:
pull_request_target:
types:
- opened
- reopened
env:
ORGANIZATION: Ethereum
DRY_RUN: false
jobs:
comment-external-pr:
runs-on: ubuntu-latest
steps:
- name: Get organization members
id: get_members
env:
GH_TOKEN: ${{ secrets.READ_ORG }}
CONTRIBUTOR: ${{ github.event.pull_request.user.login }}
run: |
gh api graphql \
--raw-field organization="$ORGANIZATION" \
--raw-field query='
query($organization: String!, $cursor: String) {
organization(login: $organization) {
membersWithRole(first: 100, after: $cursor) {
pageInfo {
hasNextPage,
endCursor
}
nodes {
login
}
}
}
}' > org_members.json
echo "CONTRIBUTOR_IS_ORG_MEMBER=$(
jq \
--arg contributor $CONTRIBUTOR \
'.data.organization.membersWithRole | any(.nodes[].login; . == $contributor)' \
org_members.json
)" >> $GITHUB_OUTPUT
- name: Comment on external contribution PR
if: ${{ steps.get_members.outputs.CONTRIBUTOR_IS_ORG_MEMBER == 'false' }}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR: ${{ github.event.pull_request.html_url }}
run: |
echo "Commenting in a newly submitted or reopened external PR: $PR"
if [[ $DRY_RUN == 'false' ]]; then
gh pr edit "$PR" --add-label "external contribution :star:"
comment_body=(
"Thank you for your contribution to the Solidity compiler! A team member will follow up shortly."
"\n\n"
"If you haven't read our [contributing guidelines](https://docs.soliditylang.org/en/latest/contributing.html) and our "
"[review checklist](https://github.com/ethereum/solidity/blob/develop/ReviewChecklist.md) before, "
"please do it now, this makes the reviewing process and accepting your contribution smoother."
"\n\n"
"If you have any questions or need our help, feel free to post them in the PR or talk to us directly on the "
"[#solidity-dev](https://matrix.to/#/#ethereum_solidity-dev:gitter.im) channel on Matrix."
)
gh pr comment $PR --body "$(IFS='' ; echo -e "${comment_body[*]}")"
fi