Update close-old-issues.yaml

This commit is contained in:
Chris Titus 2024-02-19 21:43:49 -06:00
parent e745d798b1
commit 31c6622926

View File

@ -7,6 +7,8 @@ on:
jobs: jobs:
close-issues: close-issues:
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions:
issues: write # Ensure necessary permissions for issues
steps: steps:
- name: Close inactive issues - name: Close inactive issues
@ -23,30 +25,41 @@ jobs:
const inactivityPeriod = new Date(); const inactivityPeriod = new Date();
inactivityPeriod.setDate(inactivityPeriod.getDate() - 14); inactivityPeriod.setDate(inactivityPeriod.getDate() - 14);
// Get all open issues try {
const { data: issues } = await octokit.rest.issues.listForRepo({ // Get all open issues with pagination
owner, for await (const response of octokit.paginate.iterator(octokit.rest.issues.listForRepo, {
repo, owner,
state: 'open', repo,
}); state: 'open',
})) {
const issues = response.data;
// Close issues inactive for more than the inactivity period // Close issues inactive for more than the inactivity period
for (const issue of issues) { for (const issue of issues) {
const lastCommentDate = issue.updated_at; const lastCommentDate = issue.updated_at;
if (new Date(lastCommentDate) < inactivityPeriod) { if (new Date(lastCommentDate) < inactivityPeriod) {
// Close the issue and add a comment try {
await octokit.rest.issues.update({ // Close the issue
owner, await octokit.rest.issues.update({
repo, owner,
issue_number: issue.number, repo,
state: 'closed', issue_number: issue.number,
}); state: 'closed',
});
await octokit.rest.issues.createComment({ // Add a comment
owner, await octokit.rest.issues.createComment({
repo, owner,
issue_number: issue.number, repo,
body: 'Closed due to inactivity', issue_number: issue.number,
}); body: 'Closed due to inactivity',
});
} catch (error) {
console.error(`Error updating or commenting on issue #${issue.number}: ${error}`);
}
}
}
} }
} catch (error) {
console.error(`Error fetching issues: ${error}`);
} }