cfgd_core/config/
origin.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4#[serde(rename_all = "camelCase", deny_unknown_fields)]
5pub struct OriginSpec {
6 #[serde(rename = "type")]
7 pub origin_type: OriginType,
8 pub url: String,
9 #[serde(default = "default_branch")]
10 pub branch: String,
11 #[serde(default, skip_serializing_if = "Option::is_none")]
12 pub auth: Option<String>,
13 #[serde(default)]
18 pub ssh_strict_host_key_checking: SshHostKeyPolicy,
19}
20
21#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
23pub enum SshHostKeyPolicy {
24 #[default]
26 AcceptNew,
27 Yes,
29 No,
31}
32
33impl SshHostKeyPolicy {
34 pub fn as_ssh_option(&self) -> &'static str {
35 match self {
36 SshHostKeyPolicy::AcceptNew => "accept-new",
37 SshHostKeyPolicy::Yes => "yes",
38 SshHostKeyPolicy::No => "no",
39 }
40 }
41}
42
43#[derive(Debug, Clone, Serialize, Deserialize)]
44pub enum OriginType {
45 Git,
46 Server,
47}
48
49fn default_branch() -> String {
50 "master".to_string()
51}