@@ -728,18 +728,29 @@ fn validate_zulip_group_ids(data: &Data, errors: &mut Vec<String>) {
728
728
if groups. is_empty ( ) || groups. iter ( ) . all ( |g| !g. includes_team_members ( ) ) {
729
729
return Ok ( ( ) ) ;
730
730
}
731
- wrapper ( team. members ( data) ?. iter ( ) , errors, |member, _| {
732
- if let Some ( member) = data. person ( member) {
733
- if member. zulip_id ( ) . is_none ( ) {
734
- bail ! (
735
- "person `{}` in '{}' is a member of a Zulip user group but has no Zulip id" ,
736
- member. github( ) ,
737
- team. name( )
738
- ) ;
731
+
732
+ for group in groups {
733
+ wrapper ( group. members ( ) . iter ( ) , errors, |member, _| {
734
+ match member {
735
+ ZulipMember :: MemberWithId { .. } | ZulipMember :: JustId ( _) => {
736
+ // Okay, have zulip IDs.
737
+ }
738
+ ZulipMember :: MemberWithoutId { github } => {
739
+ // Bad, only github handle, no zulip ID, even though included in zulip user
740
+ // group
741
+ bail ! (
742
+ "person `{}` in '{}' is a member of a Zulip user group '{}' but has no \
743
+ Zulip id",
744
+ github,
745
+ team. name( ) ,
746
+ group. name( )
747
+ ) ;
748
+ }
739
749
}
740
- }
741
- Ok ( ( ) )
742
- } ) ;
750
+ Ok ( ( ) )
751
+ } ) ;
752
+ }
753
+
743
754
Ok ( ( ) )
744
755
} ) ;
745
756
}
@@ -752,6 +763,7 @@ fn validate_zulip_stream_ids(data: &Data, errors: &mut Vec<String>) {
752
763
if streams. is_empty ( ) || streams. iter ( ) . all ( |s| !s. includes_team_members ( ) ) {
753
764
return Ok ( ( ) ) ;
754
765
}
766
+
755
767
wrapper ( team. members ( data) ?. iter ( ) , errors, |member, _| {
756
768
if let Some ( member) = data. person ( member) {
757
769
if member. zulip_id ( ) . is_none ( ) {
0 commit comments