-
Notifications
You must be signed in to change notification settings - Fork 841
48 lines (45 loc) · 2.06 KB
/
community_contribution.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
name: "Community contribution"
on:
pull_request_target:
types: [opened, reopened]
jobs:
community-pr-message:
env:
USER_LOGIN: ${{ github.event.pull_request.user.login }}
IS_ORG_MEMBER: "" # https://github.com/github/vscode-github-actions/issues/47
runs-on: ubuntu-latest
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
permissions:
issues: write
pull-requests: write
steps:
- name: "Check for org membership"
# https://docs.github.com/en/rest/orgs/members?apiVersion=2022-11-28#check-organization-membership-for-a-user
# https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#example-of-writing-an-environment-variable-to-github_env
run: |
DATA=$(
curl -L -i -w "%{http_code}" \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.EUI_COMMUNITY_PR }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/orgs/elastic/members/"$USER_LOGIN"
)
HTTP_CODE=$(echo "$DATA" | awk '/([0-9]{3})$/{print}')
echo "IS_ORG_MEMBER=$HTTP_CODE" >> "$GITHUB_ENV"
- name: "Add comment to community pull requests"
uses: actions/github-script@v6
if: ${{ env.IS_ORG_MEMBER != '204' }}
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: "👋 Since this is a community submitted pull request, a Buildkite build has not been started automatically. Would an Elastic organization member please verify the contents of this pull request and kick off a build manually?",
});
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['community contribution']
});