|
|
|
@ -5,7 +5,7 @@ on:
|
|
|
|
|
- cron: "0 0 * * *" # Run at 00:00 every day
|
|
|
|
|
|
|
|
|
|
permissions:
|
|
|
|
|
issues: write # Need write permission to modify issue assignees
|
|
|
|
|
issues: write
|
|
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
|
reminder_job:
|
|
|
|
@ -19,12 +19,14 @@ jobs:
|
|
|
|
|
let page = 1;
|
|
|
|
|
const perPage = 100;
|
|
|
|
|
|
|
|
|
|
const reminderSignature = "This issue has been inactive for more than 14 days";
|
|
|
|
|
|
|
|
|
|
while (true) {
|
|
|
|
|
const { data: issues } = await github.rest.issues.listForRepo({
|
|
|
|
|
owner: context.repo.owner,
|
|
|
|
|
repo: context.repo.repo,
|
|
|
|
|
state: 'open',
|
|
|
|
|
assignee: '*', // Filter assigned issues
|
|
|
|
|
assignee: '*',
|
|
|
|
|
per_page: perPage,
|
|
|
|
|
page: page,
|
|
|
|
|
});
|
|
|
|
@ -53,6 +55,19 @@ jobs:
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if (daysInactive >= daysBeforeReminder && !hasLinkedPR) {
|
|
|
|
|
// get issue comments
|
|
|
|
|
const { data: comments } = await github.rest.issues.listComments({
|
|
|
|
|
owner: context.repo.owner,
|
|
|
|
|
repo: context.repo.repo,
|
|
|
|
|
issue_number: issue.number,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// check if reminder has been sent
|
|
|
|
|
const hasReminder = comments.some(comment =>
|
|
|
|
|
comment.body.includes(reminderSignature)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if (!hasReminder) {
|
|
|
|
|
const assigneesMentions = issue.assignees
|
|
|
|
|
.map(user => `@${user.login}`)
|
|
|
|
|
.join(' ');
|
|
|
|
@ -65,6 +80,7 @@ jobs:
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
page += 1;
|
|
|
|
|
}
|