@@ -49,8 +49,12 @@ func main() {
49
49
totalJobs int
50
50
totalPrivate int
51
51
totalPublic int
52
+ longestBuild time.Duration
53
+ actors map [string ]bool
52
54
)
53
55
56
+ actors = make (map [string ]bool )
57
+
54
58
fmt .Printf ("Fetching last %d days of data (created>=%s)\n " , since , created .Format ("2006-01-02" ))
55
59
56
60
var repos , allRepos []* github.Repository
@@ -154,6 +158,9 @@ func main() {
154
158
log .Printf ("Fetching jobs for: run ID: %d, startedAt: %s, conclusion: %s" , run .GetID (), run .GetRunStartedAt ().Format ("2006-01-02 15:04:05" ), run .GetConclusion ())
155
159
workflowJobs := []* github.WorkflowJob {}
156
160
161
+ if a := run .GetActor (); a != nil {
162
+ actors [a .GetLogin ()] = true
163
+ }
157
164
page := 0
158
165
for {
159
166
log .Printf ("Fetching jobs for: %d, page %d" , run .GetID (), page )
@@ -165,6 +172,13 @@ func main() {
165
172
log .Fatal (err )
166
173
}
167
174
175
+ for _ , job := range jobs .Jobs {
176
+ dur := job .GetCompletedAt ().Time .Sub (job .GetStartedAt ().Time )
177
+ if dur > longestBuild {
178
+ longestBuild = dur
179
+ }
180
+ }
181
+
168
182
workflowJobs = append (workflowJobs , jobs .Jobs ... )
169
183
170
184
if len (jobs .Jobs ) == 0 {
@@ -193,12 +207,18 @@ func main() {
193
207
}
194
208
}
195
209
210
+ fmt .Println ("\n Usage report generated by self-actuated/actions-usage.\n " )
196
211
fmt .Printf ("Total repos: %d\n " , len (allRepos ))
197
212
fmt .Printf ("Total private repos: %d\n " , totalPrivate )
198
213
fmt .Printf ("Total public repos: %d\n " , totalPublic )
199
214
fmt .Println ()
200
215
fmt .Printf ("Total workflow runs: %d\n " , totalRuns )
201
216
fmt .Printf ("Total workflow jobs: %d\n " , totalJobs )
217
+ fmt .Println ()
218
+ fmt .Printf ("Total users: %d\n " , len (actors ))
219
+ fmt .Printf ("Longest build: %s\n " , longestBuild .Round (time .Second ))
220
+ fmt .Printf ("Average build time: %s\n " , (allUsage / time .Duration (totalJobs )).Round (time .Second ))
221
+
202
222
mins := fmt .Sprintf ("%.0f mins" , allUsage .Minutes ())
203
223
fmt .Printf ("Total usage: %s (%s)\n " , allUsage .String (), mins )
204
224
}
0 commit comments