File tree Expand file tree Collapse file tree 1 file changed +14
-2
lines changed Expand file tree Collapse file tree 1 file changed +14
-2
lines changed Original file line number Diff line number Diff line change @@ -220,17 +220,29 @@ fn validate_team_leads(data: &Data, errors: &mut Vec<String>) {
220220 } ) ;
221221}
222222
223- /// Ensure team members are people
223+ /// Ensure team members are people and don't contain duplicates
224224fn validate_team_members ( data : & Data , errors : & mut Vec < String > ) {
225225 wrapper ( data. teams ( ) , errors, |team, errors| {
226+ let mut seen = std:: collections:: HashSet :: new ( ) ;
226227 wrapper ( team. members ( data) ?. iter ( ) , errors, |member, _| {
228+ // Check if member exists
227229 if data. person ( member) . is_none ( ) {
228230 bail ! (
229- "person `{}` is member of team `{}` but doesn't exist" ,
231+ "person {} is member of team {} but doesn't exist" ,
230232 member,
231233 team. name( )
232234 ) ;
233235 }
236+
237+ // Check for duplicates
238+ if !seen. insert ( member) {
239+ bail ! (
240+ "person {} is listed multiple times in team {}" ,
241+ member,
242+ team. name( )
243+ ) ;
244+ }
245+
234246 Ok ( ( ) )
235247 } ) ;
236248 Ok ( ( ) )
You can’t perform that action at this time.
0 commit comments