1pub mod commit;
3pub mod fetch;
4pub mod file;
5pub mod forge;
6mod generation;
7mod git_ref;
8mod git_remote;
9pub mod graph;
10pub mod push;
11mod repo_details;
12pub mod repository;
13mod user_notification;
14pub mod validation;
15
16#[cfg(test)]
17mod tests;
18
19pub use commit::Commit;
20pub use forge::ForgeLike;
21pub use forge::MockForgeLike;
22pub use generation::Generation;
23#[allow(clippy::module_name_repetitions)]
24pub use git_ref::GitRef;
25#[allow(clippy::module_name_repetitions)]
26pub use git_remote::GitRemote;
27pub use repo_details::RepoDetails;
28pub use repository::Repository;
29pub use repository::RepositoryFactory;
30pub use user_notification::UserNotification;
31
32use crate::common::branch_name;
33use crate::common::repo_alias;
34use crate::common::repo_path;
35use crate::ForgeDetails;
36use crate::GitDir;
37use crate::RepoConfig;
38
39#[must_use]
40pub fn repo_details(
41 n: u32,
42 generation: Generation,
43 forge: ForgeDetails,
44 repo_config: Option<RepoConfig>,
45 gitdir: GitDir,
46) -> RepoDetails {
47 RepoDetails {
48 generation,
49 repo_alias: repo_alias(n),
50 repo_path: repo_path(n),
51 gitdir,
52 branch: branch_name(n),
53 forge,
54 repo_config,
55 }
56}