From d2ced62139818ddbad46ef40adb931175666a45f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=91=E8=BD=BB=E7=8B=82?= <1677568218@qq.com> Date: Thu, 2 Feb 2023 20:24:18 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E4=BF=AE=E6=94=B9commitlint=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- commitlint.config.js | 115 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 110 insertions(+), 5 deletions(-) diff --git a/commitlint.config.js b/commitlint.config.js index f41a0d8..4969363 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -1,6 +1,17 @@ +// @see: https://cz-git.qbenben.com/zh/guide +/** @type {import('cz-git').UserConfig} */ + module.exports = { + ignores: [commit => commit.includes('init')], extends: ['@commitlint/config-conventional'], rules: { + // @see: https://commitlint.js.org/#/reference-rules + 'body-leading-blank': [2, 'always'], + 'footer-leading-blank': [1, 'always'], + 'header-max-length': [2, 'always', 108], + 'subject-empty': [2, 'never'], + 'type-empty': [2, 'never'], + 'subject-case': [0], 'type-enum': [ 2, 'always', @@ -8,16 +19,110 @@ module.exports = { 'feat', 'fix', 'docs', - 'chore', 'style', 'refactor', - 'ci', - 'test', - 'revert', 'perf', + 'test', 'build', - 'vercel', + 'ci', + 'chore', + 'revert', + 'wip', + 'workflow', + 'types', + 'release', ], ], }, + prompt: { + messages: { + // type: 'Select the type of change that you're committing:', + // scope: 'Denote the SCOPE of this change (optional):', + // customScope: 'Denote the SCOPE of this change:', + // subject: 'Write a SHORT, IMPERATIVE tense description of the change:\n', + // body: 'Provide a LONGER description of the change (optional). Use "|" to break new line:\n', + // breaking: 'List any BREAKING CHANGES (optional). Use "|" to break new line:\n', + // footerPrefixsSelect: 'Select the ISSUES type of changeList by this change (optional):', + // customFooterPrefixs: 'Input ISSUES prefix:', + // footer: 'List any ISSUES by this change. E.g.: #31, #34:\n', + // confirmCommit: 'Are you sure you want to proceed with the commit above?', + // 中文版 + type: '选择你要提交的类型 :', + scope: '选择一个提交范围(可选):', + customScope: '请输入自定义的提交范围 :', + subject: '填写简短精炼的变更描述 :\n', + body: '填写更加详细的变更描述(可选)。使用 "|" 换行 :\n', + breaking: '列举非兼容性重大的变更(可选)。使用 "|" 换行 :\n', + footerPrefixsSelect: '选择关联issue前缀(可选):', + customFooterPrefixs: '输入自定义issue前缀 :', + footer: '列举关联issue (可选) 例如: #31, #I3244 :\n', + confirmCommit: '是否提交或修改commit ?', + }, + types: [ + // 英文 + // { value: 'feat', name: 'feat: 🚀 A new feature', emoji: '🚀' }, + // { value: 'fix', name: 'fix: 🧩 A bug fix', emoji: '🧩' }, + // { value: 'docs', name: 'docs: 📚 Documentation only changes', emoji: '📚' }, + // { value: 'style', name: 'style: 🎨 Changes that do not affect the meaning of the code', emoji: '🎨' }, + // { value: 'refactor', name: 'refactor: ♻️ A code change that neither fixes a bug nor adds a feature', emoji: '♻️' }, + // { value: 'perf', name: 'perf: ⚡️ A code change that improves performance', emoji: '⚡️' }, + // { value: 'test', name: 'test: ✅ Adding missing tests or correcting existing tests', emoji: '✅' }, + // { value: 'build', name: 'build: 📦️ Changes that affect the build system or external dependencies', emoji: '📦️' }, + // { value: 'ci', name: 'ci: 🎡 Changes to our CI configuration files and scripts', emoji: '🎡' }, + // { value: 'chore', name: 'chore: 🔨 Other changes that don't modify src or test files', emoji: '🔨' }, + // { value: 'revert', name: 'revert: ⏪️ Reverts a previous commit', emoji: '⏪️' }, + // 中文版 + // { value: '特性', name: '特性: 🚀 新增功能', emoji: '🚀' }, + // { value: '修复', name: '修复: 🧩 修复缺陷', emoji: '🧩' }, + // { value: '文档', name: '文档: 📚 文档变更', emoji: '📚' }, + // { value: '格式', name: '格式: 🎨 代码格式(不影响功能,例如空格、分号等格式修正)', emoji: '🎨' }, + // { value: '重构', name: '重构: ♻️ 代码重构(不包括 bug 修复、功能新增)', emoji: '♻️' }, + // { value: '性能', name: '性能: ⚡️ 性能优化', emoji: '⚡️' }, + // { value: '测试', name: '测试: ✅ 添加疏漏测试或已有测试改动', emoji: '✅' }, + // { value: '构建', name: '构建: 📦️ 构建流程、外部依赖变更(如升级 npm 包、修改 webpack 配置等)', emoji: '📦️' }, + // { value: '集成', name: '集成: 🎡 修改 CI 配置、脚本', emoji: '🎡' }, + // { value: '回退', name: '回退: ⏪️ 回滚 commit', emoji: '⏪️' }, + // { value: '其他', name: '其他: 🔨 对构建过程或辅助工具和库的更改(不影响源文件、测试用例)', emoji: '🔨' }, + // 中英混合版 + { value: 'feat', name: 'feat: 🚀 新增功能', emoji: '🚀' }, + { value: 'fix', name: 'fix: 🧩 修复缺陷', emoji: '🧩' }, + { value: 'docs', name: 'docs: 📚 文档变更', emoji: '📚' }, + { value: 'style', name: 'style: 🎨 代码格式(不影响功能,例如空格、分号等格式修正)', emoji: '🎨' }, + { value: 'refactor', name: 'refactor: ♻️ 代码重构(不包括 bug 修复、功能新增)', emoji: '♻️' }, + { value: 'perf', name: 'perf: ⚡️ 性能优化', emoji: '⚡️' }, + { value: 'test', name: 'test: ✅ 添加疏漏测试或已有测试改动', emoji: '✅' }, + { value: 'build', name: 'build: 📦️ 构建流程、外部依赖变更(如升级 npm 包、修改 webpack 配置等)', emoji: '📦️' }, + { value: 'ci', name: 'ci: 🎡 修改 CI 配置、脚本', emoji: '🎡' }, + { value: 'revert', name: 'revert: ⏪️ 回滚 commit', emoji: '⏪️' }, + { value: 'chore', name: 'chore: 🔨 对构建过程或辅助工具和库的更改(不影响源文件、测试用例)', emoji: '🔨' }, + ], + useEmoji: true, + themeColorCode: '', + scopes: [], + allowCustomScopes: true, + allowEmptyScopes: true, + customScopesAlign: 'bottom', + customScopesAlias: 'custom', + emptyScopesAlias: 'empty', + upperCaseSubject: false, + allowBreakingChanges: ['feat', 'fix'], + breaklineNumber: 100, + breaklineChar: '|', + skipQuestions: [], + issuePrefixs: [{ value: 'closed', name: 'closed: ISSUES has been processed' }], + customIssuePrefixsAlign: 'top', + emptyIssuePrefixsAlias: 'skip', + customIssuePrefixsAlias: 'custom', + allowCustomIssuePrefixs: true, + allowEmptyIssuePrefixs: true, + confirmColorize: true, + maxHeaderLength: Infinity, + maxSubjectLength: Infinity, + minSubjectLength: 0, + scopeOverrides: undefined, + defaultBody: '', + defaultIssues: '', + defaultScope: '', + defaultSubject: '', + }, } \ No newline at end of file