Skip to content

Commit

Permalink
Update course-schedule PR comments in-place (#1856)
Browse files Browse the repository at this point in the history
Instead of always adding a new comment, just update the existing comment
if one exists.

This fixes #1834.
  • Loading branch information
djmitche authored Feb 29, 2024
1 parent c1e605d commit adff70d
Showing 1 changed file with 26 additions and 3 deletions.
29 changes: 26 additions & 3 deletions .github/workflows/course-schedule-comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,32 @@ jobs:
var pr_number = Number(fs.readFileSync('pr-number'));
var upstream = fs.readFileSync('upstream-schedule').toString();
var schedule = fs.readFileSync('schedule').toString();
if (upstream != schedule) {
schedule = schedule + "# New Course Schedule\n";
schedule = schedule + "This PR changes the course schedule. The new schedule is shown below.";
schedule = "<!-- course-schedule -->\n" +

This comment has been minimized.

Copy link
@errge

errge Mar 3, 2024

Contributor

@djmitche This actually a breaking regression.

The unluckiness comes from the fact, that previously the same if statement of upstream != schedule was evaluated right away, and in the new code, the schedule variable changes before the if is evaluated as an else if later.

This comment has been minimized.

Copy link
@errge

errge Mar 3, 2024

Contributor

Might be a good idea to change all 4 vars of fs, pr_number, upstream and schedule to const instead of var, to prevent future issues like this.

"# Changes to Course Schedule\n" +
"This PR changes the course schedule. The new schedule is shown below.\n\n" +
schedule;
// Look for existing comments
var existing_comment;
for await ({ data: comments } of github.paginate.iterator(github.rest.issues.listComments, {
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pr_number
})) {
existing_comment = comments.find((c) => c.body.includes("<!-- course-schedule -->"));
if (existing_comment) {
break;
}
}
if (existing_comment) {
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: existing_comment.id,
body: schedule,
});
} else if (upstream != schedule) {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
Expand Down

0 comments on commit adff70d

Please sign in to comment.