Skip to content
This repository was archived by the owner on Sep 2, 2025. It is now read-only.

Commit ac2c256

Browse files
Adding a workflow action to send a reminder on PRs to update Heretto files.
1 parent e4f4925 commit ac2c256

File tree

1 file changed

+80
-0
lines changed

1 file changed

+80
-0
lines changed
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
name: Pull Request Reminder
2+
3+
on:
4+
schedule:
5+
- cron: '0 9 * * *' # Runs every day at 9:00 AM UTC. Adjust as needed.
6+
pull_request:
7+
types: [opened, synchronize, reopened]
8+
9+
jobs:
10+
reminder:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Checkout code
14+
uses: actions/checkout@v4
15+
16+
- name: Get Pull Request Info
17+
id: pr_info
18+
uses: actions/github-script@v7
19+
with:
20+
script: |
21+
const { owner, repo, number } = context.issue;
22+
const pr = await github.rest.pulls.get({
23+
owner,
24+
repo,
25+
pull_number: number,
26+
});
27+
28+
const author = pr.data.user.login;
29+
const createdAt = new Date(pr.data.created_at);
30+
const now = new Date();
31+
const diffInDays = Math.floor((now - createdAt) / (1000 * 60 * 60 * 24));
32+
const labels = pr.data.labels.map(label => label.name);
33+
34+
return { author, diffInDays, number, labels };
35+
36+
- name: Check if Reminder Needed
37+
id: check_reminder
38+
uses: actions/github-script@v7
39+
with:
40+
script: |
41+
const { diffInDays, labels } = ${{ steps.pr_info.outputs }};
42+
const reminderLabel = 'reminder sent';
43+
const daysThreshold = 1; // Number of days before sending reminder. Adjust as needed.
44+
45+
if (labels.includes(reminderLabel)) {
46+
return { sendReminder: false };
47+
}
48+
49+
if (diffInDays >= daysThreshold) {
50+
return { sendReminder: true };
51+
} else {
52+
return { sendReminder: false };
53+
}
54+
55+
- name: Send Reminder Comment
56+
if: ${{ steps.check_reminder.outputs.sendReminder == 'true' }}
57+
uses: actions/github-script@v7
58+
with:
59+
script: |
60+
const { owner, repo, number, author } = ${{ steps.pr_info.outputs }};
61+
const message = `@${author}, please make sure that you update the files in Heretto and post the Heretto share link in this PR.`;
62+
await github.rest.issues.createComment({
63+
owner,
64+
repo,
65+
issue_number: number,
66+
body: message,
67+
});
68+
69+
- name: Add Reminder Label
70+
if: ${{ steps.check_reminder.outputs.sendReminder == 'true' }}
71+
uses: actions/github-script@v7
72+
with:
73+
script: |
74+
const { owner, repo, number } = ${{ steps.pr_info.outputs }};
75+
await github.rest.issues.addLabels({
76+
owner,
77+
repo,
78+
issue_number: number,
79+
labels: ['reminder sent'],
80+
});

0 commit comments

Comments
 (0)