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