@jwpkg/gitversion
Version:
Gitversion is a complete customizable git-based release management system
87 lines • 6.81 kB
JavaScript
;
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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