UNPKG

@jwpkg/gitversion

Version:

Gitversion is a complete customizable git-based release management system

87 lines 6.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AzureDevopsPlugin = void 0; class AzureDevopsPlugin { git; organizationName; projectName; repoName; name = 'Azure devops platform plugin'; get gitPlatform() { return this; } constructor(git, organizationName, projectName, repoName) { this.git = git; this.organizationName = organizationName; this.projectName = projectName; this.repoName = repoName; } static async initialize(initialize) { const gitUrl = await initialize.git.remoteUrl(); if (gitUrl) { const result = this.parseUrl(gitUrl); if (result) { if (process.env.BUILD_SOURCEBRANCH) { initialize.git.overrideCurrentRef = process.env.BUILD_SOURCEBRANCH; if (process.env.BUILD_SOURCEBRANCH.startsWith('refs/heads/')) { initialize.git.overrideCurrentBranch = process.env.BUILD_SOURCEBRANCH.replace('refs/heads/', ''); } } return new AzureDevopsPlugin(initialize.git, result.organizationName, result.projectName, result.repoName); } } return null; } static parseUrl(url) { const httpsRegex = /^https:\/\/.*dev\.azure\.com\/(.*)\/(.*)\/_git\/(.*)$/; const sshRegex = /^git@ssh\.dev\.azure\.com:.*\/(.*)\/(.*)\/(.*)$/; const httpsMatch = httpsRegex.exec(url); if (httpsMatch) { return { organizationName: httpsMatch[1], projectName: httpsMatch[2], repoName: httpsMatch[3], }; } const sshMatch = sshRegex.exec(url); if (sshMatch) { return { organizationName: sshMatch[1], projectName: sshMatch[2], repoName: sshMatch[3], }; } return null; } async currentBranch() { if (process.env.BUILD_SOURCEBRANCH && process.env.BUILD_SOURCEBRANCH.startsWith('refs/heads/')) { return process.env.BUILD_SOURCEBRANCH.replace('refs/heads/', ''); } return this.git.currentBranch(); } async currentRef() { if (process.env.BUILD_SOURCEBRANCH) { return process.env.BUILD_SOURCEBRANCH; } return this.git.currentRef(); } stripMergeMessage(commit) { if (commit.message.match(/^Merged PR \d+: /)) { return { ...commit, message: commit.message.replace(/^Merged PR \d+: /, ''), }; } else { return commit; } } compareUrl(from, to) { return `https://dev.azure.com/${this.organizationName}/${this.projectName}/_git/${this.repoName}/branchCompare?baseVersion=GT${from.version}&targetVersion=GT${to.version}`; } commitUrl(commit) { return `https://dev.azure.com/${this.organizationName}/${this.projectName}/_git/${this.repoName}/commit/${commit}`; } } exports.AzureDevopsPlugin = AzureDevopsPlugin; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp1cmUtZGV2b3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbnMvZW1iZWRkZWQvZ2l0L2F6dXJlLWRldm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxNQUFhLGlCQUFpQjtJQVFSO0lBQWtCO0lBQWtDO0lBQTZCO0lBUHJHLElBQUksR0FBRyw4QkFBOEIsQ0FBQztJQUV0QyxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFHRCxZQUFvQixHQUFRLEVBQVUsZ0JBQXdCLEVBQVUsV0FBbUIsRUFBVSxRQUFnQjtRQUFqRyxRQUFHLEdBQUgsR0FBRyxDQUFLO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFRO0lBQUksQ0FBQztJQUUxSCxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxVQUE2QjtRQUNuRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDaEQsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFckMsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztvQkFDbkMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDO29CQUNuRSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7d0JBQzdELFVBQVUsQ0FBQyxHQUFHLENBQUMscUJBQXFCLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FB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