"add Maintainer label" job via on open workflow

26c4d231a8c6310fd7afd72bbc11d475cd72c722

Wolfsblvt <wolfsblvt@gmail.com>

3 files changed, +57 -5Ignore whitespace
.github/workflows/issues-close-stale.yml β†’ .github/workflows/job-close-stale.yml+3 -4
@@ -1,4 +1,4 @@
1name: 🎯 Close Stale Issues1name: 🎯 Close Stale Issues/PRs Job
22
3on:3on:
4 workflow_dispatch:4 workflow_dispatch:
@@ -7,12 +7,12 @@ on:
77
8jobs:8jobs:
9 close-stale:9 close-stale:
10 name: Close Stale Issues10 name: Close Stale Issues/PRs Job
11 runs-on: ubuntu-latest11 runs-on: ubuntu-latest
1212
13 steps:13 steps:
14 # Comment on, then close issues that haven't been updated for ages14 # Comment on, then close issues that haven't been updated for ages
15 - name: Mark Issues without Activity15 - name: Mark Issues/PRs without Activity
16 # Close Stale Issues and PRs16 # Close Stale Issues and PRs
17 # https://github.com/marketplace/actions/close-stale-issues17 # https://github.com/marketplace/actions/close-stale-issues
18 uses: actions/stale@v918 uses: actions/stale@v9
@@ -61,4 +61,3 @@ jobs:
61 stale-issue-label: 'πŸ›‘ No Response'61 stale-issue-label: 'πŸ›‘ No Response'
62 close-issue-label: 'πŸ•ΈοΈ Inactive'62 close-issue-label: 'πŸ•ΈοΈ Inactive'
63 exempt-issue-labels: 'πŸ“Œ Keep Open'63 exempt-issue-labels: 'πŸ“Œ Keep Open'
64 exempt-pr-labels: 'πŸ“Œ Keep Open'
.github/workflows/issues-close-handler.yml β†’ .github/workflows/on-close-handler.yml+4 -1
@@ -1,13 +1,16 @@
1name: 🎯 Issues Close Handler1name: 🎯 Issues/PRs On Close Handler
2
2on:3on:
3 issues:4 issues:
4 types: [closed]5 types: [closed]
5 pull_request_target:6 pull_request_target:
6 types: [closed]7 types: [closed]
8
7jobs:9jobs:
8 remove-labels:10 remove-labels:
9 name: Remove Pending Labels on Close11 name: Remove Pending Labels on Close
10 runs-on: ubuntu-latest12 runs-on: ubuntu-latest
13
11 steps:14 steps:
12 - name: Remove Pending Labels on Close15 - name: Remove Pending Labels on Close
13 # πŸ€– Issues Helper16 # πŸ€– Issues Helper
.github/workflows/on-open-handler.yml+50 -0
@@ -0,0 +1,50 @@
1name: 🎯 Issues/PRs Open Handler
2
3on:
4 issues:
5 types: [opened]
6 pull_request_target:
7 types: [opened]
8
9jobs:
10 label-maintainer:
11 name: Label if Author is a Repo Maintainer
12 runs-on: ubuntu-latest
13
14 steps:
15 - name: Label if Author is a Repo Maintainer
16 # GitHub Script
17 # https://github.com/marketplace/actions/github-script
18 uses: actions/github-script@v6
19 with:
20 script: |
21 // Get basic info
22 const { owner, repo } = context.repo;
23 const payload = context.payload;
24 // Determine if it's an issue or a pull request
25 const eventData = payload.issue || payload.pull_request;
26 const username = eventData.user.login;
27 const issue_number = eventData.number;
28
29 // Get the collaborator permission level for the user
30 const { data: permissionData } = await github.repos.getCollaboratorPermissionLevel({
31 owner,
32 repo,
33 username,
34 });
35
36 const permission = permissionData.permission;
37 console.log(`User ${username} has permission level: ${permission}`);
38
39 // Check if user is an admin or has maintain permissions
40 if (['admin', 'maintain'].includes(permission)) {
41 console.log(`Adding "Maintainer" label to issue/PR #${issue_number}`);
42 await github.issues.addLabels({
43 owner,
44 repo,
45 issue_number,
46 labels: ['Maintainer'],
47 });
48 } else {
49 console.log(`User ${username} is not a repo maintainer.`);
50 }