diff --git a/.github/workflows/aider-after-review.yaml b/.github/workflows/aider-after-review.yaml index 2ba3483a6c..abd6091a31 100644 --- a/.github/workflows/aider-after-review.yaml +++ b/.github/workflows/aider-after-review.yaml @@ -5,9 +5,36 @@ on: types: [submitted] jobs: - check-and-prepare: + check-membership: if: github.event.review.state == 'changes_requested' && contains(github.event.pull_request.title, '[Aider PR]') runs-on: ubicloud-standard-2 + outputs: + is_member: ${{ steps.check-membership.outputs.is_member }} + steps: + - name: Check organization membership + id: check-membership + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_REPOSITORY: ${{ github.repository }} + REVIEWER: ${{ github.event.review.user.login }} + run: | + ORG="windmill-labs" + STATUS=$(curl -s -o /dev/null -w "%{http_code}" \ + -H "Authorization: token $GH_TOKEN" \ + -H "Accept: application/vnd.github+json" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + "https://api.github.com/orgs/$ORG/members/$REVIEWER") + + if [ "$STATUS" -eq 204 ]; then + echo "is_member=true" >> $GITHUB_OUTPUT + else + echo "is_member=false" >> $GITHUB_OUTPUT + fi + + check-and-prepare: + needs: check-membership + if: github.event.review.state == 'changes_requested' && contains(github.event.pull_request.title, '[Aider PR]') && needs.check-membership.outputs.is_member == 'true' + runs-on: ubicloud-standard-2 permissions: contents: write pull-requests: write @@ -58,7 +85,8 @@ jobs: echo "EOF" >> $GITHUB_OUTPUT run-aider: - needs: check-and-prepare + needs: [check-membership, check-and-prepare] + if: github.event.review.state == 'changes_requested' && contains(github.event.pull_request.title, '[Aider PR]') && needs.check-membership.outputs.is_member == 'true' uses: ./.github/workflows/aider-common.yml with: needs_processing: false diff --git a/.github/workflows/aider.yaml b/.github/workflows/aider.yaml index fdfd7b4d39..50d9946094 100644 --- a/.github/workflows/aider.yaml +++ b/.github/workflows/aider.yaml @@ -5,12 +5,39 @@ on: types: [created] jobs: - check-and-prepare: + check-membership: runs-on: ubicloud-standard-2 if: | github.event_name == 'issue_comment' && contains(github.event.comment.body, '/aider') && !contains(github.event.comment.user.login, '[bot]') + outputs: + is_member: ${{ steps.check-membership.outputs.is_member }} + steps: + - name: Check organization membership + id: check-membership + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_REPOSITORY: ${{ github.repository }} + COMMENTER: ${{ github.event.comment.user.login }} + run: | + ORG="windmill-labs" + STATUS=$(curl -s -o /dev/null -w "%{http_code}" \ + -H "Authorization: token $GH_TOKEN" \ + -H "Accept: application/vnd.github+json" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + "https://api.github.com/orgs/$ORG/members/$COMMENTER") + + if [ "$STATUS" -eq 204 ]; then + echo "is_member=true" >> $GITHUB_OUTPUT + else + echo "is_member=false" >> $GITHUB_OUTPUT + fi + + check-and-prepare: + needs: check-membership + runs-on: ubicloud-standard-2 + if: needs.check-membership.outputs.is_member == 'true' permissions: contents: write pull-requests: write @@ -105,7 +132,8 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Make sure gh cli has a token run-aider: - needs: check-and-prepare + needs: [check-membership, check-and-prepare] + if: needs.check-membership.outputs.is_member == 'true' uses: ./.github/workflows/aider-common.yml with: issue_title: ${{ needs.check-and-prepare.outputs.issue_title }} diff --git a/.github/workflows/create-docs.yml b/.github/workflows/create-docs.yml index 6c280ae5f9..209883d24c 100644 --- a/.github/workflows/create-docs.yml +++ b/.github/workflows/create-docs.yml @@ -3,8 +3,34 @@ on: types: [created] jobs: + check-membership: + if: ${{ github.event.issue.pull_request && startsWith(github.event.comment.body, '/docs') && github.event.comment.user.type != 'Bot' }} + runs-on: ubicloud-standard-2 + outputs: + is_member: ${{ steps.check-membership.outputs.is_member }} + steps: + - name: Check organization membership + id: check-membership + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + COMMENTER: ${{ github.event.comment.user.login }} + run: | + ORG="windmill-labs" + STATUS=$(curl -s -o /dev/null -w "%{http_code}" \ + -H "Authorization: token $GH_TOKEN" \ + -H "Accept: application/vnd.github+json" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + "https://api.github.com/orgs/$ORG/members/$COMMENTER") + + if [ "$STATUS" -eq 204 ]; then + echo "is_member=true" >> $GITHUB_OUTPUT + else + echo "is_member=false" >> $GITHUB_OUTPUT + fi + trigger-docs: - if: ${{ github.event.issue.pull_request && startsWith(github.event.comment.body, '/docs') }} + needs: check-membership + if: ${{ github.event.issue.pull_request && startsWith(github.event.comment.body, '/docs') && needs.check-membership.outputs.is_member == 'true' }} uses: windmill-labs/windmilldocs/.github/workflows/create-docs.yml@main with: pr_number: ${{ github.event.issue.number }}