diff --git a/common/qodana.ts b/common/qodana.ts index f15099e7..419fe585 100644 --- a/common/qodana.ts +++ b/common/qodana.ts @@ -269,7 +269,7 @@ export function getQodanaSha256MismatchMessage( * @param branchName the branch name to sanitize. */ export function validateBranchName(branchName: string): string { - const validBranchNameRegex = /^[a-zA-Z0-9/\-_]+$/ + const validBranchNameRegex = /^[a-zA-Z0-9/\-_.]+$/ if (!validBranchNameRegex.test(branchName)) { throw new Error( `Invalid branch name: not allowed characters are used: ${branchName}` diff --git a/scan/__tests__/main.test.ts b/scan/__tests__/main.test.ts index e787b547..e34c9a4e 100644 --- a/scan/__tests__/main.test.ts +++ b/scan/__tests__/main.test.ts @@ -5,7 +5,8 @@ import { getQodanaScanArgs, Inputs, QODANA_OPEN_IN_IDE_NAME, - QODANA_REPORT_URL_NAME + QODANA_REPORT_URL_NAME, + validateBranchName } from '../../common/qodana' import { Annotation, @@ -18,6 +19,20 @@ import * as fs from 'fs' import * as path from 'path' import * as os from 'os' +test('validate branch names', () => { + let validBranchNames = [ + 'main', + 'dependabot/go_modules/cmd/dependencies.1987366a71', + 'refs/heads/main', + 'refs/tags/v1.0.0', + 'refs/pull/123/merge', + 'v2024.1.3' + ] + for (let branchName of validBranchNames) { + expect(validateBranchName(branchName)).toEqual(branchName) + } +}) + test('qodana scan command args', () => { const inputs = inputsDefaultFixture() const result = getQodanaScanArgs( diff --git a/scan/dist/index.js b/scan/dist/index.js index ea781e78..6ed009a5 100644 --- a/scan/dist/index.js +++ b/scan/dist/index.js @@ -24439,7 +24439,7 @@ function getQodanaSha256MismatchMessage(expected, actual) { return `Downloaded Qodana CLI binary is corrupted. Expected SHA-256 checksum: ${expected}, actual checksum: ${actual}`; } function validateBranchName(branchName) { - const validBranchNameRegex = /^[a-zA-Z0-9/\-_]+$/; + const validBranchNameRegex = /^[a-zA-Z0-9/\-_.]+$/; if (!validBranchNameRegex.test(branchName)) { throw new Error( `Invalid branch name: not allowed characters are used: ${branchName}` diff --git a/vsts/QodanaScan/index.js b/vsts/QodanaScan/index.js index 394f8ac1..bca06b76 100644 --- a/vsts/QodanaScan/index.js +++ b/vsts/QodanaScan/index.js @@ -200,7 +200,7 @@ function getQodanaSha256MismatchMessage(expected, actual) { return `Downloaded Qodana CLI binary is corrupted. Expected SHA-256 checksum: ${expected}, actual checksum: ${actual}`; } function validateBranchName(branchName) { - const validBranchNameRegex = /^[a-zA-Z0-9/\-_]+$/; + const validBranchNameRegex = /^[a-zA-Z0-9/\-_.]+$/; if (!validBranchNameRegex.test(branchName)) { throw new Error( `Invalid branch name: not allowed characters are used: ${branchName}`