@@ -745,18 +745,29 @@ fn validate_zulip_group_ids(data: &Data, errors: &mut Vec<String>) {
745
745
if groups. is_empty ( ) || groups. iter ( ) . all ( |g| !g. includes_team_members ( ) ) {
746
746
return Ok ( ( ) ) ;
747
747
}
748
- wrapper ( team. members ( data) ?. iter ( ) , errors, |member, _| {
749
- if let Some ( member) = data. person ( member) {
750
- if member. zulip_id ( ) . is_none ( ) {
751
- bail ! (
752
- "person `{}` in '{}' is a member of a Zulip user group but has no Zulip id" ,
753
- member. github( ) ,
754
- team. name( )
755
- ) ;
748
+
749
+ for group in groups {
750
+ wrapper ( group. members ( ) . iter ( ) , errors, |member, _| {
751
+ match member {
752
+ ZulipMember :: MemberWithId { .. } | ZulipMember :: JustId ( _) => {
753
+ // Okay, have zulip IDs.
754
+ }
755
+ ZulipMember :: MemberWithoutId { github } => {
756
+ // Bad, only github handle, no zulip ID, even though included in zulip user
757
+ // group
758
+ bail ! (
759
+ "person `{}` in '{}' is a member of a Zulip user group '{}' but has no \
760
+ Zulip id",
761
+ github,
762
+ team. name( ) ,
763
+ group. name( )
764
+ ) ;
765
+ }
756
766
}
757
- }
758
- Ok ( ( ) )
759
- } ) ;
767
+ Ok ( ( ) )
768
+ } ) ;
769
+ }
770
+
760
771
Ok ( ( ) )
761
772
} ) ;
762
773
}
@@ -769,6 +780,7 @@ fn validate_zulip_stream_ids(data: &Data, errors: &mut Vec<String>) {
769
780
if streams. is_empty ( ) || streams. iter ( ) . all ( |s| !s. includes_team_members ( ) ) {
770
781
return Ok ( ( ) ) ;
771
782
}
783
+
772
784
wrapper ( team. members ( data) ?. iter ( ) , errors, |member, _| {
773
785
if let Some ( member) = data. person ( member) {
774
786
if member. zulip_id ( ) . is_none ( ) {
0 commit comments