@jwpkg/gitversion
Version:
Gitversion is a complete customizable git-based release management system
80 lines • 5.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.GithubPlugin = void 0;
class GithubPlugin {
git;
projectName;
repoName;
name = 'Github platform plugin';
get gitPlatform() {
return this;
}
constructor(git, projectName, repoName) {
this.git = git;
this.projectName = projectName;
this.repoName = repoName;
}
/**
* Git url has the format: https://github.com/jwpkg/gitversion.git or git@github.com:cp-utils/gitversion.git
*/
static parseUrl(url) {
const result = /^(https:\/\/|git@)github.com(\/|:)(.+)\/(.+?)(\.git)?$/.exec(url);
if (result) {
return {
projectName: result[3],
repoName: result[4],
};
}
return null;
}
static async initialize(initialize) {
const gitUrl = await initialize.git.remoteUrl();
if (gitUrl) {
const result = this.parseUrl(gitUrl);
if (result) {
initialize.git.addConfiguration('user.name', 'Gitversion release');
initialize.git.addConfiguration('user.email', '153614361+github-actions[bot]@users.noreply.github.com');
return new GithubPlugin(initialize.git, result.projectName, result.repoName);
}
}
return null;
}
async currentBranch() {
if (process.env.GITHUB_REF) {
if (process.env.GITHUB_REF.startsWith('refs/heads/')) {
return process.env.GITHUB_REF.replace('refs/heads/', '');
}
else {
return null;
}
}
return this.git.currentBranch();
}
async currentRef() {
if (process.env.GITHUB_REF) {
return process.env.GITHUB_REF;
}
return this.git.currentBranch();
}
stripMergeMessage(commit) {
if (commit.message.startsWith('Merge pull request ')) {
const lines = commit.message.split('\n');
lines.splice(0, 2);
return {
...commit,
message: lines.join('\n').trim(),
};
}
else {
return commit;
}
}
renderCompareUrl(from, to) {
return `https://github.com/${this.gitPlatform.projectName}/${this.gitPlatform.repoName}/compare/v${from.version}...v${to.version}`;
}
renderCommitUrl(commit) {
return `https://github.com/${this.gitPlatform.projectName}/${this.gitPlatform.repoName}/commit/${commit}`;
}
}
exports.GithubPlugin = GithubPlugin;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbnMvZW1iZWRkZWQvZ2l0L2dpdGh1Yi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxNQUFhLFlBQVk7SUFPSDtJQUFrQjtJQUE2QjtJQU5uRSxJQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFFaEMsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBb0IsR0FBUSxFQUFVLFdBQW1CLEVBQVUsUUFBZ0I7UUFBL0QsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBUTtJQUFJLENBQUM7SUFFeEY7O09BRUc7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQVc7UUFDekIsTUFBTSxNQUFNLEdBQUcsd0RBQXdELENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWxGLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxPQUFPO2dCQUNMLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUN0QixRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQzthQUNwQixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFVBQTZCO1FBQ25ELE1BQU0sTUFBTSxHQUFHLE1BQU0sVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVoRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVyQyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLFVBQVUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLG9CQUFvQixDQUFDLENBQUM7Z0JBQ25FLFVBQVUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLHdEQUF3RCxDQUFDLENBQUM7Z0JBRXhHLE9BQU8sSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvRSxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhO1FBQ2pCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMzQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO2dCQUNyRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDM0QsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzNCLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7UUFDaEMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBaUI7UUFDakMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUM7WUFDckQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbkIsT0FBTztnQkFDTCxHQUFHLE1BQU07Z0JBQ1QsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFO2FBQ2pDLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBa0IsRUFBRSxFQUFnQjtRQUNuRCxPQUFPLHNCQUFzQixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsYUFBYSxJQUFJLENBQUMsT0FBTyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNySSxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQWM7UUFDNUIsT0FBTyxzQkFBc0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLFdBQVcsTUFBTSxFQUFFLENBQUM7SUFDNUcsQ0FBQztDQUNGO0FBaEZELG9DQWdGQyJ9