Reputation: 419
I use the cz-customizable package to have conventional commits in the project; I use a customized configuration file named .cz-customize.js, and I've changed some defaults too. Is it possible to make the questions required, or is there any option that makes a specific question optional or required or sets any kind of validation? There is an array named types which are questions to check conventions in our git commit, something that I want is to make some of them required to be sure that the developer doesn't leave them empty.
module.exports = {
messages: {
type: "Select the type of change that you're committing:",
scope: "Denote the SCOPE of this change:",
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',
footerPrefixesSelect: "Select the ISSUES type of changeList by this change (optional):",
customFooterPrefix: "Input ISSUES prefix:",
footer: "List any ISSUES by this change. E.g.: #31, #34:\n",
generatingByAI: 'Generating your AI commit subject...',
generatedSelectByAI: 'Select suitable subject by AI generated:',
confirmCommit: "Are you sure you want to proceed with the commit above?"
},
types: [
{ value: "feat", name: "feat: ✨ A new feature", emoji: ":sparkles:" },
{ value: "chore", name: "chore: 🔨 Other changes that don't modify src or test files", emoji: ":hammer:" },
{ value: "fix", name: "fix: 🩹💩 A bug fix", emoji: ":bug:" },
{ value: "test", name: "test: ✅ Adding missing tests or correcting existing tests", emoji: ":white_check_mark:" },
{ value: "style", name: "style: 💄 Changes that do not affect the meaning of the code", emoji: ":lipstick:" },
{ value: "refactor", name: "refactor: 🔧 A code change that neither fixes a bug nor adds a feature", emoji: ":recycle:" },
{ value: "docs", name: "docs: 📝 Documentation only changes", emoji: ":memo:" },
{ value: "perf", name: "perf: 🚀 A code change that improves performance", emoji: ":zap:" },
{ value: "build", name: "build: 📦️ Changes that affect the build system or external dependencies", emoji: ":package:" },
{ value: "ci", name: "ci: 🎡 Changes to our CI configuration files and scripts", emoji: ":ferris_wheel:" },
{ value: "revert", name: "revert: ⏪️ Reverts a previous commit", emoji: ":rewind:" }
],
useEmoji: true,
emojiAlign: "center",
useAI: false,
aiNumber: 1,
themeColorCode: "",
scopes: [{name: 'test1'}, {name: 'test2'}],
allowCustomScopes: false,
allowEmptyScopes: true,
customScopesAlign: "bottom",
customScopesAlias: "custom",
emptyScopesAlias: "empty",
upperCaseSubject: true,
markBreakingChangeMode: true,
allowBreakingChanges: ['feat', 'fix'],
breaklineNumber: 5,
breaklineChar: "|",
skipQuestions: ['breaking', 'customScope', 'breaking'],
issuePrefixes: [{ value: "closed", name: "closed: ISSUES has been processed" }],
customIssuePrefixAlign: "top",
emptyIssuePrefixAlias: "skip",
customIssuePrefixAlias: "custom",
allowCustomIssuePrefix: true,
allowEmptyIssuePrefix: true,
confirmColorize: true,
maxHeaderLength: Infinity,
maxSubjectLength: Infinity,
minSubjectLength: 0,
scopeOverrides: undefined,
defaultType: "style",
defaultBody: "",
defaultIssues: "",
defaultScope: "",
defaultSubject: "",
subjectLimit: 100,
}
Upvotes: 0
Views: 481