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

Commit f942bdb

Browse files
Merge pull request #2680 from splunk/set-heretto-reminder
Adding a workflow action to send a reminder on PRs to update Heretto …
2 parents e4f4925 + dfb96f2 commit f942bdb

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
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+
permissions:
13+
id-token: write
14+
contents: read
15+
actions: read
16+
issues: write
17+
checks: write
18+
pull-requests: write
19+
steps:
20+
- name: Checkout code
21+
uses: actions/checkout@v4
22+
23+
- name: Get Pull Request Info
24+
id: pr_info
25+
uses: actions/github-script@v7
26+
with:
27+
script: |
28+
const { owner, repo, number } = context.issue;
29+
const pr = await github.rest.pulls.get({
30+
owner,
31+
repo,
32+
pull_number: number,
33+
});
34+
35+
const author = pr.data.user.login;
36+
const createdAt = new Date(pr.data.created_at);
37+
const now = new Date();
38+
const diffInDays = Math.floor((now - createdAt) / (1000 * 60 * 60 * 24));
39+
const labels = pr.data.labels.map(label => label.name);
40+
41+
return { author, diffInDays, number, labels };
42+
43+
- name: Check if Reminder Needed
44+
id: check_reminder
45+
uses: actions/github-script@v7
46+
with:
47+
script: |
48+
const { diffInDays, labels } = ${{ steps.pr_info.outputs }};
49+
const reminderLabel = 'reminder sent';
50+
const daysThreshold = 1; // Number of days before sending reminder. Adjust as needed.
51+
52+
if (!labels) { // Check if labels is undefined or null
53+
return { sendReminder: diffInDays >= daysThreshold }; // send reminder if the time threshold is passed, even without labels.
54+
}
55+
if (labels.includes(reminderLabel)) {
56+
return { sendReminder: false };
57+
}
58+
59+
if (diffInDays >= daysThreshold) {
60+
return { sendReminder: true };
61+
} else {
62+
return { sendReminder: false };
63+
}
64+
65+
- name: Send Reminder Comment
66+
if: ${{ steps.check_reminder.outputs.sendReminder == 'true' }}
67+
uses: actions/github-script@v7
68+
with:
69+
script: |
70+
const { owner, repo, number, author } = ${{ steps.pr_info.outputs }};
71+
const message = `@${author}, please make sure that you update the files in Heretto and post the Heretto share link in this PR.`;
72+
await github.rest.issues.createComment({
73+
owner,
74+
repo,
75+
issue_number: number,
76+
body: message,
77+
});
78+
79+
- name: Add Reminder Label
80+
if: ${{ steps.check_reminder.outputs.sendReminder == 'true' }}
81+
uses: actions/github-script@v7
82+
with:
83+
script: |
84+
const { owner, repo, number } = ${{ steps.pr_info.outputs }};
85+
await github.rest.issues.addLabels({
86+
owner,
87+
repo,
88+
issue_number: number,
89+
labels: ['reminder sent'],
90+
});

0 commit comments

Comments
 (0)