-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcommitlint.config.mjs
More file actions
47 lines (47 loc) · 1.87 KB
/
commitlint.config.mjs
File metadata and controls
47 lines (47 loc) · 1.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
export default {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [
2,
'always',
[
'feat', // New feature
'fix', // Bug fix
'docs', // Documentation only changes
'style', // Changes that don't affect code meaning (formatting, etc)
'refactor', // Code change that neither fixes a bug nor adds a feature
'perf', // Performance improvement
'test', // Adding or updating tests
'build', // Changes to build system or dependencies
'ci', // Changes to CI configuration files and scripts
'chore', // Other changes that don't modify src or test files
'revert', // Reverts a previous commit
],
],
'scope-enum': [
2,
'always',
[
'all', // affects everything
'backend', // Backend/API changes
'frontend', // Frontend/UI changes
'shared', // Shared package changes
'database', // Database migrations/schema changes
'docs', // Documentation
'deps', // Dependency updates
'config', // Configuration files
'ci', // CI/CD configuration
'dx', // Developer experience
'release', // Semantic-release automated commits
],
],
'scope-empty': [1, 'never'], // Warn if scope is missing (but don't fail)
'subject-case': [2, 'always', 'sentence-case'], // Sentence case for subject
'subject-empty': [2, 'never'], // Subject is required
'subject-full-stop': [2, 'never', '.'], // No period at end of subject
'header-max-length': [2, 'always', 100], // Max 100 chars for header
'body-leading-blank': [2, 'always'], // Blank line before body
'body-max-line-length': [0, 'always', 100], // Disabled: auto-generated changelogs have long lines
'footer-leading-blank': [0, 'always'], // Disabled: auto-generated changelogs don't follow this
},
};