Skip to main content

commit_wizard/engine/models/policy/
mod.rs

1use crate::engine::models::runtime::ResolvedConfig;
2
3pub mod ai;
4pub mod branch;
5pub mod changelog;
6pub mod check;
7pub mod commit;
8pub mod enforcement;
9pub mod versioning;
10// pub mod pr;
11pub mod hooks;
12pub mod push;
13pub mod release;
14
15#[derive(Debug, Clone, Default)]
16pub struct Policy {
17    pub commit: commit::CommitModel,
18    pub branch: branch::BranchModel,
19    pub check: check::CheckModel,
20    pub push: push::PushModel,
21    pub release: release::ReleaseModel,
22    pub ai: ai::AiModel,
23    pub changelog: changelog::ChangelogModel,
24    pub hooks: hooks::HooksModel,
25    pub versioning: versioning::VersioningModel,
26}
27
28impl Policy {
29    pub fn from_config(config: &ResolvedConfig) -> Self {
30        Self {
31            commit: commit::CommitModel::from_config(config),
32            branch: branch::BranchModel::from_config(config),
33            check: check::CheckModel::from_config(config),
34            push: push::PushModel::from_config(config),
35            release: release::ReleaseModel::from_config(config),
36            ai: ai::AiModel::from_config(config),
37            changelog: changelog::ChangelogModel::from_config(config),
38            hooks: hooks::HooksModel::from_config(config),
39            versioning: versioning::VersioningModel::from_config(config),
40        }
41    }
42}