From 2f6e5d7fcd445bb247b44b319c98dab23ff07fbe Mon Sep 17 00:00:00 2001
From: Ryan Laurie <30528226+iethree@users.noreply.github.com>
Date: Sun, 23 Jun 2024 23:28:46 -0600
Subject: [PATCH] Update Milestone Setter (#44521)

---
 .github/workflows/check-milestone.yml | 4 ++--
 release/package.json                  | 1 +
 release/src/milestones.ts             | 9 +++++++--
 release/yarn.lock                     | 5 +++++
 4 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/check-milestone.yml b/.github/workflows/check-milestone.yml
index bd9e8ab7cbd..93a5e37bf9b 100644
--- a/.github/workflows/check-milestone.yml
+++ b/.github/workflows/check-milestone.yml
@@ -29,8 +29,8 @@ jobs:
             const owner = context.repo.owner;
             const repo = context.repo.repo;
 
-            const branchName = '${{ github.ref }}';
-            const commitMessage = '${{ github.event.head_commit.message }}';
+            const branchName = `${{ github.ref }}`;
+            const commitMessage = context?.payload?.head_commit?.message ?? '';
 
             await setMilestoneForCommits({
               github,
diff --git a/release/package.json b/release/package.json
index e42a0be2d79..e89b054e780 100644
--- a/release/package.json
+++ b/release/package.json
@@ -27,6 +27,7 @@
     "semver": "^7.5.4",
     "tsx": "^3.12.7",
     "typescript": "^5.1.6",
+    "underscore": "^1.13.6",
     "zx": "^8.1.0"
   },
   "devDependencies": {
diff --git a/release/src/milestones.ts b/release/src/milestones.ts
index ee0804ab67e..12c810ac87d 100644
--- a/release/src/milestones.ts
+++ b/release/src/milestones.ts
@@ -1,3 +1,5 @@
+import _ from "underscore";
+
 import { getMilestones } from "./github";
 import { getLinkedIssues, getPRsFromCommitMessage } from "./linked-issues";
 import type { Issue, GithubProps, Milestone } from "./types";
@@ -158,8 +160,11 @@ export async function setMilestoneForCommits({
   console.log('Next milestone:', nextMilestone.title);
 
   // figure out issue or PR
-  const PRsToCheck = commitMessages.flatMap(getPRsFromCommitMessage).filter(isNotNull);
-
+  const PRsToCheck = _.uniq(
+    commitMessages
+      .flatMap(getPRsFromCommitMessage)
+      .filter(isNotNull)
+  );
   if (!PRsToCheck.length) {
     throw new Error('No PRs found in commit messages');
   }
diff --git a/release/yarn.lock b/release/yarn.lock
index 10fe96de19e..d0a2838ce10 100644
--- a/release/yarn.lock
+++ b/release/yarn.lock
@@ -2818,6 +2818,11 @@ typescript@^5.1.6:
   resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274"
   integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==
 
+underscore@^1.13.6:
+  version "1.13.6"
+  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441"
+  integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==
+
 undici-types@~5.26.4:
   version "5.26.5"
   resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
-- 
GitLab