From d09a1b981ef8ae9e5e4863779fccae614abb2a6b Mon Sep 17 00:00:00 2001 From: Kyle Edwards Date: Fri, 12 Jan 2024 16:59:49 -0500 Subject: [PATCH] Allow repo default branch to be non-versioned (#174) --- src/plugins/BranchChecker/check_pr.ts | 13 ++++++++++--- test/branch_checker.test.ts | 14 ++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/plugins/BranchChecker/check_pr.ts b/src/plugins/BranchChecker/check_pr.ts index 308cd669..8abc2e89 100644 --- a/src/plugins/BranchChecker/check_pr.ts +++ b/src/plugins/BranchChecker/check_pr.ts @@ -31,9 +31,6 @@ export const checkPR = async function ( pr: PRContext["payload"]["pull_request"] | PullsListResponseData[0] ) { const prBaseBranch = pr.base.ref; - const repoDefaultBranchVersion = getVersionFromBranch( - pr.base.repo.default_branch - ); const errDescription = "Base branch is not under active development"; const setCommitStatus = createSetCommitStatus(context.octokit, { context: "Branch Checker", @@ -50,10 +47,20 @@ export const checkPR = async function ( return await setCommitStatus("Automated GPUTester PR detected", "success"); } + if (pr.base.repo.default_branch == prBaseBranch) { + return await setCommitStatus( + "Base branch is under active development", + "success" + ); + } + if (!isVersionedBranch(prBaseBranch)) { return await setCommitStatus(errDescription, "failure"); } + const repoDefaultBranchVersion = getVersionFromBranch( + pr.base.repo.default_branch + ); const prBaseBranchVersion = getVersionFromBranch(prBaseBranch); if (await isActiveBranch(repoDefaultBranchVersion, prBaseBranchVersion)) { diff --git a/test/branch_checker.test.ts b/test/branch_checker.test.ts index 64419606..cbeabb13 100644 --- a/test/branch_checker.test.ts +++ b/test/branch_checker.test.ts @@ -145,6 +145,20 @@ describe("Branch Checker", () => { "Base branch is not under active development" ); }); + + test("non-versioned default branch", async() => { + const context = makePRContext({ + baseRef: "non-versioned-branch", + baseDefaultBranch: "non-versioned-branch", + }); + await new PRBranchChecker(context).checkPR(); + expect(mockCreateCommitStatus).toBeCalledTimes(2); + expect(mockCreateCommitStatus.mock.calls[0][0].state).toBe("pending"); + expect(mockCreateCommitStatus.mock.calls[1][0].state).toBe("success"); + expect(mockCreateCommitStatus.mock.calls[1][0].description).toBe( + "Base branch is under active development" + ); + }); }); describe("Repository Event", () => {