releasaurus_core/config/
resolved.rs1use std::collections::HashMap;
2
3use derive_builder::Builder;
4use merge::Merge;
5use url::Url;
6
7use crate::config::{
8 changelog::{ChangelogConfig, RewordedCommit},
9 prerelease::{PrereleaseConfig, PrereleaseStrategy},
10};
11
12#[derive(Debug, Clone, Merge)]
18pub struct PackageOverrides {
19 #[merge(strategy = merge::option::overwrite_none)]
20 pub tag_prefix: Option<String>,
21 #[merge(strategy = merge::option::overwrite_none)]
22 pub prerelease_suffix: Option<String>,
23 #[merge(strategy = merge::option::overwrite_none)]
24 pub prerelease_strategy: Option<PrereleaseStrategy>,
25}
26
27#[derive(Debug, Clone, Default, Merge)]
32pub struct GlobalOverrides {
33 #[merge(strategy = merge::option::overwrite_none)]
34 pub base_branch: Option<String>,
35 #[merge(strategy = merge::option::overwrite_none)]
36 pub tag_prefix: Option<String>,
37 #[merge(strategy = merge::option::overwrite_none)]
38 pub prerelease_suffix: Option<String>,
39 #[merge(strategy = merge::option::overwrite_none)]
40 pub prerelease_strategy: Option<PrereleaseStrategy>,
41}
42
43pub type PackageName = String;
45
46#[derive(Debug, Clone, Default)]
47pub struct CommitModifiers {
48 pub skip_shas: Vec<String>,
52 pub reword: Vec<RewordedCommit>,
55}
56
57#[derive(Debug, Builder)]
63#[builder(setter(into))]
64pub struct ResolvedConfig {
65 pub repo_name: String,
66 pub base_branch: String,
67 pub release_link_base_url: Url,
68 pub compare_link_base_url: Url,
69 pub package_overrides: HashMap<PackageName, PackageOverrides>,
70 pub global_overrides: GlobalOverrides,
71 pub commit_modifiers: CommitModifiers,
72 pub first_release_search_depth: usize,
73 pub tag_search_depth: usize,
74 pub separate_pull_requests: bool,
75 pub prerelease: PrereleaseConfig,
76 pub auto_start_next: Option<bool>,
77 pub breaking_always_increment_major: bool,
78 pub features_always_increment_minor: bool,
79 pub custom_major_increment_regex: Option<String>,
80 pub custom_minor_increment_regex: Option<String>,
81 pub changelog: ChangelogConfig,
82}