API token deletion not reflected in cache until page reload #64
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: 'Issue Assignee Check' | |
on: | |
issues: | |
types: ['assigned'] | |
permissions: | |
issues: write | |
jobs: | |
countIssues: | |
if: ${{ github.event.issue.assignee }} && github.event.action == 'assigned' && github.event.sender.type == 'User' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 2 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '18' | |
cache: npm | |
- name: Install Octokit | |
run: npm install @octokit/rest@18 | |
- name: Check Assigned User's Issue Count | |
id: parse-comment | |
uses: actions/github-script@v5 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
script: | | |
const { Octokit } = require("@octokit/rest"); | |
const octokit = new Octokit({ auth: process.env.GITHUB_TOKEN }); | |
const username = context.payload.issue.assignee.login; | |
console.log(`Username Extracted: ${username}`); | |
const { data: issues } = await octokit.issues.listForRepo({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
assignee: username, | |
state: 'open' | |
}); | |
const issueCount = issues.length; | |
console.log(`Issue Count For ${username}: ${issueCount}`); | |
if (issueCount > 3) { | |
let issueCountMessage = `### 🚨 Documenso Police 🚨`; | |
issueCountMessage += `\n@${username} has ${issueCount} open issues assigned already. Consider whether this issue should be assigned to them or left open for another contributor.`; | |
await octokit.request('POST /repos/{owner}/{repo}/issues/{issue_number}/comments', { | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
issue_number: context.issue.number, | |
body: issueCountMessage, | |
headers: { | |
'Authorization': `token ${{ secrets.GITHUB_TOKEN }}`, | |
} | |
}); | |
} |