diff options
author | Pietro Albini <pietro@pietroalbini.org> | 2019-09-04 18:19:19 +0200 |
---|---|---|
committer | Pietro Albini <pietro@pietroalbini.org> | 2019-09-04 18:19:19 +0200 |
commit | b08b2d26e637a6fb9318cd28dc1cd0f5f40ca555 (patch) | |
tree | c9f12d5e4f83e1fb4082073807c21f0b449f8127 /src | |
parent | a4170ba3d5cd5c729162cfdbcfca3710a8c0d0de (diff) |
teams/compiler-contributors: include compiler members on github
Diffstat (limited to 'src')
-rw-r--r-- | src/schema.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/schema.rs b/src/schema.rs index a95cced..0a25332 100644 --- a/src/schema.rs +++ b/src/schema.rs @@ -222,11 +222,20 @@ impl Team { pub(crate) fn github_teams<'a>(&'a self, data: &Data) -> Result<Vec<GitHubTeam<'a>>, Error> { if let Some(github) = &self.github { - let members = self + let mut members = self .members(data)? .iter() .filter_map(|name| data.person(name).map(|p| p.github_id())) .collect::<Vec<_>>(); + for team in &github.extra_teams { + members.extend( + data.team(team) + .ok_or_else(|| failure::err_msg(format!("missing team {}", team)))? + .members(data)? + .iter() + .filter_map(|name| data.person(name).map(|p| p.github_id())), + ); + } let name = github .team_name .as_ref() @@ -284,6 +293,8 @@ struct TeamPeople { struct GitHubData { team_name: Option<String>, orgs: Vec<String>, + #[serde(default)] + extra_teams: Vec<String>, } #[derive(serde_derive::Deserialize, Debug)] |