From f8e49da5077d29ea037271675edc6268960924bf Mon Sep 17 00:00:00 2001 From: "Dustin J. Mitchell" Date: Wed, 28 Feb 2024 19:40:08 +0000 Subject: [PATCH] Update comments when found --- .github/workflows/course-schedule-comment.yml | 29 +++++++++++++++++-- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/.github/workflows/course-schedule-comment.yml b/.github/workflows/course-schedule-comment.yml index 9d2b1973a710..6059c671ee28 100644 --- a/.github/workflows/course-schedule-comment.yml +++ b/.github/workflows/course-schedule-comment.yml @@ -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 = "\n" + + "# 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("")); + 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,