Skip to content

Commit 6cd9584

Browse files
committed
fix: handle none condition
1 parent f49cb45 commit 6cd9584

File tree

2 files changed

+26
-20
lines changed

2 files changed

+26
-20
lines changed

sync-team/src/github/api/mod.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,9 @@ pub(crate) struct Ruleset {
491491
pub(crate) enforcement: RulesetEnforcement,
492492
#[serde(skip_serializing_if = "Option::is_none")]
493493
pub(crate) bypass_actors: Option<Vec<RulesetBypassActor>>,
494-
pub(crate) conditions: RulesetConditions,
494+
#[serde(default, skip_serializing_if = "Option::is_none")]
495+
pub(crate) conditions: Option<RulesetConditions>,
496+
#[serde(default, skip_serializing_if = "Vec::is_empty")]
495497
pub(crate) rules: Vec<RulesetRule>,
496498
}
497499

sync-team/src/github/mod.rs

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -971,14 +971,14 @@ pub fn construct_ruleset(
971971
source_type: RulesetSourceType::Repository,
972972
enforcement: RulesetEnforcement::Active,
973973
bypass_actors: None,
974-
conditions: RulesetConditions {
974+
conditions: Some(RulesetConditions {
975975
ref_name: Some(RulesetRefNameCondition {
976976
include: vec![convert_branch_pattern_to_ref_pattern(
977977
&branch_protection.pattern,
978978
)],
979979
exclude: vec![],
980980
}),
981-
},
981+
}),
982982
rules,
983983
}
984984
}
@@ -1190,8 +1190,10 @@ impl std::fmt::Display for CreateRepoDiff {
11901190
for ruleset in rulesets {
11911191
let id_str = ruleset.id.map_or("new".to_string(), |id| id.to_string());
11921192
writeln!(f, " - {} (ID: {})", ruleset.name, id_str)?;
1193-
if let Some(ref_name) = &ruleset.conditions.ref_name {
1194-
writeln!(f, " Branches: {}", ref_name.include.join(", "))?;
1193+
if let Some(conditions) = &ruleset.conditions {
1194+
if let Some(ref_name) = &conditions.ref_name {
1195+
writeln!(f, " Branches: {}", ref_name.include.join(", "))?;
1196+
}
11951197
}
11961198
if ruleset
11971199
.rules
@@ -1665,21 +1667,23 @@ fn log_ruleset(
16651667
);
16661668

16671669
// Log branch conditions
1668-
if let Some(ref_name) = &current.conditions.ref_name {
1669-
let new_ref_name = new.and_then(|n| n.conditions.ref_name.as_ref());
1670-
if !ref_name.include.is_empty() {
1671-
log!(
1672-
"Include Branches",
1673-
&ref_name.include,
1674-
new_ref_name.map(|r| &r.include)
1675-
);
1676-
}
1677-
if !ref_name.exclude.is_empty() {
1678-
log!(
1679-
"Exclude Branches",
1680-
&ref_name.exclude,
1681-
new_ref_name.map(|r| &r.exclude)
1682-
);
1670+
if let Some(conditions) = &current.conditions {
1671+
if let Some(ref_name) = &conditions.ref_name {
1672+
let new_ref_name = new.and_then(|n| n.conditions.as_ref()?.ref_name.as_ref());
1673+
if !ref_name.include.is_empty() {
1674+
log!(
1675+
"Include Branches",
1676+
&ref_name.include,
1677+
new_ref_name.map(|r| &r.include)
1678+
);
1679+
}
1680+
if !ref_name.exclude.is_empty() {
1681+
log!(
1682+
"Exclude Branches",
1683+
&ref_name.exclude,
1684+
new_ref_name.map(|r| &r.exclude)
1685+
);
1686+
}
16831687
}
16841688
}
16851689

0 commit comments

Comments
 (0)