From ccea2a719c952cc542604ff7a6429159ff8ed3f6 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 25 Jul 2024 12:46:24 -0700 Subject: [PATCH 1/3] Autoclose Workflow --- .github/workflows/autoclose.yml | 63 +++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .github/workflows/autoclose.yml diff --git a/.github/workflows/autoclose.yml b/.github/workflows/autoclose.yml new file mode 100644 index 0000000..62924ee --- /dev/null +++ b/.github/workflows/autoclose.yml @@ -0,0 +1,63 @@ +name: Auto-close External Pull Requests + +on: + pull_request_target: + types: [opened, reopened] + workflow_dispatch: + +jobs: + auto_close: + runs-on: ubuntu-latest + steps: + - name: Check if user is organization member + id: check-membership + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GH_AUTO_CLOSE_PR_TOKEN }} + script: | + const org = 'Appwrite'; + let isMember = 'non-member'; + try { + await github.rest.orgs.checkMembershipForUser({ + org: org, + username: context.payload.pull_request.user.login + }); + console.log('PR author is a core member. Keeping PR open.'); + isMember = 'member'; + } catch (error) { + console.log('PR author is not a core member.'); + } + return isMember; + result-encoding: string + + - name: Set member output + id: set-output + run: echo "result=${{ steps.check-membership.outputs.result }}" >> $GITHUB_ENV + + - name: Comment on PR + if: env.result == 'non-member' + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + await github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: 'This library is auto-generated by the Appwrite [SDK Generator](https://github.com/appwrite/sdk-generator), and does not accept pull requests directly. To learn more about how you can help us improve this SDK, please check the [contributing guide](https://github.com/appwrite/sdk-generator/blob/master/CONTRIBUTING.md) before submitting a pull request.' + }); + console.log('Comment added to PR.'); + + - name: Close PR + if: env.result == 'non-member' + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + await github.rest.pulls.update({ + pull_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + state: 'closed' + }); + console.log('PR closed.'); From f2cdd737ad70bf37facd0db3c0114d7d114222c5 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 25 Jul 2024 12:49:50 -0700 Subject: [PATCH 2/3] Update autoclose.yml Removing workflow dispatch --- .github/workflows/autoclose.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/autoclose.yml b/.github/workflows/autoclose.yml index 62924ee..debdc37 100644 --- a/.github/workflows/autoclose.yml +++ b/.github/workflows/autoclose.yml @@ -3,7 +3,6 @@ name: Auto-close External Pull Requests on: pull_request_target: types: [opened, reopened] - workflow_dispatch: jobs: auto_close: From 6c13ec2dc95da2390734b084198aa4561bca9b72 Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 29 Jul 2024 08:59:01 -0700 Subject: [PATCH 3/3] Update autoclose.yml --- .github/workflows/autoclose.yml | 57 ++------------------------------- 1 file changed, 3 insertions(+), 54 deletions(-) diff --git a/.github/workflows/autoclose.yml b/.github/workflows/autoclose.yml index debdc37..3e2b3cb 100644 --- a/.github/workflows/autoclose.yml +++ b/.github/workflows/autoclose.yml @@ -6,57 +6,6 @@ on: jobs: auto_close: - runs-on: ubuntu-latest - steps: - - name: Check if user is organization member - id: check-membership - uses: actions/github-script@v7 - with: - github-token: ${{ secrets.GH_AUTO_CLOSE_PR_TOKEN }} - script: | - const org = 'Appwrite'; - let isMember = 'non-member'; - try { - await github.rest.orgs.checkMembershipForUser({ - org: org, - username: context.payload.pull_request.user.login - }); - console.log('PR author is a core member. Keeping PR open.'); - isMember = 'member'; - } catch (error) { - console.log('PR author is not a core member.'); - } - return isMember; - result-encoding: string - - - name: Set member output - id: set-output - run: echo "result=${{ steps.check-membership.outputs.result }}" >> $GITHUB_ENV - - - name: Comment on PR - if: env.result == 'non-member' - uses: actions/github-script@v7 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - await github.rest.issues.createComment({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - body: 'This library is auto-generated by the Appwrite [SDK Generator](https://github.com/appwrite/sdk-generator), and does not accept pull requests directly. To learn more about how you can help us improve this SDK, please check the [contributing guide](https://github.com/appwrite/sdk-generator/blob/master/CONTRIBUTING.md) before submitting a pull request.' - }); - console.log('Comment added to PR.'); - - - name: Close PR - if: env.result == 'non-member' - uses: actions/github-script@v7 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - await github.rest.pulls.update({ - pull_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - state: 'closed' - }); - console.log('PR closed.'); + uses: appwrite/.github/.github/workflows/autoclose.yml@main + secrets: + GH_AUTO_CLOSE_PR_TOKEN: ${{ secrets.GH_AUTO_CLOSE_PR_TOKEN }}