diff options
-rw-r--r-- | src/schema.rs | 14 | ||||
-rw-r--r-- | teams/all.toml | 21 |
2 files changed, 14 insertions, 21 deletions
diff --git a/src/schema.rs b/src/schema.rs index dcd6868..d6604f7 100644 --- a/src/schema.rs +++ b/src/schema.rs @@ -144,13 +144,23 @@ impl Team { for team in data.teams() { let include_wg = team.is_wg() && self.people.include_wg_leads; let include_team = !team.is_wg() && self.people.include_team_leads; - if include_wg || include_team { + if team.name != self.name && (include_wg || include_team) { for lead in team.leads() { members.insert(lead); } } } } + if self.people.include_all_team_members { + for team in data.teams() { + if team.is_wg() || team.name == self.name { + continue; + } + for member in team.members(data)? { + members.insert(member); + } + } + } Ok(members) } @@ -213,6 +223,8 @@ struct TeamPeople { include_team_leads: bool, #[serde(default = "default_false")] include_wg_leads: bool, + #[serde(default = "default_false")] + include_all_team_members: bool, } permissions!(pub(crate) struct Permissions { diff --git a/teams/all.toml b/teams/all.toml index 96d8b64..d9e6e68 100644 --- a/teams/all.toml +++ b/teams/all.toml @@ -1,28 +1,9 @@ name = "all" -children = [ - "alumni", - "cargo", - "community", - "compiler", - "core", - "crates-io", - "devtools", - "docs", - "ides", - "infra", - "lang", - "lang-shepherds", - "libs", - "mods", - "production", - "release", - "rustdoc", - "twir", -] [people] leads = [] members = [] +include-all-team-members = true [[lists]] address = "all@rust-lang.org" |