@@ -28,15 +28,11 @@ fn check_zulip(data: &Data) -> Result<(), failure::Error> {
28
28
. into_iter ( )
29
29
. map ( |u| ( u. email , u. user_id ) )
30
30
. collect :: < HashMap < _ , _ > > ( ) ;
31
- let mut checked = HashSet :: new ( ) ;
32
31
for ( _, local_group) in & data. zulip_groups ( ) ? {
33
32
match remote_groups. remove ( local_group. name ( ) ) {
34
33
Some ( rg) => {
34
+ let mut remote_members = rg. members . iter ( ) . collect :: < HashSet < _ > > ( ) ;
35
35
for local_member in local_group. members ( ) {
36
- if checked. contains ( local_member) {
37
- continue ;
38
- }
39
-
40
36
let i = match local_member {
41
37
ZulipGroupMember :: Id ( i) => * i,
42
38
ZulipGroupMember :: Email ( e) => match users. get ( e) {
@@ -51,14 +47,20 @@ fn check_zulip(data: &Data) -> Result<(), failure::Error> {
51
47
continue ;
52
48
}
53
49
} ;
54
- checked. insert ( local_member) ;
55
- if !rg. members . contains ( & i) {
50
+ if !remote_members. remove ( & i) {
56
51
error ! (
57
- "Zulip user '{:?}' is not on the remote Zulip user group" ,
52
+ "Zulip user '{:?}' is not in the remote Zulip user group" ,
58
53
local_member
59
54
)
60
55
}
61
56
}
57
+ for remote_memember in remote_members {
58
+ error ! (
59
+ "Zulip user '{:?}' is in the remote Zulip user group '{}' but not in the team repo" ,
60
+ remote_memember,
61
+ local_group. name( )
62
+ )
63
+ }
62
64
}
63
65
None => error ! (
64
66
"User group '{}' is in the team repo but not on Zulip" ,
0 commit comments