From 229324bc4e78c9d735bc288d9cc3e7a7e71868f6 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 25 Jul 2024 12:55:07 -0700 Subject: [PATCH 1/2] Autoclose Workflow --- .github/workflows/autoclose.yml | 62 +++++++++++++++++++++++++++++++++ 1 file changed, 62 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 00000000..debdc375 --- /dev/null +++ b/.github/workflows/autoclose.yml @@ -0,0 +1,62 @@ +name: Auto-close External Pull Requests + +on: + pull_request_target: + types: [opened, reopened] + +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 9d5dfb17c85cb9b5c566d8e1d5c706436edb8341 Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 29 Jul 2024 09:00:37 -0700 Subject: [PATCH 2/2] 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 debdc375..3e2b3cbc 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 }}