mirror of
https://github.com/bakhirev/assayo.git
synced 2024-11-16 16:21:41 +00:00
update
This commit is contained in:
parent
53d8fb5d27
commit
7e3610cfb5
File diff suppressed because one or more lines are too long
|
@ -2,6 +2,12 @@ import { COMMIT_TYPE, ISystemCommit } from 'ts/interfaces/Commit';
|
||||||
import IHashMap from 'ts/interfaces/HashMap';
|
import IHashMap from 'ts/interfaces/HashMap';
|
||||||
import { increment, WeightedAverage } from 'ts/helpers/Math';
|
import { increment, WeightedAverage } from 'ts/helpers/Math';
|
||||||
|
|
||||||
|
const IS_PR = {
|
||||||
|
[COMMIT_TYPE.PR_BITBUCKET]: true,
|
||||||
|
[COMMIT_TYPE.PR_GITHUB]: true,
|
||||||
|
[COMMIT_TYPE.PR_GITLAB]: true,
|
||||||
|
};
|
||||||
|
|
||||||
export default class DataGripByPR {
|
export default class DataGripByPR {
|
||||||
pr: IHashMap<any> = {};
|
pr: IHashMap<any> = {};
|
||||||
|
|
||||||
|
@ -27,8 +33,7 @@ export default class DataGripByPR {
|
||||||
} else {
|
} else {
|
||||||
this.#updateCommitByTaskNumber(commit);
|
this.#updateCommitByTaskNumber(commit);
|
||||||
}
|
}
|
||||||
} else if (!this.pr[commit.prId]
|
} else if (!this.pr[commit.prId] && IS_PR[commit.commitType || '']) {
|
||||||
&& [COMMIT_TYPE.PR_BITBUCKET, COMMIT_TYPE.PR_GITHUB].includes(commit.commitType)) {
|
|
||||||
this.#addCommitByPR(commit);
|
this.#addCommitByPR(commit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,12 @@ import IHashMap from 'ts/interfaces/HashMap';
|
||||||
|
|
||||||
import { getTypeAndScope, getTask, getTaskNumber } from './getTypeAndScope';
|
import { getTypeAndScope, getTask, getTaskNumber } from './getTypeAndScope';
|
||||||
|
|
||||||
|
const MASTER_BRANCH = {
|
||||||
|
master: true,
|
||||||
|
dev: true,
|
||||||
|
develop: true,
|
||||||
|
};
|
||||||
|
|
||||||
let prevDate = new Date();
|
let prevDate = new Date();
|
||||||
|
|
||||||
export default function getCommitInfo(
|
export default function getCommitInfo(
|
||||||
|
@ -28,17 +34,17 @@ export default function getCommitInfo(
|
||||||
|
|
||||||
const authorID = author.replace(/\s|\t/gm, '');
|
const authorID = author.replace(/\s|\t/gm, '');
|
||||||
if (authorID && refEmailAuthor[authorID] && refEmailAuthor[authorID] !== author) {
|
if (authorID && refEmailAuthor[authorID] && refEmailAuthor[authorID] !== author) {
|
||||||
console.log(`PARSE ERROR: Rename "${author}" to "${refEmailAuthor[authorID]}"`);
|
console.log(`PARSE WARNING: Rename "${author}" to "${refEmailAuthor[authorID]}"`);
|
||||||
author = refEmailAuthor[authorID];
|
author = refEmailAuthor[authorID];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (email && refEmailAuthor[email] && refEmailAuthor[email] !== author) {
|
if (email && refEmailAuthor[email] && refEmailAuthor[email] !== author) {
|
||||||
console.log(`PARSE ERROR: Rename "${author}" to "${refEmailAuthor[email]}" by "${email}"`);
|
console.log(`PARSE WARNING: Rename "${author}" to "${refEmailAuthor[email]}" by "${email}"`);
|
||||||
author = refEmailAuthor[email];
|
author = refEmailAuthor[email];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (author && refEmailAuthor[author] && refEmailAuthor[author] !== email) {
|
if (author && refEmailAuthor[author] && refEmailAuthor[author] !== email) {
|
||||||
console.log(`PARSE ERROR: Rename "${email}" to "${refEmailAuthor[author]}" by "${author}"`);
|
console.log(`PARSE WARNING: Rename "${email}" to "${refEmailAuthor[author]}" by "${author}"`);
|
||||||
email = refEmailAuthor[author];
|
email = refEmailAuthor[author];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,27 +76,28 @@ export default function getCommitInfo(
|
||||||
fileChanges: [],
|
fileChanges: [],
|
||||||
};
|
};
|
||||||
|
|
||||||
const isSystemPR = message.indexOf('Pull request #') === 0;
|
const isBitbucketPR = message.indexOf('Pull request #') === 0;
|
||||||
const isSystemMerge = message.indexOf('Merge pull request #') === 0;
|
const isGithubPR = message.indexOf('Merge pull request #') === 0;
|
||||||
|
const isGitlabPR = message.indexOf('Merge branch ') === 0;
|
||||||
const isMerge = message.indexOf('Merge commit ') === 0
|
const isMerge = message.indexOf('Merge commit ') === 0
|
||||||
|| message.indexOf('Merge branch ') === 0
|
|
||||||
|| message.indexOf('Merge remote-tracking branch') === 0;
|
|| message.indexOf('Merge remote-tracking branch') === 0;
|
||||||
const isAutoMerge = message.indexOf('Automatic merge from') === 0;
|
const isAutoMerge = message.indexOf('Automatic merge from') === 0;
|
||||||
const isSystemCommit = isSystemPR
|
const isSystemCommit = isBitbucketPR
|
||||||
|| isSystemMerge
|
|| isGithubPR
|
||||||
|| isMerge
|
|| isMerge
|
||||||
|
|| isGitlabPR
|
||||||
|| isAutoMerge;
|
|| isAutoMerge;
|
||||||
|
|
||||||
if (isSystemCommit) {
|
if (isSystemCommit) {
|
||||||
let commitType = COMMIT_TYPE.MERGE;
|
let commitType = COMMIT_TYPE.MERGE;
|
||||||
let prId, repository, branch, toBranch, task, taskNumber;
|
let prId, repository, branch, toBranch, task, taskNumber;
|
||||||
if (isSystemMerge) {
|
if (isGithubPR) {
|
||||||
commitType = COMMIT_TYPE.PR_GITHUB;
|
commitType = COMMIT_TYPE.PR_GITHUB;
|
||||||
[, prId, repository, branch, toBranch ] = message
|
[, prId, repository, branch, toBranch ] = message
|
||||||
.replace(/(Merge\spull\srequest\s#)|(\sfrom\s)|(\sin\s)|(\sto\s)/gim, ',')
|
.replace(/(Merge\spull\srequest\s#)|(\sfrom\s)|(\sin\s)|(\sto\s)/gim, ',')
|
||||||
.split(',');
|
.split(',');
|
||||||
task = getTask(branch);
|
task = getTask(branch);
|
||||||
} else if (isSystemPR) {
|
} else if (isBitbucketPR) {
|
||||||
commitType = COMMIT_TYPE.PR_BITBUCKET;
|
commitType = COMMIT_TYPE.PR_BITBUCKET;
|
||||||
const messageParts = message.substring(14, Infinity).split(':');
|
const messageParts = message.substring(14, Infinity).split(':');
|
||||||
prId = messageParts.shift();
|
prId = messageParts.shift();
|
||||||
|
@ -101,6 +108,16 @@ export default function getCommitInfo(
|
||||||
.replace(/(Automatic\smerge\sfrom\s)|(\s->\s)/gim, ',')
|
.replace(/(Automatic\smerge\sfrom\s)|(\s->\s)/gim, ',')
|
||||||
.replace(/(Merge\sremote-tracking\sbranch\s')|('\sinto\s)/gim, ',')
|
.replace(/(Merge\sremote-tracking\sbranch\s')|('\sinto\s)/gim, ',')
|
||||||
.split(',');
|
.split(',');
|
||||||
|
} else if (isGitlabPR) {
|
||||||
|
commitType = COMMIT_TYPE.PR_GITLAB;
|
||||||
|
[, branch, toBranch ] = message
|
||||||
|
.replace(/'/gim, '')
|
||||||
|
.replace(/(Merge\sbranch\s)|(\sinto\s)/gim, ',')
|
||||||
|
.split(',');
|
||||||
|
if (toBranch && MASTER_BRANCH[toBranch]) {
|
||||||
|
task = getTask(branch) || getTaskNumber(branch);
|
||||||
|
prId = task;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
taskNumber = getTaskNumber(task);
|
taskNumber = getTaskNumber(task);
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,7 @@ export interface ILog {
|
||||||
export const COMMIT_TYPE = {
|
export const COMMIT_TYPE = {
|
||||||
PR_BITBUCKET: 'PR_BITBUCKET',
|
PR_BITBUCKET: 'PR_BITBUCKET',
|
||||||
PR_GITHUB: 'PR_GITHUB',
|
PR_GITHUB: 'PR_GITHUB',
|
||||||
|
PR_GITLAB: 'PR_GITLAB',
|
||||||
MERGE: 'MERGE',
|
MERGE: 'MERGE',
|
||||||
AUTO_MERGE: 'AUTO_MERGE',
|
AUTO_MERGE: 'AUTO_MERGE',
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue