commit_wizard/engine/models/policy/
check.rs1use crate::engine::models::{policy::enforcement::CommitEnforcementScope, runtime::ResolvedConfig};
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq)]
4pub enum CommitCheckEnforcement {
5 AllBranches,
6 ProtectedBranches,
7 None,
8}
9
10impl From<CommitEnforcementScope> for CommitCheckEnforcement {
11 fn from(value: CommitEnforcementScope) -> Self {
12 match value {
13 CommitEnforcementScope::AllBranches => Self::AllBranches,
14 CommitEnforcementScope::ProtectedBranches => Self::ProtectedBranches,
15 CommitEnforcementScope::None => Self::None,
16 }
17 }
18}
19
20#[derive(Debug, Clone)]
21pub struct CheckModel {
22 pub require_conventional: bool,
23 pub commits_enabled: bool,
24 pub enforcement: CommitCheckEnforcement,
25}
26
27impl Default for CheckModel {
28 fn default() -> Self {
29 Self {
30 require_conventional: true,
31 commits_enabled: true,
32 enforcement: CommitCheckEnforcement::ProtectedBranches,
33 }
34 }
35}
36
37impl CheckModel {
38 pub fn from_config(config: &ResolvedConfig) -> Self {
39 let base = &config.base;
40
41 Self {
42 require_conventional: base.check_require_conventional(),
43 commits_enabled: base.check_commits_enabled(),
44 enforcement: base.check_commits_enforce_on().into(),
45 }
46 }
47}