@@ -10,6 +10,7 @@ import (
10
10
"os"
11
11
"strings"
12
12
"sync"
13
+ "sync/atomic"
13
14
)
14
15
15
16
type member struct {
@@ -26,28 +27,31 @@ func main() {
26
27
func printReport (ms []member ) {
27
28
var wg sync.WaitGroup
28
29
29
- withSize := 0
30
- withoutSize := 0
31
- multipleSize := 0
30
+ var (
31
+ withSize uint32
32
+ withoutSize uint32
33
+ multipleSize uint32
34
+ )
32
35
33
36
for _ , m := range ms {
34
37
wg .Add (1 )
35
38
m := m
39
+
36
40
go func () {
37
41
defer wg .Done ()
38
- if len (m .Keys ) = = 0 {
39
- withoutSize ++
40
- if * showUsers == "without " || * showUsers == "all" {
42
+ if len (m .Keys ) ! = 0 {
43
+ atomic . AddUint32 ( & withSize , 1 )
44
+ if * showUsers == "with " || * showUsers == "all" {
41
45
zap .S ().Infow ("retrieved keys" ,
42
46
"user" , m .Login ,
43
47
"keys" , m .Keys ,
44
48
)
45
49
}
46
50
}
47
51
48
- if len (m .Keys ) ! = 0 {
49
- withSize ++
50
- if * showUsers == "with " || * showUsers == "all" {
52
+ if len (m .Keys ) = = 0 {
53
+ atomic . AddUint32 ( & withoutSize , 1 )
54
+ if * showUsers == "without " || * showUsers == "all" {
51
55
zap .S ().Infow ("retrieved keys" ,
52
56
"user" , m .Login ,
53
57
"keys" , m .Keys ,
@@ -56,7 +60,7 @@ func printReport(ms []member) {
56
60
}
57
61
58
62
if len (m .Keys ) > 1 {
59
- multipleSize ++
63
+ atomic . AddUint32 ( & multipleSize , 1 )
60
64
if * showUsers == "multiple" || * showUsers == "all" {
61
65
zap .S ().Infow ("retrieved keys" ,
62
66
"user" , m .Login ,
@@ -133,7 +137,7 @@ func getKeys(ms []member) []member {
133
137
}
134
138
135
139
func getMembers () []member {
136
- page := 1
140
+ p := 1
137
141
138
142
var members []member
139
143
@@ -142,7 +146,7 @@ func getMembers() []member {
142
146
143
147
req , err := http .NewRequest (
144
148
"GET" ,
145
- fmt .Sprintf ("%s/%s/members?filter=all&page=%d" , gitHubOrgAPI , gitHubOrg , page ),
149
+ fmt .Sprintf ("%s/%s/members?filter=all&page=%d" , gitHubOrgAPI , gitHubOrg , p ),
146
150
nil ,
147
151
)
148
152
if err != nil {
@@ -171,7 +175,7 @@ func getMembers() []member {
171
175
172
176
if len (ms ) != 0 {
173
177
members = append (members , ms ... )
174
- page ++
178
+ p ++
175
179
} else {
176
180
break
177
181
}
0 commit comments