From 5d71cc0924799ad6f977a70db9b81281d499ba81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20All=C3=A8ne?= <66381046+callms@users.noreply.github.com> Date: Tue, 12 Mar 2024 14:51:43 +0100 Subject: [PATCH] fix: branch name compliance [DEVOP-147] (#92) --- lib/actions/pullRequest.js | 2 +- lib/branch.js | 8 ++++++++ lib/branch.test.js | 15 ++++++++------- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/lib/actions/pullRequest.js b/lib/actions/pullRequest.js index 0cbf9c5f..06800aed 100644 --- a/lib/actions/pullRequest.js +++ b/lib/actions/pullRequest.js @@ -35,7 +35,7 @@ exports.validatePR = async function validatePR({ pullRequest, issue }) { if (!isBranchNameValid(headRef)) { throw new Error( - `This pull request is based on a branch with in invalid name: “${headRef}”. See https://www.notion.so/mobsuccess/Git-Guidelines-41996ef576cb4f29b7737772b74289c5#f9cadc10d949498dbe38c0eed08fd4f8` + `This pull request is based on a branch with in invalid name: “${headRef}”. See https://github.com/mobsuccess-devops/rfc/blob/master/docs/decisions/0009-convention-nommage-branch-pr.md and https://www.notion.so/mobsuccess/Git-Guidelines-41996ef576cb4f29b7737772b74289c5#f9cadc10d949498dbe38c0eed08fd4f8` ); } diff --git a/lib/branch.js b/lib/branch.js index 63bc100e..428ce16b 100644 --- a/lib/branch.js +++ b/lib/branch.js @@ -1,5 +1,13 @@ function isBranchNameValid(branchName) { return ( + // The following are the older branch prefixes, that are still valid, with + // discussions pending on the ADR #9 with a PR #35 still active at the time + // of writing, to maybe deprecate them. In the meantime we still have to + // allow branches using these prefixes, as no active ADR disallows their + // use. + !!branchName.match( + /^(core|feature|fix|hotfix|asset|rework|documentation)\/([a-z][a-z0-9._-]*)$/ + ) || !!branchName.match( /^(feat|fix|chore|docs|refactor|test|revert|ci|perf|style|build|change|remove|poc|mobsuccessbot|dependabot)\/([a-z][a-z0-9._-]*)$/ ) || diff --git a/lib/branch.test.js b/lib/branch.test.js index 2c45487d..5a69cab7 100644 --- a/lib/branch.test.js +++ b/lib/branch.test.js @@ -18,15 +18,16 @@ describe("branch", () => { ])("Test branch %s should be valid", (branch) => { expect(isBranchNameValid(branch)).toBe(true); }); + // Some tests were commented out, see #92. test.each([ - "core/foo--bar", - "core/foo--bar--z", + // "core/foo--bar", + // "core/foo--bar--z", "foo/foo-bar", - "feature/foo", - "hotfix/foo", - "core/foo", - "asset/foo", - "documentation/foo", + // "feature/foo", + // "hotfix/foo", + // "core/foo", + // "asset/foo", + // "documentation/foo", "chore", "chore/", "chore/FOO",