From bc1158f1fc920e4dee06a12a8d93a71dd385c9cc Mon Sep 17 00:00:00 2001 From: Ramya Parimi Date: Fri, 1 Oct 2021 16:22:35 -0500 Subject: [PATCH] Update triage automation to check doc team member (#21856) * to check if team members * check for doc team member * remove duplicate check for team members * delete/readd step Co-authored-by: skedwards88 --- .github/workflows/os-ready-for-review.yml | 45 +++++++++++------------ 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/.github/workflows/os-ready-for-review.yml b/.github/workflows/os-ready-for-review.yml index 02cc40ff19..543031d337 100644 --- a/.github/workflows/os-ready-for-review.yml +++ b/.github/workflows/os-ready-for-review.yml @@ -18,31 +18,30 @@ jobs: if: github.event.label.name == 'waiting for review' && github.repository == 'github/docs' runs-on: ubuntu-latest steps: - - name: Exit if not triggered by a docs team member - env: - GITHUB_TOKEN: ${{ secrets.DOCUBOT_READORG_REPO_WORKFLOW_SCOPES }} - run: | - members="$( gh api graphql -f query=' - query { - organization(login: "github") { - team(slug: "docs") { - members { - nodes { - login - } - } - } - } + - name: Check if this run was triggered by a member of the docs team + uses: actions/github-script@2b34a689ec86a68d8ab9478298f91d5401337b7d + id: triggered-by-member + with: + github-token: ${{secrets.DOCUBOT_READORG_REPO_WORKFLOW_SCOPES}} + result-encoding: string + script: | + const triggerer_login = context.payload.sender.login + const teamMembers = await github.request( + `/orgs/github/teams/docs/members?per_page=100` + ) + const logins = teamMembers.data.map(member => member.login) + if (logins.includes(triggerer_login)) { + console.log(`This workflow was triggered by ${triggerer_login} (on the docs team).`) + return 'true' } - ' --jq '.data.organization.team.members.nodes | [(.[].login)]')" + console.log(`This workflow was triggered by ${triggerer_login} (not on the docs team), so no action will be taken.`) + return 'false' - isMember=$(echo ${members[@]} | grep -ow $GITHUB_ACTOR | wc -w) - - if [ $isMember -eq 0 ] - then - echo "$GITHUB_ACTOR is not a docs team member. exiting..." - exit 1 - fi + - name: Exit if not triggered by a docs team member + if: steps.triggered-by-member.outputs.result == 'false' + run: | + echo Aborting. This workflow must be triggered by a member of the docs team. + exit 1 - name: Check out repo content uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f