name: Labeler on: issues: types: [opened] pull_request_target: types: [opened] jobs: label-priority: runs-on: ubuntu-latest permissions: issues: write pull-requests: write steps: - name: Label New Issue or PR uses: actions/github-script@v7 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | let label = ''; let username = ''; let issueOrPrNumber = 0; if (context.eventName === 'issues') { username = context.payload.issue.user.login; issueOrPrNumber = context.payload.issue.number; } else if (context.eventName === 'pull_request_target') { username = context.payload.pull_request.user.login; issueOrPrNumber = context.payload.pull_request.number; } // Check if an Adafruit member try { const adafruitResponse = await github.rest.orgs.checkMembershipForUser({ org: 'adafruit', username: username }); if (adafruitResponse.status === 204) { console.log('Adafruit Member'); label = 'Prio Urgent'; } } catch (error) { console.log('Not an Adafruit member'); } // Check if a contributor if (label == '') { try { const collaboratorResponse = await github.rest.repos.checkCollaborator({ owner: context.repo.owner, repo: context.repo.repo, username: username }); if (collaboratorResponse.status === 204) { console.log('Contributor'); label = 'Prio Higher'; } } catch (error) { console.log('Not a contributor'); } } if (label !== '') { await github.rest.issues.addLabels({ owner: context.repo.owner, repo: context.repo.repo, issue_number: issueOrPrNumber, labels: [label] }); }