Skip to main content

commit_wizard/engine/constants/defaults/
policy.rs

1//
2// ──────────────────────────────────────────────────────────────────────────────
3// General
4// ──────────────────────────────────────────────────────────────────────────────
5//
6
7use crate::engine::models::policy::enforcement::{
8    AiProvider, BumpLevel, ChangelogFormat, CommitEnforcementScope, ScopeMode, TicketSource,
9};
10
11pub const CONFIG_VERSION: u32 = 1;
12
13pub const DEFAULT_COMMIT_BUMP: BumpLevel = BumpLevel::Patch;
14//
15// ──────────────────────────────────────────────────────────────────────────────
16// Commit
17// ──────────────────────────────────────────────────────────────────────────────
18//
19
20pub const COMMIT_SUBJECT_MAX_LENGTH: u32 = 72;
21pub const COMMIT_USE_EMOJIS: bool = false;
22
23pub const COMMIT_SCOPE_MODE: ScopeMode = ScopeMode::Optional;
24pub const COMMIT_SCOPE_RESTRICT_TO_DEFINED: bool = false;
25
26pub const COMMIT_BREAKING_REQUIRE_HEADER: bool = false;
27pub const COMMIT_BREAKING_REQUIRE_FOOTER: bool = false;
28pub const COMMIT_BREAKING_FOOTER_KEY: &str = "BREAKING CHANGE";
29
30pub const COMMIT_TICKET_ENABLED: bool = false;
31pub const COMMIT_TICKET_REQUIRED: bool = false;
32pub const COMMIT_TICKET_SOURCE: TicketSource = TicketSource::Disabled;
33
34pub const COMMIT_PROTECTED_ALLOW: bool = true;
35pub const COMMIT_PROTECTED_FORCE: bool = false;
36pub const COMMIT_PROTECTED_WARN: bool = true;
37
38//
39// ──────────────────────────────────────────────────────────────────────────────
40// Branch
41// ──────────────────────────────────────────────────────────────────────────────
42//
43
44pub const BRANCH_REMOTE: &str = "origin";
45pub const BRANCH_NAMING_PATTERN: &str = "feature/{issue}";
46pub const BRANCH_NAMING_ENFORCE: bool = false;
47
48//
49// ──────────────────────────────────────────────────────────────────────────────
50// PR
51// ──────────────────────────────────────────────────────────────────────────────
52//
53
54pub const PR_ENABLED: bool = true;
55
56//
57// ──────────────────────────────────────────────────────────────────────────────
58// Check
59// ──────────────────────────────────────────────────────────────────────────────
60//
61
62pub const CHECK_REQUIRE_CONVENTIONAL: bool = true;
63pub const CHECK_COMMITS_ENABLED: bool = true;
64pub const CHECK_COMMITS_ENFORCE_ON: CommitEnforcementScope =
65    CommitEnforcementScope::ProtectedBranches;
66
67//
68// ──────────────────────────────────────────────────────────────────────────────
69// Push
70// ──────────────────────────────────────────────────────────────────────────────
71//
72
73pub const PUSH_ALLOW_PROTECTED: bool = false;
74pub const PUSH_ALLOW_FORCE: bool = false;
75
76pub const PUSH_CHECK_COMMITS: bool = true;
77pub const PUSH_CHECK_BRANCH_POLICY: bool = true;
78
79//
80// ──────────────────────────────────────────────────────────────────────────────
81// Versioning
82// ──────────────────────────────────────────────────────────────────────────────
83//
84
85pub const VERSIONING_TAG_PREFIX: &str = "v";
86
87//
88// ──────────────────────────────────────────────────────────────────────────────
89// Changelog
90// ──────────────────────────────────────────────────────────────────────────────
91//
92
93pub const CHANGELOG_OUTPUT: &str = "CHANGELOG.md";
94pub const CHANGELOG_FORMAT: ChangelogFormat = ChangelogFormat::Markdown;
95pub const CHANGELOG_SHOW_SCOPE: bool = true;
96pub const CHANGELOG_SHOW_EMPTY_SECTIONS: bool = false;
97pub const CHANGELOG_SHOW_EMPTY_SCOPES: bool = false;
98pub const CHANGELOG_MISC_SECTION: &str = "Miscellaneous";
99
100//
101// ──────────────────────────────────────────────────────────────────────────────
102// Release
103// ──────────────────────────────────────────────────────────────────────────────
104//
105
106pub const RELEASE_ENABLED: bool = false;
107pub const RELEASE_SOURCE_BRANCH: &str = "main";
108pub const RELEASE_TARGET_BRANCH: &str = "main";
109pub const RELEASE_BRANCH_FORMAT: &str = "release/{version}";
110pub const RELEASE_HOTFIX_PATTERN: &str = "hotfix/*";
111
112pub const RELEASE_REQUIRE_CLEAN_WORKTREE: bool = true;
113pub const RELEASE_FAIL_IF_TAG_EXISTS: bool = true;
114pub const RELEASE_FAIL_IF_RELEASE_BRANCH_EXISTS: bool = true;
115
116pub const RELEASE_FINISH_TAG: bool = true;
117pub const RELEASE_FINISH_PUSH: bool = true;
118pub const RELEASE_FINISH_BACKMERGE_BRANCH: &str = "main";
119
120//
121// ──────────────────────────────────────────────────────────────────────────────
122// Hooks
123// ──────────────────────────────────────────────────────────────────────────────
124//
125
126pub const HOOKS_PRE_COMMIT: bool = false;
127pub const HOOKS_COMMIT_MSG: bool = false;
128pub const HOOKS_PRE_PUSH: bool = false;
129
130//
131// ──────────────────────────────────────────────────────────────────────────────
132// AI
133// ──────────────────────────────────────────────────────────────────────────────
134//
135
136pub const AI_ENABLED: bool = false;
137pub const AI_PROVIDER: AiProvider = AiProvider::Copilot;
138
139pub const AI_COMMAND_COMMIT: bool = false;
140pub const AI_COMMAND_CHANGELOG: bool = false;
141pub const AI_COMMAND_RELEASE_PREPARE: bool = false;
142
143//
144// ──────────────────────────────────────────────────────────────────────────────
145// Registry
146// ──────────────────────────────────────────────────────────────────────────────
147//
148
149pub const REGISTRY_DEFAULT_REF: &str = "main";