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
48
49
50
51
use crate::config::{
    ApiToken, BranchName, ForgeAlias, ForgeDetails, ForgeType, Hostname, RepoAlias, RepoBranches,
    RepoConfig, RepoConfigSource, RepoPath, User,
};

#[must_use]
pub fn forge_details(n: u32, forge_type: ForgeType) -> ForgeDetails {
    ForgeDetails::new(
        forge_name(n),
        forge_type,
        hostname(n),
        user(n),
        api_token(n),
    )
}

pub(crate) fn api_token(n: u32) -> ApiToken {
    ApiToken::new(format!("api-{n}").into())
}

pub(crate) fn user(n: u32) -> User {
    User::new(format!("user-{n}"))
}

pub(crate) fn hostname(n: u32) -> Hostname {
    Hostname::new(format!("hostname-{n}"))
}

pub(crate) fn forge_name(n: u32) -> ForgeAlias {
    ForgeAlias::new(format!("forge-name-{n}"))
}

pub(crate) fn branch_name(n: u32) -> BranchName {
    BranchName::new(format!("branch-name-{n}"))
}

pub(crate) fn repo_path(n: u32) -> RepoPath {
    RepoPath::new(format!("repo-path-{n}"))
}

pub(crate) fn repo_alias(n: u32) -> RepoAlias {
    RepoAlias::new(format!("repo-alias-{n}"))
}

#[must_use]
pub fn repo_config(n: u32, source: RepoConfigSource) -> RepoConfig {
    RepoConfig::new(
        RepoBranches::new(format!("main-{n}"), format!("next-{n}"), format!("dev-{n}")),
        source,
    )
}