Skip to content

Commit 8d09d78

Browse files
authored
Merge pull request #2 from bcgov/dev
Add delete packages action, modify PR reminder action
2 parents 1022dc6 + 201a624 commit 8d09d78

File tree

3 files changed

+75
-0
lines changed

3 files changed

+75
-0
lines changed

.github/workflows/versioning.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
name: Keep the versions up-to-date
2+
3+
on:
4+
release:
5+
types:
6+
- released
7+
- edited
8+
9+
jobs:
10+
actions-tagger:
11+
runs-on: windows-latest
12+
steps:
13+
- uses: Actions-R-Us/actions-tagger@v2
14+
with:
15+
publish_latest_tag: true

delete-old-packages/action.yaml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: "Delete Old Package Versions"
2+
description: "This action deletes old package versions from the specified package."
3+
4+
inputs:
5+
package-name:
6+
description: "The name of the package to delete old versions from."
7+
required: true
8+
package-type:
9+
description: "The type of the package (e.g., npm)."
10+
required: true
11+
min-versions-to-keep:
12+
description: "The minimum number of versions to keep."
13+
required: true
14+
ignore-versions:
15+
description: "The regular expression pattern to ignore specific versions."
16+
required: true
17+
18+
runs:
19+
using: "composite"
20+
steps:
21+
- name: Delete package version(s)
22+
uses: actions/delete-package-versions@v5
23+
with:
24+
package-name: ${{ inputs.package-name }}
25+
package-type: ${{ inputs.package-type }}
26+
min-versions-to-keep: ${{ inputs.min-versions-to-keep }}
27+
ignore-versions: ${{ inputs.ignore-versions }}

pr-reminder/script.mjs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,28 @@ async function remindReviewers() {
3434
for (const pr of pulls.data) {
3535
console.log(`Processing PR #${pr.number}: ${pr.title}`);
3636

37+
// Skip PRs that already have the 'reminded' label
38+
const labels = await octokit.rest.issues.listLabelsOnIssue({
39+
owner,
40+
repo,
41+
issue_number: pr.number,
42+
});
43+
44+
if (labels.data.some((label) => label.name === "reminded")) {
45+
console.log(`PR #${pr.number} already has 'reminded' label. Skipping.`);
46+
continue;
47+
}
48+
49+
// Check PR age
50+
const prCreatedAt = new Date(pr.created_at);
51+
const now = new Date();
52+
const hoursSinceOpened = Math.abs(now - prCreatedAt) / 36e5;
53+
54+
if (hoursSinceOpened < 48) {
55+
console.log(`PR #${pr.number} is ${hoursSinceOpened.toFixed(1)} hours old. Skipping reminder.`);
56+
continue;
57+
}
58+
3759
// Fetch pending reviewers
3860
const reviewRequests = await octokit.rest.pulls.listRequestedReviewers({
3961
owner,
@@ -58,15 +80,26 @@ async function remindReviewers() {
5880
)}\n\nPS: ${alwaysTagUsers.map(user => `@${user}`).join(", ")}`;
5981

6082
if (!dryRun) {
83+
// Add the comment
6184
await octokit.rest.issues.createComment({
6285
owner,
6386
repo,
6487
issue_number: pr.number,
6588
body: commentBody,
6689
});
6790
console.log(`Added comment to PR #${pr.number}: "${commentBody}"`);
91+
92+
// Add the 'reminded' label
93+
await octokit.rest.issues.addLabels({
94+
owner,
95+
repo,
96+
issue_number: pr.number,
97+
labels: ["reminded"],
98+
});
99+
console.log(`Added 'reminded' label to PR #${pr.number}`);
68100
} else {
69101
console.log(`[DRY RUN] Would add comment to PR #${pr.number}: "${commentBody}"`);
102+
console.log(`[DRY RUN] Would add 'reminded' label to PR #${pr.number}`);
70103
}
71104
} else {
72105
console.log(`No pending reviewers for PR #${pr.number}. Skipping comment.`);

0 commit comments

Comments
 (0)