From 26c4d231a8c6310fd7afd72bbc11d475cd72c722 Mon Sep 17 00:00:00 2001 From: Wolfsblvt Date: Tue, 11 Mar 2025 23:43:35 +0100 Subject: [PATCH] "add Maintainer label" job via on open workflow --- ...es-close-stale.yml => job-close-stale.yml} | 7 ++- ...close-handler.yml => on-close-handler.yml} | 5 +- .github/workflows/on-open-handler.yml | 50 +++++++++++++++++++ 3 files changed, 57 insertions(+), 5 deletions(-) rename .github/workflows/{issues-close-stale.yml => job-close-stale.yml} (94%) rename .github/workflows/{issues-close-handler.yml => on-close-handler.yml} (94%) create mode 100644 .github/workflows/on-open-handler.yml diff --git a/.github/workflows/issues-close-stale.yml b/.github/workflows/job-close-stale.yml similarity index 94% rename from .github/workflows/issues-close-stale.yml rename to .github/workflows/job-close-stale.yml index 0409760ab..fa9c83cf6 100644 --- a/.github/workflows/issues-close-stale.yml +++ b/.github/workflows/job-close-stale.yml @@ -1,4 +1,4 @@ -name: 🎯 Close Stale Issues +name: 🎯 Close Stale Issues/PRs Job on: workflow_dispatch: @@ -7,12 +7,12 @@ on: jobs: close-stale: - name: Close Stale Issues + name: Close Stale Issues/PRs Job runs-on: ubuntu-latest steps: # Comment on, then close issues that haven't been updated for ages - - name: Mark Issues without Activity + - name: Mark Issues/PRs without Activity # Close Stale Issues and PRs # https://github.com/marketplace/actions/close-stale-issues uses: actions/stale@v9 @@ -61,4 +61,3 @@ jobs: stale-issue-label: 'πŸ›‘ No Response' close-issue-label: 'πŸ•ΈοΈ Inactive' exempt-issue-labels: 'πŸ“Œ Keep Open' - exempt-pr-labels: 'πŸ“Œ Keep Open' diff --git a/.github/workflows/issues-close-handler.yml b/.github/workflows/on-close-handler.yml similarity index 94% rename from .github/workflows/issues-close-handler.yml rename to .github/workflows/on-close-handler.yml index 04335582c..cc0cd3292 100644 --- a/.github/workflows/issues-close-handler.yml +++ b/.github/workflows/on-close-handler.yml @@ -1,13 +1,16 @@ -name: 🎯 Issues Close Handler +name: 🎯 Issues/PRs On Close Handler + on: issues: types: [closed] pull_request_target: types: [closed] + jobs: remove-labels: name: Remove Pending Labels on Close runs-on: ubuntu-latest + steps: - name: Remove Pending Labels on Close # πŸ€– Issues Helper diff --git a/.github/workflows/on-open-handler.yml b/.github/workflows/on-open-handler.yml new file mode 100644 index 000000000..33327fbca --- /dev/null +++ b/.github/workflows/on-open-handler.yml @@ -0,0 +1,50 @@ +name: 🎯 Issues/PRs Open Handler + +on: + issues: + types: [opened] + pull_request_target: + types: [opened] + +jobs: + label-maintainer: + name: Label if Author is a Repo Maintainer + runs-on: ubuntu-latest + + steps: + - name: Label if Author is a Repo Maintainer + # GitHub Script + # https://github.com/marketplace/actions/github-script + uses: actions/github-script@v6 + with: + script: | + // Get basic info + const { owner, repo } = context.repo; + const payload = context.payload; + // Determine if it's an issue or a pull request + const eventData = payload.issue || payload.pull_request; + const username = eventData.user.login; + const issue_number = eventData.number; + + // Get the collaborator permission level for the user + const { data: permissionData } = await github.repos.getCollaboratorPermissionLevel({ + owner, + repo, + username, + }); + + const permission = permissionData.permission; + console.log(`User ${username} has permission level: ${permission}`); + + // Check if user is an admin or has maintain permissions + if (['admin', 'maintain'].includes(permission)) { + console.log(`Adding "Maintainer" label to issue/PR #${issue_number}`); + await github.issues.addLabels({ + owner, + repo, + issue_number, + labels: ['Maintainer'], + }); + } else { + console.log(`User ${username} is not a repo maintainer.`); + }