summaryrefslogtreecommitdiffstats
path: root/src/validate.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/validate.rs')
-rw-r--r--src/validate.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/validate.rs b/src/validate.rs
index 90881fe..21570d2 100644
--- a/src/validate.rs
+++ b/src/validate.rs
@@ -18,6 +18,7 @@ static CHECKS: &[fn(&Data, &mut Vec<String>)] = &[
validate_discord_name,
validate_duplicate_permissions,
validate_permissions,
+ validate_rfcbot_labels,
];
pub(crate) fn validate(data: &Data) -> Result<(), Error> {
@@ -284,6 +285,19 @@ fn validate_permissions(data: &Data, errors: &mut Vec<String>) {
});
}
+/// Ensure there are no duplicate rfcbot labels
+fn validate_rfcbot_labels(data: &Data, errors: &mut Vec<String>) {
+ let mut labels = HashSet::new();
+ wrapper(data.teams(), errors, move |team, errors| {
+ if let Some(rfcbot) = team.rfcbot_data() {
+ if !labels.insert(rfcbot.label.clone()) {
+ errors.push(format!("duplicate rfcbot label: {}", rfcbot.label));
+ }
+ }
+ Ok(())
+ });
+}
+
fn wrapper<T, I, F>(iter: I, errors: &mut Vec<String>, mut func: F)
where
I: Iterator<Item = T>,