"add Maintainer label" job via on open workflow

This commit is contained in:
Wolfsblvt
2025-03-11 23:43:35 +01:00
parent d6dcededc9
commit 26c4d231a8
3 changed files with 57 additions and 5 deletions

View File

@@ -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'

View File

@@ -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

50
.github/workflows/on-open-handler.yml vendored Normal file
View File

@@ -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.`);
}