From d0e64e63d22c77485d022b93fcac922d3fd9ab2c Mon Sep 17 00:00:00 2001 From: hoangdv2429 Date: Tue, 14 May 2024 21:06:36 +0700 Subject: [PATCH 1/3] add stale bot --- .github/workflows/stalebot.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/stalebot.yml diff --git a/.github/workflows/stalebot.yml b/.github/workflows/stalebot.yml new file mode 100644 index 000000000..e9b069c6f --- /dev/null +++ b/.github/workflows/stalebot.yml @@ -0,0 +1,27 @@ +name: "Close stale pull requests" +on: + schedule: + - cron: "0 0 * * *" + +permissions: + contents: read + +jobs: + stale: + permissions: + issues: write # for actions/stale to close stale issues + pull-requests: write # for actions/stale to close stale PRs + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v9 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + stale-pr-message: > + This pull request has been automatically marked as stale because it + has not had any recent activity. It will be closed if no further + activity occurs. Thank you! + days-before-stale: -1 + days-before-close: -1 + days-before-pr-stale: 8 + days-before-pr-close: 3 + exempt-pr-labels: "security, proposal, blocked" From 03e3aac734a4334d859aa7def029aa7b90407df6 Mon Sep 17 00:00:00 2001 From: hoangdv2429 Date: Tue, 14 May 2024 21:35:16 +0700 Subject: [PATCH 2/3] Dym internal PR label --- .github/workflows/label-internal-pr.yml | 28 +++++++++++++++++++++++++ .github/workflows/stalebot.yml | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/label-internal-pr.yml diff --git a/.github/workflows/label-internal-pr.yml b/.github/workflows/label-internal-pr.yml new file mode 100644 index 000000000..4183d4f50 --- /dev/null +++ b/.github/workflows/label-internal-pr.yml @@ -0,0 +1,28 @@ +name: "Label PRs from Dymension internal" +on: + pull_request: + types: [opened, synchronize] + +jobs: + label-prs: + runs-on: ubuntu-latest + steps: + - name: Checkout the repository + uses: actions/checkout@v3 + + - name: Get Pull Request Author Organization + id: pr + run: | + pr_author=$(jq -r .pull_request.user.login "$GITHUB_EVENT_PATH") + org=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/users/$pr_author/orgs" | jq -r '.[].login') + echo "pr_author=${pr_author}" >> $GITHUB_ENV + echo "org=${org}" >> $GITHUB_ENV + + - name: Add Label if Author is from Organization + if: contains(env.org, 'Dymensionxyz') + run: | + curl -s -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + -H "Accept: application/vnd.github.v3+json" \ + https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/labels \ + -d '{"labels":["dym-internal"]}' + diff --git a/.github/workflows/stalebot.yml b/.github/workflows/stalebot.yml index e9b069c6f..17128934b 100644 --- a/.github/workflows/stalebot.yml +++ b/.github/workflows/stalebot.yml @@ -24,4 +24,4 @@ jobs: days-before-close: -1 days-before-pr-stale: 8 days-before-pr-close: 3 - exempt-pr-labels: "security, proposal, blocked" + exempt-pr-labels: "security, proposal, blocked, dym-internal" From 844a0f6038d2b6650bab446272fc33d3f1f84ada Mon Sep 17 00:00:00 2001 From: hoangdv2429 Date: Wed, 15 May 2024 13:36:37 +0700 Subject: [PATCH 3/3] check by org and user --- .github/workflows/label-internal-pr.yml | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/.github/workflows/label-internal-pr.yml b/.github/workflows/label-internal-pr.yml index 4183d4f50..8bbe50a8d 100644 --- a/.github/workflows/label-internal-pr.yml +++ b/.github/workflows/label-internal-pr.yml @@ -10,19 +10,29 @@ jobs: - name: Checkout the repository uses: actions/checkout@v3 - - name: Get Pull Request Author Organization + - name: Get Pull Request Author and Check Membership id: pr run: | pr_author=$(jq -r .pull_request.user.login "$GITHUB_EVENT_PATH") - org=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/users/$pr_author/orgs" | jq -r '.[].login') - echo "pr_author=${pr_author}" >> $GITHUB_ENV - echo "org=${org}" >> $GITHUB_ENV + echo "PR Author: ${pr_author}" + org="dymensionxyz" + membership_response=$(curl -s -L \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + https://api.github.com/orgs/${org}/public_members/${pr_author}) + echo "Membership response: ${membership_response}" + if [ -z "$membership_response" ]; then + is_member=false + else + is_member=true + fi + echo "is_member=${is_member}" >> $GITHUB_ENV - name: Add Label if Author is from Organization - if: contains(env.org, 'Dymensionxyz') + if: env.is_member == 'true' run: | curl -s -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ -H "Accept: application/vnd.github.v3+json" \ https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/labels \ -d '{"labels":["dym-internal"]}' -