From 0915f3ad24936a53a15f235b0ca27de4741e6578 Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Thu, 3 Oct 2019 18:16:07 -0300 Subject: Add Marker teams setup --- src/schema.rs | 8 +++++++- src/static_api.rs | 2 ++ src/validate.rs | 14 ++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/schema.rs b/src/schema.rs index 0a25332..aa4bb60 100644 --- a/src/schema.rs +++ b/src/schema.rs @@ -109,6 +109,8 @@ pub(crate) struct Team { name: String, #[serde(default = "default_false")] wg: bool, + #[serde(default = "default_false")] + marker_team: bool, subteam_of: Option, people: TeamPeople, #[serde(default)] @@ -129,6 +131,10 @@ impl Team { self.wg } + pub(crate) fn is_marker_team(&self) -> bool { + self.marker_team + } + pub(crate) fn subteam_of(&self) -> Option<&str> { self.subteam_of.as_ref().map(|s| s.as_str()) } @@ -160,7 +166,7 @@ impl Team { } if self.people.include_all_team_members { for team in data.teams() { - if team.is_wg() || team.name == self.name { + if team.is_wg() || team.is_marker_team() || team.name == self.name { continue; } for member in team.members(data)? { diff --git a/src/static_api.rs b/src/static_api.rs index d360927..d424d9b 100644 --- a/src/static_api.rs +++ b/src/static_api.rs @@ -55,6 +55,8 @@ impl<'a> Generator<'a> { name: team.name().into(), kind: if team.is_wg() { v1::TeamKind::WorkingGroup + } else if team.is_marker_team() { + v1::TeamKind::MarkerTeam } else { v1::TeamKind::Team }, diff --git a/src/validate.rs b/src/validate.rs index c6e2657..0ef2e40 100644 --- a/src/validate.rs +++ b/src/validate.rs @@ -24,6 +24,7 @@ static CHECKS: &[fn(&Data, &mut Vec)] = &[ validate_rfcbot_exclude_members, validate_team_names, validate_github_teams, + validate_marker_team, ]; static GITHUB_CHECKS: &[fn(&Data, &GitHubApi, &mut Vec)] = &[validate_github_usernames]; @@ -432,6 +433,19 @@ fn validate_github_usernames(data: &Data, github: &GitHubApi, errors: &mut Vec) { + wrapper(data.teams(), errors, |team, _| { + if team.is_wg() && team.is_marker_team() { + bail!( + "`{}` is a working group and marker team at the same time", + team.name() + ); + } + Ok(()) + }); +} + fn wrapper(iter: I, errors: &mut Vec, mut func: F) where I: Iterator, -- cgit v1.2.3