mirror of
https://github.com/soybeanjs/soybean-admin.git
synced 2025-09-17 09:16:37 +08:00
feat(packages): @sa/scripts: add ignore pattern list for command gitCommitVerify
. close #504
This commit is contained in:
parent
0206969e98
commit
958d0baf3f
@ -65,13 +65,15 @@ export async function gitCommit(lang: Lang = 'en-us') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Git commit message verify */
|
/** Git commit message verify */
|
||||||
export async function gitCommitVerify(lang: Lang = 'en-us') {
|
export async function gitCommitVerify(lang: Lang = 'en-us', ignores: RegExp[] = []) {
|
||||||
const gitPath = await execCommand('git', ['rev-parse', '--show-toplevel']);
|
const gitPath = await execCommand('git', ['rev-parse', '--show-toplevel']);
|
||||||
|
|
||||||
const gitMsgPath = path.join(gitPath, '.git', 'COMMIT_EDITMSG');
|
const gitMsgPath = path.join(gitPath, '.git', 'COMMIT_EDITMSG');
|
||||||
|
|
||||||
const commitMsg = readFileSync(gitMsgPath, 'utf8').trim();
|
const commitMsg = readFileSync(gitMsgPath, 'utf8').trim();
|
||||||
|
|
||||||
|
if (ignores.some(regExp => regExp.test(commitMsg))) return;
|
||||||
|
|
||||||
const REG_EXP = /(?<type>[a-z]+)(?:\((?<scope>.+)\))?(?<breaking>!)?: (?<description>.+)/i;
|
const REG_EXP = /(?<type>[a-z]+)(?:\((?<scope>.+)\))?(?<breaking>!)?: (?<description>.+)/i;
|
||||||
|
|
||||||
if (!REG_EXP.test(commitMsg)) {
|
if (!REG_EXP.test(commitMsg)) {
|
||||||
|
@ -13,7 +13,17 @@ const defaultOptions: CliOption = {
|
|||||||
'!node_modules/**'
|
'!node_modules/**'
|
||||||
],
|
],
|
||||||
ncuCommandArgs: ['--deep', '-u'],
|
ncuCommandArgs: ['--deep', '-u'],
|
||||||
changelogOptions: {}
|
changelogOptions: {},
|
||||||
|
gitCommitVerifyIgnores: [
|
||||||
|
/^((Merge pull request)|(Merge (.*?) into (.*?)|(Merge branch (.*?)))(?:\r?\n)*$)/m,
|
||||||
|
/^(Merge tag (.*?))(?:\r?\n)*$/m,
|
||||||
|
/^(R|r)evert (.*)/,
|
||||||
|
/^(amend|fixup|squash)!/,
|
||||||
|
/^(Merged (.*?)(in|into) (.*)|Merged PR (.*): (.*))/,
|
||||||
|
/^Merge remote-tracking branch(\s*)(.*)/,
|
||||||
|
/^Automatic merge(.*)/,
|
||||||
|
/^Auto-merged (.*?) into (.*)/
|
||||||
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
export async function loadCliOptions(overrides?: Partial<CliOption>, cwd = process.cwd()) {
|
export async function loadCliOptions(overrides?: Partial<CliOption>, cwd = process.cwd()) {
|
||||||
|
@ -75,8 +75,8 @@ export async function setupCli() {
|
|||||||
},
|
},
|
||||||
'git-commit-verify': {
|
'git-commit-verify': {
|
||||||
desc: 'verify git commit message, make sure it match Conventional Commits standard',
|
desc: 'verify git commit message, make sure it match Conventional Commits standard',
|
||||||
action: async () => {
|
action: async args => {
|
||||||
await gitCommitVerify();
|
await gitCommitVerify(args?.lang, cliOptions.gitCommitVerifyIgnores);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
changelog: {
|
changelog: {
|
||||||
|
@ -26,4 +26,6 @@ export interface CliOption {
|
|||||||
* @link https://github.com/soybeanjs/changelog
|
* @link https://github.com/soybeanjs/changelog
|
||||||
*/
|
*/
|
||||||
changelogOptions: Partial<ChangelogOption>;
|
changelogOptions: Partial<ChangelogOption>;
|
||||||
|
/** The ignore pattern list of git commit verify */
|
||||||
|
gitCommitVerifyIgnores: RegExp[];
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user