how_is 24.0.0 → 25.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.github_changelog_generator +0 -1
  3. data/.rubocop.yml +37 -12
  4. data/.travis.yml +6 -3
  5. data/CHANGELOG.md +56 -0
  6. data/CONTRIBUTING.md +34 -0
  7. data/Gemfile +8 -4
  8. data/ISSUES.md +30 -54
  9. data/README.md +16 -91
  10. data/Rakefile +3 -31
  11. data/bin/prerelease-generate-changelog +1 -1
  12. data/bin/setup +0 -0
  13. data/build-debug.rb +20 -0
  14. data/exe/how_is +25 -22
  15. data/fixtures/vcr_cassettes/how-is-example-empty-repository.yml +334 -1
  16. data/fixtures/vcr_cassettes/how-is-example-repository.yml +350 -1
  17. data/fixtures/vcr_cassettes/how-is-from-config-frontmatter.yml +15234 -1
  18. data/fixtures/vcr_cassettes/how-is-how-is-travis-api-repos-builds.yml +2694 -1
  19. data/fixtures/vcr_cassettes/how-is-with-config-file.yml +15234 -1
  20. data/fixtures/vcr_cassettes/how_is_contributions_additions_count.yml +70 -1
  21. data/fixtures/vcr_cassettes/how_is_contributions_all_contributors.yml +70 -1
  22. data/fixtures/vcr_cassettes/how_is_contributions_changed_files.yml +70 -1
  23. data/fixtures/vcr_cassettes/how_is_contributions_changes.yml +70 -1
  24. data/fixtures/vcr_cassettes/how_is_contributions_commits.yml +70 -1
  25. data/fixtures/vcr_cassettes/how_is_contributions_compare_url.yml +70 -1
  26. data/fixtures/vcr_cassettes/how_is_contributions_default_branch.yml +70 -1
  27. data/fixtures/vcr_cassettes/how_is_contributions_deletions_count.yml +70 -1
  28. data/fixtures/vcr_cassettes/how_is_contributions_new_contributors.yml +70 -1
  29. data/fixtures/vcr_cassettes/how_is_contributions_summary.yml +70 -1
  30. data/fixtures/vcr_cassettes/how_is_contributions_summary_2.yml +70 -1
  31. data/how_is.gemspec +12 -6
  32. data/lib/how_is/cacheable.rb +71 -0
  33. data/lib/how_is/cli.rb +121 -124
  34. data/lib/how_is/config.rb +123 -0
  35. data/lib/how_is/constants.rb +9 -0
  36. data/lib/how_is/date_time_helpers.rb +48 -0
  37. data/lib/how_is/frontmatter.rb +14 -9
  38. data/lib/how_is/report.rb +86 -58
  39. data/lib/how_is/report_collection.rb +113 -0
  40. data/lib/how_is/sources/ci/appveyor.rb +88 -0
  41. data/lib/how_is/sources/ci/travis.rb +159 -0
  42. data/lib/how_is/sources/github/contributions.rb +169 -128
  43. data/lib/how_is/sources/github/issue_fetcher.rb +148 -0
  44. data/lib/how_is/sources/github/issues.rb +86 -235
  45. data/lib/how_is/sources/github/pulls.rb +19 -18
  46. data/lib/how_is/sources/github.rb +40 -18
  47. data/lib/how_is/sources/github_helpers.rb +8 -91
  48. data/lib/how_is/sources.rb +2 -0
  49. data/lib/how_is/template.rb +9 -0
  50. data/lib/how_is/templates/contributions_partial.html +1 -0
  51. data/lib/how_is/templates/{issues_or_pulls_partial.html_template → issues_or_pulls_partial.html} +0 -0
  52. data/lib/how_is/templates/new_contributors_partial.html +5 -0
  53. data/lib/how_is/templates/{report.html_template → report.html} +0 -8
  54. data/lib/how_is/templates/{report_partial.html_template → report_partial.html} +3 -3
  55. data/lib/how_is/text.rb +26 -0
  56. data/lib/how_is/version.rb +2 -1
  57. data/lib/how_is.rb +33 -60
  58. metadata +28 -47
  59. data/.hound.yml +0 -2
  60. data/.rubocop_todo.yml +0 -21
  61. data/lib/how_is/sources/travis.rb +0 -37
  62. data/roadmap.markdown +0 -82
@@ -175,4 +175,2697 @@ http_interactions:
175
175
  Marie Dash","author_email":"me@duckie.co","committer_name":"Ellen Marie Dash","committer_email":"me@duckie.co","compare_url":"https://github.com/how-is/how_is/compare/33d9884c7824...1c42db54b67e","pull_request_number":null}]}'
176
176
  http_version:
177
177
  recorded_at: Sat, 06 Jan 2018 14:58:04 GMT
178
- recorded_with: VCR 3.0.3
178
+ - request:
179
+ method: get
180
+ uri: https://api.travis-ci.org/repo/how-is%2Fhow_is/branches?sort_by=default_branch
181
+ body:
182
+ encoding: US-ASCII
183
+ string: ''
184
+ headers:
185
+ Accept-Encoding:
186
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
187
+ Accept:
188
+ - application/json
189
+ User-Agent:
190
+ - how_is/24.0.0 (https://github.com/how-is/how_is/)
191
+ Host:
192
+ - api.travis-ci.org
193
+ Travis-Api-Version:
194
+ - '3'
195
+ response:
196
+ status:
197
+ code: 200
198
+ message: OK
199
+ headers:
200
+ Connection:
201
+ - keep-alive
202
+ Server:
203
+ - nginx
204
+ Date:
205
+ - Fri, 30 Mar 2018 22:03:31 GMT
206
+ Content-Type:
207
+ - application/json
208
+ Transfer-Encoding:
209
+ - chunked
210
+ Access-Control-Allow-Origin:
211
+ - "*"
212
+ Access-Control-Allow-Credentials:
213
+ - 'true'
214
+ Access-Control-Expose-Headers:
215
+ - Content-Type, Cache-Control, Expires, Etag, Last-Modified, X-Request-ID
216
+ Strict-Transport-Security:
217
+ - max-age=31536000
218
+ X-Endpoint:
219
+ - Travis::API::V3::Services::Branches::Find
220
+ X-Oauth-Scopes:
221
+ - ''
222
+ Vary:
223
+ - Accept-Encoding
224
+ X-Rack-Cache:
225
+ - miss
226
+ X-Request-Id:
227
+ - 74b27e69-ac88-48ba-9120-2c49ab77b9ec
228
+ Via:
229
+ - 1.1 vegur
230
+ body:
231
+ encoding: ASCII-8BIT
232
+ string: |-
233
+ {
234
+ "@type": "branches",
235
+ "@href": "/repo/how-is%2Fhow_is/branches?sort_by=default_branch",
236
+ "@representation": "standard",
237
+ "@pagination": {
238
+ "limit": 25,
239
+ "offset": 0,
240
+ "count": 135,
241
+ "is_first": true,
242
+ "is_last": false,
243
+ "next": {
244
+ "@href": "/repo/how-is%2Fhow_is/branches?limit=25&offset=25&sort_by=default_branch",
245
+ "offset": 25,
246
+ "limit": 25
247
+ },
248
+ "prev": null,
249
+ "first": {
250
+ "@href": "/repo/how-is%2Fhow_is/branches?sort_by=default_branch",
251
+ "offset": 0,
252
+ "limit": 25
253
+ },
254
+ "last": {
255
+ "@href": "/repo/how-is%2Fhow_is/branches?limit=25&offset=125&sort_by=default_branch",
256
+ "offset": 125,
257
+ "limit": 25
258
+ }
259
+ },
260
+ "branches": [
261
+ {
262
+ "@type": "branch",
263
+ "@href": "/repo/8014235/branch/master",
264
+ "@representation": "standard",
265
+ "name": "master",
266
+ "repository": {
267
+ "@type": "repository",
268
+ "@href": "/repo/8014235",
269
+ "@representation": "minimal",
270
+ "id": 8014235,
271
+ "name": "how_is",
272
+ "slug": "how-is/how_is"
273
+ },
274
+ "default_branch": true,
275
+ "exists_on_github": true,
276
+ "last_build": {
277
+ "@type": "build",
278
+ "@href": "/build/354836524",
279
+ "@representation": "minimal",
280
+ "id": 354836524,
281
+ "number": "957",
282
+ "state": "passed",
283
+ "duration": 297,
284
+ "event_type": "push",
285
+ "previous_state": "passed",
286
+ "pull_request_title": null,
287
+ "pull_request_number": null,
288
+ "started_at": "2018-03-17T21:16:29Z",
289
+ "finished_at": "2018-03-17T21:18:08Z"
290
+ }
291
+ },
292
+ {
293
+ "@type": "branch",
294
+ "@href": "/repo/8014235/branch/better-errors",
295
+ "@representation": "standard",
296
+ "name": "better-errors",
297
+ "repository": {
298
+ "@type": "repository",
299
+ "@href": "/repo/8014235",
300
+ "@representation": "minimal",
301
+ "id": 8014235,
302
+ "name": "how_is",
303
+ "slug": "how-is/how_is"
304
+ },
305
+ "default_branch": false,
306
+ "exists_on_github": false,
307
+ "last_build": null
308
+ },
309
+ {
310
+ "@type": "branch",
311
+ "@href": "/repo/8014235/branch/v20",
312
+ "@representation": "standard",
313
+ "name": "v20",
314
+ "repository": {
315
+ "@type": "repository",
316
+ "@href": "/repo/8014235",
317
+ "@representation": "minimal",
318
+ "id": 8014235,
319
+ "name": "how_is",
320
+ "slug": "how-is/how_is"
321
+ },
322
+ "default_branch": false,
323
+ "exists_on_github": false,
324
+ "last_build": {
325
+ "@type": "build",
326
+ "@href": "/build/320020210",
327
+ "@representation": "minimal",
328
+ "id": 320020210,
329
+ "number": "817",
330
+ "state": "passed",
331
+ "duration": 87,
332
+ "event_type": "push",
333
+ "previous_state": "passed",
334
+ "pull_request_title": null,
335
+ "pull_request_number": null,
336
+ "started_at": "2017-12-22T01:43:33Z",
337
+ "finished_at": "2017-12-22T01:44:26Z"
338
+ }
339
+ },
340
+ {
341
+ "@type": "branch",
342
+ "@href": "/repo/8014235/branch/staging.tmp",
343
+ "@representation": "standard",
344
+ "name": "staging.tmp",
345
+ "repository": {
346
+ "@type": "repository",
347
+ "@href": "/repo/8014235",
348
+ "@representation": "minimal",
349
+ "id": 8014235,
350
+ "name": "how_is",
351
+ "slug": "how-is/how_is"
352
+ },
353
+ "default_branch": false,
354
+ "exists_on_github": false,
355
+ "last_build": {
356
+ "@type": "build",
357
+ "@href": "/build/354624357",
358
+ "@representation": "minimal",
359
+ "id": 354624357,
360
+ "number": "940",
361
+ "state": "failed",
362
+ "duration": 76,
363
+ "event_type": "push",
364
+ "previous_state": "failed",
365
+ "pull_request_title": null,
366
+ "pull_request_number": null,
367
+ "started_at": "2018-03-17T04:43:59Z",
368
+ "finished_at": "2018-03-17T04:44:21Z"
369
+ }
370
+ },
371
+ {
372
+ "@type": "branch",
373
+ "@href": "/repo/8014235/branch/v22.0.0",
374
+ "@representation": "standard",
375
+ "name": "v22.0.0",
376
+ "repository": {
377
+ "@type": "repository",
378
+ "@href": "/repo/8014235",
379
+ "@representation": "minimal",
380
+ "id": 8014235,
381
+ "name": "how_is",
382
+ "slug": "how-is/how_is"
383
+ },
384
+ "default_branch": false,
385
+ "exists_on_github": false,
386
+ "last_build": {
387
+ "@type": "build",
388
+ "@href": "/build/331007985",
389
+ "@representation": "minimal",
390
+ "id": 331007985,
391
+ "number": "923",
392
+ "state": "passed",
393
+ "duration": 244,
394
+ "event_type": "push",
395
+ "previous_state": null,
396
+ "pull_request_title": null,
397
+ "pull_request_number": null,
398
+ "started_at": "2018-01-19T22:00:19Z",
399
+ "finished_at": "2018-01-19T22:03:04Z"
400
+ }
401
+ },
402
+ {
403
+ "@type": "branch",
404
+ "@href": "/repo/8014235/branch/v23.0.0",
405
+ "@representation": "standard",
406
+ "name": "v23.0.0",
407
+ "repository": {
408
+ "@type": "repository",
409
+ "@href": "/repo/8014235",
410
+ "@representation": "minimal",
411
+ "id": 8014235,
412
+ "name": "how_is",
413
+ "slug": "how-is/how_is"
414
+ },
415
+ "default_branch": false,
416
+ "exists_on_github": false,
417
+ "last_build": {
418
+ "@type": "build",
419
+ "@href": "/build/331046210",
420
+ "@representation": "minimal",
421
+ "id": 331046210,
422
+ "number": "933",
423
+ "state": "passed",
424
+ "duration": 158,
425
+ "event_type": "push",
426
+ "previous_state": null,
427
+ "pull_request_title": null,
428
+ "pull_request_number": null,
429
+ "started_at": "2018-01-19T23:52:13Z",
430
+ "finished_at": "2018-01-19T23:53:53Z"
431
+ }
432
+ },
433
+ {
434
+ "@type": "branch",
435
+ "@href": "/repo/8014235/branch/update-travis-ci",
436
+ "@representation": "standard",
437
+ "name": "update-travis-ci",
438
+ "repository": {
439
+ "@type": "repository",
440
+ "@href": "/repo/8014235",
441
+ "@representation": "minimal",
442
+ "id": 8014235,
443
+ "name": "how_is",
444
+ "slug": "how-is/how_is"
445
+ },
446
+ "default_branch": false,
447
+ "exists_on_github": false,
448
+ "last_build": {
449
+ "@type": "build",
450
+ "@href": "/build/354623621",
451
+ "@representation": "minimal",
452
+ "id": 354623621,
453
+ "number": "938",
454
+ "state": "passed",
455
+ "duration": 258,
456
+ "event_type": "push",
457
+ "previous_state": "passed",
458
+ "pull_request_title": null,
459
+ "pull_request_number": null,
460
+ "started_at": "2018-03-17T04:38:15Z",
461
+ "finished_at": "2018-03-17T04:39:31Z"
462
+ }
463
+ },
464
+ {
465
+ "@type": "branch",
466
+ "@href": "/repo/8014235/branch/v23",
467
+ "@representation": "standard",
468
+ "name": "v23",
469
+ "repository": {
470
+ "@type": "repository",
471
+ "@href": "/repo/8014235",
472
+ "@representation": "minimal",
473
+ "id": 8014235,
474
+ "name": "how_is",
475
+ "slug": "how-is/how_is"
476
+ },
477
+ "default_branch": false,
478
+ "exists_on_github": false,
479
+ "last_build": {
480
+ "@type": "build",
481
+ "@href": "/build/331045500",
482
+ "@representation": "minimal",
483
+ "id": 331045500,
484
+ "number": "929",
485
+ "state": "passed",
486
+ "duration": 136,
487
+ "event_type": "push",
488
+ "previous_state": "passed",
489
+ "pull_request_title": null,
490
+ "pull_request_number": null,
491
+ "started_at": "2018-01-19T23:49:32Z",
492
+ "finished_at": "2018-01-19T23:50:52Z"
493
+ }
494
+ },
495
+ {
496
+ "@type": "branch",
497
+ "@href": "/repo/8014235/branch/v22",
498
+ "@representation": "standard",
499
+ "name": "v22",
500
+ "repository": {
501
+ "@type": "repository",
502
+ "@href": "/repo/8014235",
503
+ "@representation": "minimal",
504
+ "id": 8014235,
505
+ "name": "how_is",
506
+ "slug": "how-is/how_is"
507
+ },
508
+ "default_branch": false,
509
+ "exists_on_github": false,
510
+ "last_build": {
511
+ "@type": "build",
512
+ "@href": "/build/331003494",
513
+ "@representation": "minimal",
514
+ "id": 331003494,
515
+ "number": "919",
516
+ "state": "passed",
517
+ "duration": 138,
518
+ "event_type": "push",
519
+ "previous_state": null,
520
+ "pull_request_title": null,
521
+ "pull_request_number": null,
522
+ "started_at": "2018-01-19T21:48:28Z",
523
+ "finished_at": "2018-01-19T21:50:15Z"
524
+ }
525
+ },
526
+ {
527
+ "@type": "branch",
528
+ "@href": "/repo/8014235/branch/update-readme",
529
+ "@representation": "standard",
530
+ "name": "update-readme",
531
+ "repository": {
532
+ "@type": "repository",
533
+ "@href": "/repo/8014235",
534
+ "@representation": "minimal",
535
+ "id": 8014235,
536
+ "name": "how_is",
537
+ "slug": "how-is/how_is"
538
+ },
539
+ "default_branch": false,
540
+ "exists_on_github": false,
541
+ "last_build": {
542
+ "@type": "build",
543
+ "@href": "/build/330989640",
544
+ "@representation": "minimal",
545
+ "id": 330989640,
546
+ "number": "911",
547
+ "state": "passed",
548
+ "duration": 183,
549
+ "event_type": "push",
550
+ "previous_state": "passed",
551
+ "pull_request_title": null,
552
+ "pull_request_number": null,
553
+ "started_at": "2018-01-19T21:05:39Z",
554
+ "finished_at": "2018-01-19T21:07:38Z"
555
+ }
556
+ },
557
+ {
558
+ "@type": "branch",
559
+ "@href": "/repo/8014235/branch/v21.0.0",
560
+ "@representation": "standard",
561
+ "name": "v21.0.0",
562
+ "repository": {
563
+ "@type": "repository",
564
+ "@href": "/repo/8014235",
565
+ "@representation": "minimal",
566
+ "id": 8014235,
567
+ "name": "how_is",
568
+ "slug": "how-is/how_is"
569
+ },
570
+ "default_branch": false,
571
+ "exists_on_github": false,
572
+ "last_build": {
573
+ "@type": "build",
574
+ "@href": "/build/330982548",
575
+ "@representation": "minimal",
576
+ "id": 330982548,
577
+ "number": "908",
578
+ "state": "passed",
579
+ "duration": 128,
580
+ "event_type": "push",
581
+ "previous_state": null,
582
+ "pull_request_title": null,
583
+ "pull_request_number": null,
584
+ "started_at": "2018-01-19T20:44:45Z",
585
+ "finished_at": "2018-01-19T20:46:01Z"
586
+ }
587
+ },
588
+ {
589
+ "@type": "branch",
590
+ "@href": "/repo/8014235/branch/next-release",
591
+ "@representation": "standard",
592
+ "name": "next-release",
593
+ "repository": {
594
+ "@type": "repository",
595
+ "@href": "/repo/8014235",
596
+ "@representation": "minimal",
597
+ "id": 8014235,
598
+ "name": "how_is",
599
+ "slug": "how-is/how_is"
600
+ },
601
+ "default_branch": false,
602
+ "exists_on_github": false,
603
+ "last_build": {
604
+ "@type": "build",
605
+ "@href": "/build/330970890",
606
+ "@representation": "minimal",
607
+ "id": 330970890,
608
+ "number": "904",
609
+ "state": "passed",
610
+ "duration": 138,
611
+ "event_type": "push",
612
+ "previous_state": "passed",
613
+ "pull_request_title": null,
614
+ "pull_request_number": null,
615
+ "started_at": "2018-01-19T20:11:11Z",
616
+ "finished_at": "2018-01-19T20:13:06Z"
617
+ }
618
+ },
619
+ {
620
+ "@type": "branch",
621
+ "@href": "/repo/8014235/branch/idempotent-issues",
622
+ "@representation": "standard",
623
+ "name": "idempotent-issues",
624
+ "repository": {
625
+ "@type": "repository",
626
+ "@href": "/repo/8014235",
627
+ "@representation": "minimal",
628
+ "id": 8014235,
629
+ "name": "how_is",
630
+ "slug": "how-is/how_is"
631
+ },
632
+ "default_branch": false,
633
+ "exists_on_github": false,
634
+ "last_build": {
635
+ "@type": "build",
636
+ "@href": "/build/329678337",
637
+ "@representation": "minimal",
638
+ "id": 329678337,
639
+ "number": "896",
640
+ "state": "passed",
641
+ "duration": 148,
642
+ "event_type": "push",
643
+ "previous_state": "canceled",
644
+ "pull_request_title": null,
645
+ "pull_request_number": null,
646
+ "started_at": "2018-01-17T04:54:38Z",
647
+ "finished_at": "2018-01-17T04:59:04Z"
648
+ }
649
+ },
650
+ {
651
+ "@type": "branch",
652
+ "@href": "/repo/8014235/branch/v20.0.0",
653
+ "@representation": "standard",
654
+ "name": "v20.0.0",
655
+ "repository": {
656
+ "@type": "repository",
657
+ "@href": "/repo/8014235",
658
+ "@representation": "minimal",
659
+ "id": 8014235,
660
+ "name": "how_is",
661
+ "slug": "how-is/how_is"
662
+ },
663
+ "default_branch": false,
664
+ "exists_on_github": false,
665
+ "last_build": {
666
+ "@type": "build",
667
+ "@href": "/build/320022061",
668
+ "@representation": "minimal",
669
+ "id": 320022061,
670
+ "number": "821",
671
+ "state": "passed",
672
+ "duration": 123,
673
+ "event_type": "push",
674
+ "previous_state": null,
675
+ "pull_request_title": null,
676
+ "pull_request_number": null,
677
+ "started_at": "2017-12-22T01:48:22Z",
678
+ "finished_at": "2017-12-22T01:49:33Z"
679
+ }
680
+ },
681
+ {
682
+ "@type": "branch",
683
+ "@href": "/repo/8014235/branch/staging",
684
+ "@representation": "standard",
685
+ "name": "staging",
686
+ "repository": {
687
+ "@type": "repository",
688
+ "@href": "/repo/8014235",
689
+ "@representation": "minimal",
690
+ "id": 8014235,
691
+ "name": "how_is",
692
+ "slug": "how-is/how_is"
693
+ },
694
+ "default_branch": false,
695
+ "exists_on_github": true,
696
+ "last_build": {
697
+ "@type": "build",
698
+ "@href": "/build/354836049",
699
+ "@representation": "minimal",
700
+ "id": 354836049,
701
+ "number": "956",
702
+ "state": "passed",
703
+ "duration": 275,
704
+ "event_type": "push",
705
+ "previous_state": "passed",
706
+ "pull_request_title": null,
707
+ "pull_request_number": null,
708
+ "started_at": "2018-03-17T21:14:28Z",
709
+ "finished_at": "2018-03-17T21:16:19Z"
710
+ }
711
+ },
712
+ {
713
+ "@type": "branch",
714
+ "@href": "/repo/8014235/branch/rewrite",
715
+ "@representation": "standard",
716
+ "name": "rewrite",
717
+ "repository": {
718
+ "@type": "repository",
719
+ "@href": "/repo/8014235",
720
+ "@representation": "minimal",
721
+ "id": 8014235,
722
+ "name": "how_is",
723
+ "slug": "how-is/how_is"
724
+ },
725
+ "default_branch": false,
726
+ "exists_on_github": false,
727
+ "last_build": {
728
+ "@type": "build",
729
+ "@href": "/build/320016627",
730
+ "@representation": "minimal",
731
+ "id": 320016627,
732
+ "number": "811",
733
+ "state": "passed",
734
+ "duration": 178,
735
+ "event_type": "push",
736
+ "previous_state": "passed",
737
+ "pull_request_title": null,
738
+ "pull_request_number": null,
739
+ "started_at": "2017-12-22T01:33:44Z",
740
+ "finished_at": "2017-12-22T01:36:04Z"
741
+ }
742
+ },
743
+ {
744
+ "@type": "branch",
745
+ "@href": "/repo/8014235/branch/replace-tessellator-fetcher",
746
+ "@representation": "standard",
747
+ "name": "replace-tessellator-fetcher",
748
+ "repository": {
749
+ "@type": "repository",
750
+ "@href": "/repo/8014235",
751
+ "@representation": "minimal",
752
+ "id": 8014235,
753
+ "name": "how_is",
754
+ "slug": "how-is/how_is"
755
+ },
756
+ "default_branch": false,
757
+ "exists_on_github": false,
758
+ "last_build": {
759
+ "@type": "build",
760
+ "@href": "/build/313727805",
761
+ "@representation": "minimal",
762
+ "id": 313727805,
763
+ "number": "762",
764
+ "state": "passed",
765
+ "duration": 184,
766
+ "event_type": "push",
767
+ "previous_state": null,
768
+ "pull_request_title": null,
769
+ "pull_request_number": null,
770
+ "started_at": "2017-12-08T22:50:27Z",
771
+ "finished_at": "2017-12-08T22:52:30Z"
772
+ }
773
+ },
774
+ {
775
+ "@type": "branch",
776
+ "@href": "/repo/8014235/branch/remove-pulse",
777
+ "@representation": "standard",
778
+ "name": "remove-pulse",
779
+ "repository": {
780
+ "@type": "repository",
781
+ "@href": "/repo/8014235",
782
+ "@representation": "minimal",
783
+ "id": 8014235,
784
+ "name": "how_is",
785
+ "slug": "how-is/how_is"
786
+ },
787
+ "default_branch": false,
788
+ "exists_on_github": false,
789
+ "last_build": {
790
+ "@type": "build",
791
+ "@href": "/build/303550935",
792
+ "@representation": "minimal",
793
+ "id": 303550935,
794
+ "number": "758",
795
+ "state": "passed",
796
+ "duration": 97,
797
+ "event_type": "push",
798
+ "previous_state": null,
799
+ "pull_request_title": null,
800
+ "pull_request_number": null,
801
+ "started_at": "2017-11-17T14:13:18Z",
802
+ "finished_at": "2017-11-17T14:14:15Z"
803
+ }
804
+ },
805
+ {
806
+ "@type": "branch",
807
+ "@href": "/repo/8014235/branch/v19.0.0",
808
+ "@representation": "standard",
809
+ "name": "v19.0.0",
810
+ "repository": {
811
+ "@type": "repository",
812
+ "@href": "/repo/8014235",
813
+ "@representation": "minimal",
814
+ "id": 8014235,
815
+ "name": "how_is",
816
+ "slug": "how-is/how_is"
817
+ },
818
+ "default_branch": false,
819
+ "exists_on_github": false,
820
+ "last_build": {
821
+ "@type": "build",
822
+ "@href": "/build/276113648",
823
+ "@representation": "minimal",
824
+ "id": 276113648,
825
+ "number": "641",
826
+ "state": "passed",
827
+ "duration": 69,
828
+ "event_type": "push",
829
+ "previous_state": null,
830
+ "pull_request_title": null,
831
+ "pull_request_number": null,
832
+ "started_at": "2017-09-16T00:14:35Z",
833
+ "finished_at": "2017-09-16T00:15:21Z"
834
+ }
835
+ },
836
+ {
837
+ "@type": "branch",
838
+ "@href": "/repo/8014235/branch/switch-from-pulse-to-contributions",
839
+ "@representation": "standard",
840
+ "name": "switch-from-pulse-to-contributions",
841
+ "repository": {
842
+ "@type": "repository",
843
+ "@href": "/repo/8014235",
844
+ "@representation": "minimal",
845
+ "id": 8014235,
846
+ "name": "how_is",
847
+ "slug": "how-is/how_is"
848
+ },
849
+ "default_branch": false,
850
+ "exists_on_github": false,
851
+ "last_build": {
852
+ "@type": "build",
853
+ "@href": "/build/303539446",
854
+ "@representation": "minimal",
855
+ "id": 303539446,
856
+ "number": "754",
857
+ "state": "passed",
858
+ "duration": 130,
859
+ "event_type": "push",
860
+ "previous_state": "passed",
861
+ "pull_request_title": null,
862
+ "pull_request_number": null,
863
+ "started_at": "2017-11-17T13:44:40Z",
864
+ "finished_at": "2017-11-17T13:45:50Z"
865
+ }
866
+ },
867
+ {
868
+ "@type": "branch",
869
+ "@href": "/repo/8014235/branch/trying.tmp",
870
+ "@representation": "standard",
871
+ "name": "trying.tmp",
872
+ "repository": {
873
+ "@type": "repository",
874
+ "@href": "/repo/8014235",
875
+ "@representation": "minimal",
876
+ "id": 8014235,
877
+ "name": "how_is",
878
+ "slug": "how-is/how_is"
879
+ },
880
+ "default_branch": false,
881
+ "exists_on_github": true,
882
+ "last_build": null
883
+ },
884
+ {
885
+ "@type": "branch",
886
+ "@href": "/repo/8014235/branch/auto",
887
+ "@representation": "standard",
888
+ "name": "auto",
889
+ "repository": {
890
+ "@type": "repository",
891
+ "@href": "/repo/8014235",
892
+ "@representation": "minimal",
893
+ "id": 8014235,
894
+ "name": "how_is",
895
+ "slug": "how-is/how_is"
896
+ },
897
+ "default_branch": false,
898
+ "exists_on_github": true,
899
+ "last_build": {
900
+ "@type": "build",
901
+ "@href": "/build/331045662",
902
+ "@representation": "minimal",
903
+ "id": 331045662,
904
+ "number": "931",
905
+ "state": "passed",
906
+ "duration": 121,
907
+ "event_type": "push",
908
+ "previous_state": "passed",
909
+ "pull_request_title": null,
910
+ "pull_request_number": null,
911
+ "started_at": "2018-01-19T23:50:15Z",
912
+ "finished_at": "2018-01-19T23:51:27Z"
913
+ }
914
+ },
915
+ {
916
+ "@type": "branch",
917
+ "@href": "/repo/8014235/branch/tests",
918
+ "@representation": "standard",
919
+ "name": "tests",
920
+ "repository": {
921
+ "@type": "repository",
922
+ "@href": "/repo/8014235",
923
+ "@representation": "minimal",
924
+ "id": 8014235,
925
+ "name": "how_is",
926
+ "slug": "how-is/how_is"
927
+ },
928
+ "default_branch": false,
929
+ "exists_on_github": false,
930
+ "last_build": {
931
+ "@type": "build",
932
+ "@href": "/build/281809537",
933
+ "@representation": "minimal",
934
+ "id": 281809537,
935
+ "number": "695",
936
+ "state": "passed",
937
+ "duration": 71,
938
+ "event_type": "push",
939
+ "previous_state": "passed",
940
+ "pull_request_title": null,
941
+ "pull_request_number": null,
942
+ "started_at": "2017-10-01T02:50:29Z",
943
+ "finished_at": "2017-10-01T02:51:13Z"
944
+ }
945
+ },
946
+ {
947
+ "@type": "branch",
948
+ "@href": "/repo/8014235/branch/refactor",
949
+ "@representation": "standard",
950
+ "name": "refactor",
951
+ "repository": {
952
+ "@type": "repository",
953
+ "@href": "/repo/8014235",
954
+ "@representation": "minimal",
955
+ "id": 8014235,
956
+ "name": "how_is",
957
+ "slug": "how-is/how_is"
958
+ },
959
+ "default_branch": false,
960
+ "exists_on_github": false,
961
+ "last_build": {
962
+ "@type": "build",
963
+ "@href": "/build/276453547",
964
+ "@representation": "minimal",
965
+ "id": 276453547,
966
+ "number": "660",
967
+ "state": "passed",
968
+ "duration": 69,
969
+ "event_type": "push",
970
+ "previous_state": "passed",
971
+ "pull_request_title": null,
972
+ "pull_request_number": null,
973
+ "started_at": "2017-09-17T08:02:00Z",
974
+ "finished_at": "2017-09-17T08:02:41Z"
975
+ }
976
+ },
977
+ {
978
+ "@type": "branch",
979
+ "@href": "/repo/8014235/branch/release-v24.0.0",
980
+ "@representation": "standard",
981
+ "name": "release-v24.0.0",
982
+ "repository": {
983
+ "@type": "repository",
984
+ "@href": "/repo/8014235",
985
+ "@representation": "minimal",
986
+ "id": 8014235,
987
+ "name": "how_is",
988
+ "slug": "how-is/how_is"
989
+ },
990
+ "default_branch": false,
991
+ "exists_on_github": false,
992
+ "last_build": null
993
+ }
994
+ ]
995
+ }
996
+ http_version:
997
+ recorded_at: Fri, 30 Mar 2018 22:03:31 GMT
998
+ - request:
999
+ method: get
1000
+ uri: https://api.travis-ci.org/repo/how-is%2Fhow_is/builds?branch.name=master&event_type=push
1001
+ body:
1002
+ encoding: US-ASCII
1003
+ string: ''
1004
+ headers:
1005
+ Accept-Encoding:
1006
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
1007
+ Accept:
1008
+ - application/json
1009
+ User-Agent:
1010
+ - how_is/24.0.0 (https://github.com/how-is/how_is/)
1011
+ Host:
1012
+ - api.travis-ci.org
1013
+ Travis-Api-Version:
1014
+ - '3'
1015
+ response:
1016
+ status:
1017
+ code: 200
1018
+ message: OK
1019
+ headers:
1020
+ Connection:
1021
+ - keep-alive
1022
+ Server:
1023
+ - nginx
1024
+ Date:
1025
+ - Fri, 30 Mar 2018 22:03:31 GMT
1026
+ Content-Type:
1027
+ - application/json
1028
+ Transfer-Encoding:
1029
+ - chunked
1030
+ Access-Control-Allow-Origin:
1031
+ - "*"
1032
+ Access-Control-Allow-Credentials:
1033
+ - 'true'
1034
+ Access-Control-Expose-Headers:
1035
+ - Content-Type, Cache-Control, Expires, Etag, Last-Modified, X-Request-ID
1036
+ Strict-Transport-Security:
1037
+ - max-age=31536000
1038
+ X-Endpoint:
1039
+ - Travis::API::V3::Services::Builds::Find
1040
+ X-Oauth-Scopes:
1041
+ - ''
1042
+ Vary:
1043
+ - Accept-Encoding
1044
+ X-Rack-Cache:
1045
+ - miss
1046
+ X-Request-Id:
1047
+ - cfecc72d-9824-467f-94da-e16d02521a67
1048
+ Via:
1049
+ - 1.1 vegur
1050
+ body:
1051
+ encoding: ASCII-8BIT
1052
+ string: |-
1053
+ {
1054
+ "@type": "builds",
1055
+ "@href": "/repo/how-is%2Fhow_is/builds?event_type=push&branch.name=master",
1056
+ "@representation": "standard",
1057
+ "@pagination": {
1058
+ "limit": 25,
1059
+ "offset": 0,
1060
+ "count": 175,
1061
+ "is_first": true,
1062
+ "is_last": false,
1063
+ "next": {
1064
+ "@href": "/repo/how-is%2Fhow_is/builds?branch.name=master&event_type=push&limit=25&offset=25",
1065
+ "offset": 25,
1066
+ "limit": 25
1067
+ },
1068
+ "prev": null,
1069
+ "first": {
1070
+ "@href": "/repo/how-is%2Fhow_is/builds?event_type=push&branch.name=master",
1071
+ "offset": 0,
1072
+ "limit": 25
1073
+ },
1074
+ "last": {
1075
+ "@href": "/repo/how-is%2Fhow_is/builds?branch.name=master&event_type=push&limit=25&offset=150",
1076
+ "offset": 150,
1077
+ "limit": 25
1078
+ }
1079
+ },
1080
+ "builds": [
1081
+ {
1082
+ "@type": "build",
1083
+ "@href": "/build/354836524",
1084
+ "@representation": "standard",
1085
+ "@permissions": {
1086
+ "read": true,
1087
+ "cancel": false,
1088
+ "restart": false
1089
+ },
1090
+ "id": 354836524,
1091
+ "number": "957",
1092
+ "state": "passed",
1093
+ "duration": 297,
1094
+ "event_type": "push",
1095
+ "previous_state": "passed",
1096
+ "pull_request_title": null,
1097
+ "pull_request_number": null,
1098
+ "started_at": "2018-03-17T21:16:29Z",
1099
+ "finished_at": "2018-03-17T21:18:08Z",
1100
+ "repository": {
1101
+ "@type": "repository",
1102
+ "@href": "/repo/8014235",
1103
+ "@representation": "minimal",
1104
+ "id": 8014235,
1105
+ "name": "how_is",
1106
+ "slug": "how-is/how_is"
1107
+ },
1108
+ "branch": {
1109
+ "@type": "branch",
1110
+ "@href": "/repo/8014235/branch/master",
1111
+ "@representation": "minimal",
1112
+ "name": "master"
1113
+ },
1114
+ "tag": null,
1115
+ "commit": {
1116
+ "@type": "commit",
1117
+ "@representation": "minimal",
1118
+ "id": 105690549,
1119
+ "sha": "ba7d8c7b2271df7fb5f3df75ec13498245571756",
1120
+ "ref": "refs/heads/master",
1121
+ "message": "Merge #225\n\n225: bump version to v24.0.0; add json dependency; add future_changelog Rake task r=duckinator a=duckinator",
1122
+ "compare_url": "https://github.com/how-is/how_is/compare/4ab31c7c7150...ba7d8c7b2271",
1123
+ "committed_at": "2018-03-17T21:14:21Z"
1124
+ },
1125
+ "jobs": [
1126
+ {
1127
+ "@type": "job",
1128
+ "@href": "/job/354836525",
1129
+ "@representation": "minimal",
1130
+ "id": 354836525
1131
+ },
1132
+ {
1133
+ "@type": "job",
1134
+ "@href": "/job/354836526",
1135
+ "@representation": "minimal",
1136
+ "id": 354836526
1137
+ },
1138
+ {
1139
+ "@type": "job",
1140
+ "@href": "/job/354836527",
1141
+ "@representation": "minimal",
1142
+ "id": 354836527
1143
+ },
1144
+ {
1145
+ "@type": "job",
1146
+ "@href": "/job/354836528",
1147
+ "@representation": "minimal",
1148
+ "id": 354836528
1149
+ }
1150
+ ],
1151
+ "stages": [
1152
+
1153
+ ],
1154
+ "created_by": {
1155
+ "@type": "user",
1156
+ "@href": "/user/8",
1157
+ "@representation": "minimal",
1158
+ "id": 8,
1159
+ "login": "svenfuchs"
1160
+ },
1161
+ "updated_at": "2018-03-17T21:18:08.464Z"
1162
+ },
1163
+ {
1164
+ "@type": "build",
1165
+ "@href": "/build/354832513",
1166
+ "@representation": "standard",
1167
+ "@permissions": {
1168
+ "read": true,
1169
+ "cancel": false,
1170
+ "restart": false
1171
+ },
1172
+ "id": 354832513,
1173
+ "number": "953",
1174
+ "state": "passed",
1175
+ "duration": 287,
1176
+ "event_type": "push",
1177
+ "previous_state": "passed",
1178
+ "pull_request_title": null,
1179
+ "pull_request_number": null,
1180
+ "started_at": "2018-03-17T21:01:12Z",
1181
+ "finished_at": "2018-03-17T21:02:49Z",
1182
+ "repository": {
1183
+ "@type": "repository",
1184
+ "@href": "/repo/8014235",
1185
+ "@representation": "minimal",
1186
+ "id": 8014235,
1187
+ "name": "how_is",
1188
+ "slug": "how-is/how_is"
1189
+ },
1190
+ "branch": {
1191
+ "@type": "branch",
1192
+ "@href": "/repo/8014235/branch/master",
1193
+ "@representation": "minimal",
1194
+ "name": "master"
1195
+ },
1196
+ "tag": null,
1197
+ "commit": {
1198
+ "@type": "commit",
1199
+ "@representation": "minimal",
1200
+ "id": 105689302,
1201
+ "sha": "4ab31c7c715039010e40aebdc12120a1b7071c48",
1202
+ "ref": "refs/heads/master",
1203
+ "message": "Merge #224\n\n224: Improve error output; update README. r=duckinator a=duckinator",
1204
+ "compare_url": "https://github.com/how-is/how_is/compare/e70fb33a8d0a...4ab31c7c7150",
1205
+ "committed_at": "2018-03-17T20:59:01Z"
1206
+ },
1207
+ "jobs": [
1208
+ {
1209
+ "@type": "job",
1210
+ "@href": "/job/354832514",
1211
+ "@representation": "minimal",
1212
+ "id": 354832514
1213
+ },
1214
+ {
1215
+ "@type": "job",
1216
+ "@href": "/job/354832515",
1217
+ "@representation": "minimal",
1218
+ "id": 354832515
1219
+ },
1220
+ {
1221
+ "@type": "job",
1222
+ "@href": "/job/354832516",
1223
+ "@representation": "minimal",
1224
+ "id": 354832516
1225
+ },
1226
+ {
1227
+ "@type": "job",
1228
+ "@href": "/job/354832517",
1229
+ "@representation": "minimal",
1230
+ "id": 354832517
1231
+ }
1232
+ ],
1233
+ "stages": [
1234
+
1235
+ ],
1236
+ "created_by": {
1237
+ "@type": "user",
1238
+ "@href": "/user/8",
1239
+ "@representation": "minimal",
1240
+ "id": 8,
1241
+ "login": "svenfuchs"
1242
+ },
1243
+ "updated_at": "2018-03-17T21:02:49.228Z"
1244
+ },
1245
+ {
1246
+ "@type": "build",
1247
+ "@href": "/build/354810678",
1248
+ "@representation": "standard",
1249
+ "@permissions": {
1250
+ "read": true,
1251
+ "cancel": false,
1252
+ "restart": false
1253
+ },
1254
+ "id": 354810678,
1255
+ "number": "946",
1256
+ "state": "passed",
1257
+ "duration": 275,
1258
+ "event_type": "push",
1259
+ "previous_state": "passed",
1260
+ "pull_request_title": null,
1261
+ "pull_request_number": null,
1262
+ "started_at": "2018-03-17T19:37:15Z",
1263
+ "finished_at": "2018-03-17T19:38:37Z",
1264
+ "repository": {
1265
+ "@type": "repository",
1266
+ "@href": "/repo/8014235",
1267
+ "@representation": "minimal",
1268
+ "id": 8014235,
1269
+ "name": "how_is",
1270
+ "slug": "how-is/how_is"
1271
+ },
1272
+ "branch": {
1273
+ "@type": "branch",
1274
+ "@href": "/repo/8014235/branch/master",
1275
+ "@representation": "minimal",
1276
+ "name": "master"
1277
+ },
1278
+ "tag": null,
1279
+ "commit": {
1280
+ "@type": "commit",
1281
+ "@representation": "minimal",
1282
+ "id": 105682429,
1283
+ "sha": "e70fb33a8d0aab421e4d939c4398115164b9f338",
1284
+ "ref": "refs/heads/master",
1285
+ "message": "Merge pull request #223 from how-is/update-travis-ci\n\nupdate .travis.yml.",
1286
+ "compare_url": "https://github.com/how-is/how_is/compare/284563bd4859...e70fb33a8d0a",
1287
+ "committed_at": "2018-03-17T19:37:08Z"
1288
+ },
1289
+ "jobs": [
1290
+ {
1291
+ "@type": "job",
1292
+ "@href": "/job/354810679",
1293
+ "@representation": "minimal",
1294
+ "id": 354810679
1295
+ },
1296
+ {
1297
+ "@type": "job",
1298
+ "@href": "/job/354810680",
1299
+ "@representation": "minimal",
1300
+ "id": 354810680
1301
+ },
1302
+ {
1303
+ "@type": "job",
1304
+ "@href": "/job/354810681",
1305
+ "@representation": "minimal",
1306
+ "id": 354810681
1307
+ },
1308
+ {
1309
+ "@type": "job",
1310
+ "@href": "/job/354810682",
1311
+ "@representation": "minimal",
1312
+ "id": 354810682
1313
+ }
1314
+ ],
1315
+ "stages": [
1316
+
1317
+ ],
1318
+ "created_by": {
1319
+ "@type": "user",
1320
+ "@href": "/user/3548",
1321
+ "@representation": "minimal",
1322
+ "id": 3548,
1323
+ "login": "duckinator"
1324
+ },
1325
+ "updated_at": "2018-03-17T19:38:37.821Z"
1326
+ },
1327
+ {
1328
+ "@type": "build",
1329
+ "@href": "/build/331045992",
1330
+ "@representation": "standard",
1331
+ "@permissions": {
1332
+ "read": true,
1333
+ "cancel": false,
1334
+ "restart": false
1335
+ },
1336
+ "id": 331045992,
1337
+ "number": "932",
1338
+ "state": "passed",
1339
+ "duration": 132,
1340
+ "event_type": "push",
1341
+ "previous_state": "passed",
1342
+ "pull_request_title": null,
1343
+ "pull_request_number": null,
1344
+ "started_at": "2018-01-19T23:51:37Z",
1345
+ "finished_at": "2018-01-19T23:52:50Z",
1346
+ "repository": {
1347
+ "@type": "repository",
1348
+ "@href": "/repo/8014235",
1349
+ "@representation": "minimal",
1350
+ "id": 8014235,
1351
+ "name": "how_is",
1352
+ "slug": "how-is/how_is"
1353
+ },
1354
+ "branch": {
1355
+ "@type": "branch",
1356
+ "@href": "/repo/8014235/branch/master",
1357
+ "@representation": "minimal",
1358
+ "name": "master"
1359
+ },
1360
+ "tag": null,
1361
+ "commit": {
1362
+ "@type": "commit",
1363
+ "@representation": "minimal",
1364
+ "id": 98343318,
1365
+ "sha": "284563bd4859b839209b49788db7443063fd713c",
1366
+ "ref": "refs/heads/master",
1367
+ "message": "Auto merge of #221 - how-is:v23, r=duckinator\n\nMake config-based reports work again.\n\nlmao",
1368
+ "compare_url": "https://github.com/how-is/how_is/compare/1ebef67d24b1...284563bd4859",
1369
+ "committed_at": "2018-01-19T23:50:08Z"
1370
+ },
1371
+ "jobs": [
1372
+ {
1373
+ "@type": "job",
1374
+ "@href": "/job/331045993",
1375
+ "@representation": "minimal",
1376
+ "id": 331045993
1377
+ },
1378
+ {
1379
+ "@type": "job",
1380
+ "@href": "/job/331045994",
1381
+ "@representation": "minimal",
1382
+ "id": 331045994
1383
+ }
1384
+ ],
1385
+ "stages": [
1386
+
1387
+ ],
1388
+ "created_by": {
1389
+ "@type": "user",
1390
+ "@href": "/user/376802",
1391
+ "@representation": "minimal",
1392
+ "id": 376802,
1393
+ "login": "bundlerbot"
1394
+ },
1395
+ "updated_at": "2018-01-19T23:52:50.292Z"
1396
+ },
1397
+ {
1398
+ "@type": "build",
1399
+ "@href": "/build/331006508",
1400
+ "@representation": "standard",
1401
+ "@permissions": {
1402
+ "read": true,
1403
+ "cancel": false,
1404
+ "restart": false
1405
+ },
1406
+ "id": 331006508,
1407
+ "number": "922",
1408
+ "state": "passed",
1409
+ "duration": 250,
1410
+ "event_type": "push",
1411
+ "previous_state": "passed",
1412
+ "pull_request_title": null,
1413
+ "pull_request_number": null,
1414
+ "started_at": "2018-01-19T21:56:00Z",
1415
+ "finished_at": "2018-01-19T21:58:33Z",
1416
+ "repository": {
1417
+ "@type": "repository",
1418
+ "@href": "/repo/8014235",
1419
+ "@representation": "minimal",
1420
+ "id": 8014235,
1421
+ "name": "how_is",
1422
+ "slug": "how-is/how_is"
1423
+ },
1424
+ "branch": {
1425
+ "@type": "branch",
1426
+ "@href": "/repo/8014235/branch/master",
1427
+ "@representation": "minimal",
1428
+ "name": "master"
1429
+ },
1430
+ "tag": null,
1431
+ "commit": {
1432
+ "@type": "commit",
1433
+ "@representation": "minimal",
1434
+ "id": 98332284,
1435
+ "sha": "1ebef67d24b1adab8afcb45c5db24696fd2e1ee8",
1436
+ "ref": "refs/heads/master",
1437
+ "message": "Auto merge of #220 - how-is:v22, r=duckinator\n\nMake CLI parser store the date when passed --config.",
1438
+ "compare_url": "https://github.com/how-is/how_is/compare/ef72ff67f005...1ebef67d24b1",
1439
+ "committed_at": "2018-01-19T21:52:59Z"
1440
+ },
1441
+ "jobs": [
1442
+ {
1443
+ "@type": "job",
1444
+ "@href": "/job/331006509",
1445
+ "@representation": "minimal",
1446
+ "id": 331006509
1447
+ },
1448
+ {
1449
+ "@type": "job",
1450
+ "@href": "/job/331006510",
1451
+ "@representation": "minimal",
1452
+ "id": 331006510
1453
+ }
1454
+ ],
1455
+ "stages": [
1456
+
1457
+ ],
1458
+ "created_by": {
1459
+ "@type": "user",
1460
+ "@href": "/user/376802",
1461
+ "@representation": "minimal",
1462
+ "id": 376802,
1463
+ "login": "bundlerbot"
1464
+ },
1465
+ "updated_at": "2018-01-19T21:58:33.957Z"
1466
+ },
1467
+ {
1468
+ "@type": "build",
1469
+ "@href": "/build/330993922",
1470
+ "@representation": "standard",
1471
+ "@permissions": {
1472
+ "read": true,
1473
+ "cancel": false,
1474
+ "restart": false
1475
+ },
1476
+ "id": 330993922,
1477
+ "number": "914",
1478
+ "state": "passed",
1479
+ "duration": 160,
1480
+ "event_type": "push",
1481
+ "previous_state": "passed",
1482
+ "pull_request_title": null,
1483
+ "pull_request_number": null,
1484
+ "started_at": "2018-01-19T21:18:51Z",
1485
+ "finished_at": "2018-01-19T21:20:32Z",
1486
+ "repository": {
1487
+ "@type": "repository",
1488
+ "@href": "/repo/8014235",
1489
+ "@representation": "minimal",
1490
+ "id": 8014235,
1491
+ "name": "how_is",
1492
+ "slug": "how-is/how_is"
1493
+ },
1494
+ "branch": {
1495
+ "@type": "branch",
1496
+ "@href": "/repo/8014235/branch/master",
1497
+ "@representation": "minimal",
1498
+ "name": "master"
1499
+ },
1500
+ "tag": null,
1501
+ "commit": {
1502
+ "@type": "commit",
1503
+ "@representation": "minimal",
1504
+ "id": 98328539,
1505
+ "sha": "ef72ff67f00503db19fc434b1e84ebef6b9fcd68",
1506
+ "ref": "refs/heads/master",
1507
+ "message": "Auto merge of #219 - how-is:update-readme, r=duckinator\n\nUpdate readme",
1508
+ "compare_url": "https://github.com/how-is/how_is/compare/6de8a069c8a2...ef72ff67f005",
1509
+ "committed_at": "2018-01-19T21:16:17Z"
1510
+ },
1511
+ "jobs": [
1512
+ {
1513
+ "@type": "job",
1514
+ "@href": "/job/330993923",
1515
+ "@representation": "minimal",
1516
+ "id": 330993923
1517
+ },
1518
+ {
1519
+ "@type": "job",
1520
+ "@href": "/job/330993924",
1521
+ "@representation": "minimal",
1522
+ "id": 330993924
1523
+ }
1524
+ ],
1525
+ "stages": [
1526
+
1527
+ ],
1528
+ "created_by": {
1529
+ "@type": "user",
1530
+ "@href": "/user/376802",
1531
+ "@representation": "minimal",
1532
+ "id": 376802,
1533
+ "login": "bundlerbot"
1534
+ },
1535
+ "updated_at": "2018-01-19T21:20:32.412Z"
1536
+ },
1537
+ {
1538
+ "@type": "build",
1539
+ "@href": "/build/330982430",
1540
+ "@representation": "standard",
1541
+ "@permissions": {
1542
+ "read": true,
1543
+ "cancel": false,
1544
+ "restart": false
1545
+ },
1546
+ "id": 330982430,
1547
+ "number": "907",
1548
+ "state": "passed",
1549
+ "duration": 180,
1550
+ "event_type": "push",
1551
+ "previous_state": "passed",
1552
+ "pull_request_title": null,
1553
+ "pull_request_number": null,
1554
+ "started_at": "2018-01-19T20:44:25Z",
1555
+ "finished_at": "2018-01-19T20:46:24Z",
1556
+ "repository": {
1557
+ "@type": "repository",
1558
+ "@href": "/repo/8014235",
1559
+ "@representation": "minimal",
1560
+ "id": 8014235,
1561
+ "name": "how_is",
1562
+ "slug": "how-is/how_is"
1563
+ },
1564
+ "branch": {
1565
+ "@type": "branch",
1566
+ "@href": "/repo/8014235/branch/master",
1567
+ "@representation": "minimal",
1568
+ "name": "master"
1569
+ },
1570
+ "tag": null,
1571
+ "commit": {
1572
+ "@type": "commit",
1573
+ "@representation": "minimal",
1574
+ "id": 98324838,
1575
+ "sha": "6de8a069c8a277f882737894e0975aaefbba20bc",
1576
+ "ref": "refs/heads/master",
1577
+ "message": "Auto merge of #218 - how-is:next-release, r=duckinator\n\nRelease v21.0.0",
1578
+ "compare_url": "https://github.com/how-is/how_is/compare/f15640277e26...6de8a069c8a2",
1579
+ "committed_at": "2018-01-19T20:42:48Z"
1580
+ },
1581
+ "jobs": [
1582
+ {
1583
+ "@type": "job",
1584
+ "@href": "/job/330982431",
1585
+ "@representation": "minimal",
1586
+ "id": 330982431
1587
+ },
1588
+ {
1589
+ "@type": "job",
1590
+ "@href": "/job/330982432",
1591
+ "@representation": "minimal",
1592
+ "id": 330982432
1593
+ }
1594
+ ],
1595
+ "stages": [
1596
+
1597
+ ],
1598
+ "created_by": {
1599
+ "@type": "user",
1600
+ "@href": "/user/376802",
1601
+ "@representation": "minimal",
1602
+ "id": 376802,
1603
+ "login": "bundlerbot"
1604
+ },
1605
+ "updated_at": "2018-01-19T20:46:24.965Z"
1606
+ },
1607
+ {
1608
+ "@type": "build",
1609
+ "@href": "/build/329739681",
1610
+ "@representation": "standard",
1611
+ "@permissions": {
1612
+ "read": true,
1613
+ "cancel": false,
1614
+ "restart": false
1615
+ },
1616
+ "id": 329739681,
1617
+ "number": "899",
1618
+ "state": "passed",
1619
+ "duration": 121,
1620
+ "event_type": "push",
1621
+ "previous_state": "passed",
1622
+ "pull_request_title": null,
1623
+ "pull_request_number": null,
1624
+ "started_at": "2018-01-17T05:05:18Z",
1625
+ "finished_at": "2018-01-17T05:06:29Z",
1626
+ "repository": {
1627
+ "@type": "repository",
1628
+ "@href": "/repo/8014235",
1629
+ "@representation": "minimal",
1630
+ "id": 8014235,
1631
+ "name": "how_is",
1632
+ "slug": "how-is/how_is"
1633
+ },
1634
+ "branch": {
1635
+ "@type": "branch",
1636
+ "@href": "/repo/8014235/branch/master",
1637
+ "@representation": "minimal",
1638
+ "name": "master"
1639
+ },
1640
+ "tag": null,
1641
+ "commit": {
1642
+ "@type": "commit",
1643
+ "@representation": "minimal",
1644
+ "id": 97953870,
1645
+ "sha": "f15640277e26fad5c26d904011f15b4945726a00",
1646
+ "ref": "refs/heads/master",
1647
+ "message": "Auto merge of #217 - how-is:idempotent-issues, r=duckinator\n\nIdempotent reports\n\nWorking on making issue reports idempotent!",
1648
+ "compare_url": "https://github.com/how-is/how_is/compare/72b35532d3e8...f15640277e26",
1649
+ "committed_at": "2018-01-17T05:03:45Z"
1650
+ },
1651
+ "jobs": [
1652
+ {
1653
+ "@type": "job",
1654
+ "@href": "/job/329739682",
1655
+ "@representation": "minimal",
1656
+ "id": 329739682
1657
+ },
1658
+ {
1659
+ "@type": "job",
1660
+ "@href": "/job/329739683",
1661
+ "@representation": "minimal",
1662
+ "id": 329739683
1663
+ }
1664
+ ],
1665
+ "stages": [
1666
+
1667
+ ],
1668
+ "created_by": {
1669
+ "@type": "user",
1670
+ "@href": "/user/376802",
1671
+ "@representation": "minimal",
1672
+ "id": 376802,
1673
+ "login": "bundlerbot"
1674
+ },
1675
+ "updated_at": "2018-01-17T05:06:29.106Z"
1676
+ },
1677
+ {
1678
+ "@type": "build",
1679
+ "@href": "/build/320021447",
1680
+ "@representation": "standard",
1681
+ "@permissions": {
1682
+ "read": true,
1683
+ "cancel": false,
1684
+ "restart": false
1685
+ },
1686
+ "id": 320021447,
1687
+ "number": "820",
1688
+ "state": "passed",
1689
+ "duration": 117,
1690
+ "event_type": "push",
1691
+ "previous_state": "passed",
1692
+ "pull_request_title": null,
1693
+ "pull_request_number": null,
1694
+ "started_at": "2017-12-22T01:46:25Z",
1695
+ "finished_at": "2017-12-22T01:47:25Z",
1696
+ "repository": {
1697
+ "@type": "repository",
1698
+ "@href": "/repo/8014235",
1699
+ "@representation": "minimal",
1700
+ "id": 8014235,
1701
+ "name": "how_is",
1702
+ "slug": "how-is/how_is"
1703
+ },
1704
+ "branch": {
1705
+ "@type": "branch",
1706
+ "@href": "/repo/8014235/branch/master",
1707
+ "@representation": "minimal",
1708
+ "name": "master"
1709
+ },
1710
+ "tag": null,
1711
+ "commit": {
1712
+ "@type": "commit",
1713
+ "@representation": "minimal",
1714
+ "id": 95155700,
1715
+ "sha": "72b35532d3e82371a959d488a836f097d1e322f4",
1716
+ "ref": "refs/heads/master",
1717
+ "message": "Auto merge of #216 - how-is:v20, r=duckinator\n\nversion bump to v20.0.0. :3",
1718
+ "compare_url": "https://github.com/how-is/how_is/compare/17182c814a4c...72b35532d3e8",
1719
+ "committed_at": "2017-12-22T01:45:18Z"
1720
+ },
1721
+ "jobs": [
1722
+ {
1723
+ "@type": "job",
1724
+ "@href": "/job/320021448",
1725
+ "@representation": "minimal",
1726
+ "id": 320021448
1727
+ },
1728
+ {
1729
+ "@type": "job",
1730
+ "@href": "/job/320021449",
1731
+ "@representation": "minimal",
1732
+ "id": 320021449
1733
+ }
1734
+ ],
1735
+ "stages": [
1736
+
1737
+ ],
1738
+ "created_by": {
1739
+ "@type": "user",
1740
+ "@href": "/user/376802",
1741
+ "@representation": "minimal",
1742
+ "id": 376802,
1743
+ "login": "bundlerbot"
1744
+ },
1745
+ "updated_at": "2017-12-22T01:47:26.281Z"
1746
+ },
1747
+ {
1748
+ "@type": "build",
1749
+ "@href": "/build/320018602",
1750
+ "@representation": "standard",
1751
+ "@permissions": {
1752
+ "read": true,
1753
+ "cancel": false,
1754
+ "restart": false
1755
+ },
1756
+ "id": 320018602,
1757
+ "number": "814",
1758
+ "state": "passed",
1759
+ "duration": 129,
1760
+ "event_type": "push",
1761
+ "previous_state": "passed",
1762
+ "pull_request_title": null,
1763
+ "pull_request_number": null,
1764
+ "started_at": "2017-12-22T01:39:23Z",
1765
+ "finished_at": "2017-12-22T01:40:41Z",
1766
+ "repository": {
1767
+ "@type": "repository",
1768
+ "@href": "/repo/8014235",
1769
+ "@representation": "minimal",
1770
+ "id": 8014235,
1771
+ "name": "how_is",
1772
+ "slug": "how-is/how_is"
1773
+ },
1774
+ "branch": {
1775
+ "@type": "branch",
1776
+ "@href": "/repo/8014235/branch/master",
1777
+ "@representation": "minimal",
1778
+ "name": "master"
1779
+ },
1780
+ "tag": null,
1781
+ "commit": {
1782
+ "@type": "commit",
1783
+ "@representation": "minimal",
1784
+ "id": 95154969,
1785
+ "sha": "17182c814a4c1ff29235f4a5c458bf74bd4a507d",
1786
+ "ref": "refs/heads/master",
1787
+ "message": "Auto merge of #215 - how-is:rewrite, r=duckinator\n\nPartial rewrite\n\nI replaced, removed, and moved a _ton_ of code.",
1788
+ "compare_url": "https://github.com/how-is/how_is/compare/1a592fc544d5...17182c814a4c",
1789
+ "committed_at": "2017-12-22T01:37:06Z"
1790
+ },
1791
+ "jobs": [
1792
+ {
1793
+ "@type": "job",
1794
+ "@href": "/job/320018603",
1795
+ "@representation": "minimal",
1796
+ "id": 320018603
1797
+ },
1798
+ {
1799
+ "@type": "job",
1800
+ "@href": "/job/320018604",
1801
+ "@representation": "minimal",
1802
+ "id": 320018604
1803
+ }
1804
+ ],
1805
+ "stages": [
1806
+
1807
+ ],
1808
+ "created_by": {
1809
+ "@type": "user",
1810
+ "@href": "/user/376802",
1811
+ "@representation": "minimal",
1812
+ "id": 376802,
1813
+ "login": "bundlerbot"
1814
+ },
1815
+ "updated_at": "2017-12-22T01:40:41.437Z"
1816
+ },
1817
+ {
1818
+ "@type": "build",
1819
+ "@href": "/build/313731596",
1820
+ "@representation": "standard",
1821
+ "@permissions": {
1822
+ "read": true,
1823
+ "cancel": false,
1824
+ "restart": false
1825
+ },
1826
+ "id": 313731596,
1827
+ "number": "765",
1828
+ "state": "passed",
1829
+ "duration": 151,
1830
+ "event_type": "push",
1831
+ "previous_state": "passed",
1832
+ "pull_request_title": null,
1833
+ "pull_request_number": null,
1834
+ "started_at": "2017-12-08T22:58:25Z",
1835
+ "finished_at": "2017-12-08T22:59:53Z",
1836
+ "repository": {
1837
+ "@type": "repository",
1838
+ "@href": "/repo/8014235",
1839
+ "@representation": "minimal",
1840
+ "id": 8014235,
1841
+ "name": "how_is",
1842
+ "slug": "how-is/how_is"
1843
+ },
1844
+ "branch": {
1845
+ "@type": "branch",
1846
+ "@href": "/repo/8014235/branch/master",
1847
+ "@representation": "minimal",
1848
+ "name": "master"
1849
+ },
1850
+ "tag": null,
1851
+ "commit": {
1852
+ "@type": "commit",
1853
+ "@representation": "minimal",
1854
+ "id": 93051000,
1855
+ "sha": "1a592fc544d587034e658c80f2983abf156c3bf7",
1856
+ "ref": "refs/heads/master",
1857
+ "message": "Auto merge of #214 - how-is:replace-tessellator-fetcher, r=duckinator\n\nswitch from Tessellator::Fetcher to Okay::HTTP.",
1858
+ "compare_url": "https://github.com/how-is/how_is/compare/a4c31b74ae09...1a592fc544d5",
1859
+ "committed_at": "2017-12-08T22:55:30Z"
1860
+ },
1861
+ "jobs": [
1862
+ {
1863
+ "@type": "job",
1864
+ "@href": "/job/313731597",
1865
+ "@representation": "minimal",
1866
+ "id": 313731597
1867
+ },
1868
+ {
1869
+ "@type": "job",
1870
+ "@href": "/job/313731599",
1871
+ "@representation": "minimal",
1872
+ "id": 313731599
1873
+ }
1874
+ ],
1875
+ "stages": [
1876
+
1877
+ ],
1878
+ "created_by": {
1879
+ "@type": "user",
1880
+ "@href": "/user/376802",
1881
+ "@representation": "minimal",
1882
+ "id": 376802,
1883
+ "login": "bundlerbot"
1884
+ },
1885
+ "updated_at": "2017-12-08T22:59:53.128Z"
1886
+ },
1887
+ {
1888
+ "@type": "build",
1889
+ "@href": "/build/303554788",
1890
+ "@representation": "standard",
1891
+ "@permissions": {
1892
+ "read": true,
1893
+ "cancel": false,
1894
+ "restart": false
1895
+ },
1896
+ "id": 303554788,
1897
+ "number": "761",
1898
+ "state": "passed",
1899
+ "duration": 131,
1900
+ "event_type": "push",
1901
+ "previous_state": "passed",
1902
+ "pull_request_title": null,
1903
+ "pull_request_number": null,
1904
+ "started_at": "2017-11-17T14:20:34Z",
1905
+ "finished_at": "2017-11-17T14:21:41Z",
1906
+ "repository": {
1907
+ "@type": "repository",
1908
+ "@href": "/repo/8014235",
1909
+ "@representation": "minimal",
1910
+ "id": 8014235,
1911
+ "name": "how_is",
1912
+ "slug": "how-is/how_is"
1913
+ },
1914
+ "branch": {
1915
+ "@type": "branch",
1916
+ "@href": "/repo/8014235/branch/master",
1917
+ "@representation": "minimal",
1918
+ "name": "master"
1919
+ },
1920
+ "tag": null,
1921
+ "commit": {
1922
+ "@type": "commit",
1923
+ "@representation": "minimal",
1924
+ "id": 89576423,
1925
+ "sha": "a4c31b74ae09de583357c243da571d5f98e0392e",
1926
+ "ref": "refs/heads/master",
1927
+ "message": "Auto merge of #213 - how-is:remove-pulse, r=duckinator\n\nRemove XPulse class.\n\nSecond part of #212.",
1928
+ "compare_url": "https://github.com/how-is/how_is/compare/44fab368e6b0...a4c31b74ae09",
1929
+ "committed_at": "2017-11-17T14:18:26Z"
1930
+ },
1931
+ "jobs": [
1932
+ {
1933
+ "@type": "job",
1934
+ "@href": "/job/303554792",
1935
+ "@representation": "minimal",
1936
+ "id": 303554792
1937
+ },
1938
+ {
1939
+ "@type": "job",
1940
+ "@href": "/job/303554796",
1941
+ "@representation": "minimal",
1942
+ "id": 303554796
1943
+ }
1944
+ ],
1945
+ "stages": [
1946
+
1947
+ ],
1948
+ "created_by": {
1949
+ "@type": "user",
1950
+ "@href": "/user/376802",
1951
+ "@representation": "minimal",
1952
+ "id": 376802,
1953
+ "login": "bundlerbot"
1954
+ },
1955
+ "updated_at": "2017-11-17T14:21:42.062Z"
1956
+ },
1957
+ {
1958
+ "@type": "build",
1959
+ "@href": "/build/303548963",
1960
+ "@representation": "standard",
1961
+ "@permissions": {
1962
+ "read": true,
1963
+ "cancel": false,
1964
+ "restart": false
1965
+ },
1966
+ "id": 303548963,
1967
+ "number": "757",
1968
+ "state": "passed",
1969
+ "duration": 110,
1970
+ "event_type": "push",
1971
+ "previous_state": "passed",
1972
+ "pull_request_title": null,
1973
+ "pull_request_number": null,
1974
+ "started_at": "2017-11-17T14:08:32Z",
1975
+ "finished_at": "2017-11-17T14:09:39Z",
1976
+ "repository": {
1977
+ "@type": "repository",
1978
+ "@href": "/repo/8014235",
1979
+ "@representation": "minimal",
1980
+ "id": 8014235,
1981
+ "name": "how_is",
1982
+ "slug": "how-is/how_is"
1983
+ },
1984
+ "branch": {
1985
+ "@type": "branch",
1986
+ "@href": "/repo/8014235/branch/master",
1987
+ "@representation": "minimal",
1988
+ "name": "master"
1989
+ },
1990
+ "tag": null,
1991
+ "commit": {
1992
+ "@type": "commit",
1993
+ "@representation": "minimal",
1994
+ "id": 89574573,
1995
+ "sha": "44fab368e6b0b090130e11f151d8c079a1b67202",
1996
+ "ref": "refs/heads/master",
1997
+ "message": "Auto merge of #212 - how-is:switch-from-pulse-to-contributions, r=olleolleolle\n\nSwitch from Pulse to Contributions\n\nThis PR switches from scraping `/pulse` to using the `Contributions` class, which builds on the GitHub API instead.\n\nThis PR will _not_ modify or remove the Pulse class in any way, to reduce noise in the diff. That'll be handled in a separate PR afterwards. However, I will rename it to `XPulse` just to prove that it is in fact not used.\n\nTODO:\n\n1. [x] Rename `Pulse` to `XPulse`.\n2. [x] Fix test failures.\n3. [x] Make `HowIs.from_config(config, date)` actually use the `date` argument.",
1998
+ "compare_url": "https://github.com/how-is/how_is/compare/3a383d627a8b...44fab368e6b0",
1999
+ "committed_at": "2017-11-17T14:07:19Z"
2000
+ },
2001
+ "jobs": [
2002
+ {
2003
+ "@type": "job",
2004
+ "@href": "/job/303548964",
2005
+ "@representation": "minimal",
2006
+ "id": 303548964
2007
+ },
2008
+ {
2009
+ "@type": "job",
2010
+ "@href": "/job/303548965",
2011
+ "@representation": "minimal",
2012
+ "id": 303548965
2013
+ }
2014
+ ],
2015
+ "stages": [
2016
+
2017
+ ],
2018
+ "created_by": {
2019
+ "@type": "user",
2020
+ "@href": "/user/376802",
2021
+ "@representation": "minimal",
2022
+ "id": 376802,
2023
+ "login": "bundlerbot"
2024
+ },
2025
+ "updated_at": "2017-11-17T14:09:39.129Z"
2026
+ },
2027
+ {
2028
+ "@type": "build",
2029
+ "@href": "/build/287768975",
2030
+ "@representation": "standard",
2031
+ "@permissions": {
2032
+ "read": true,
2033
+ "cancel": false,
2034
+ "restart": false
2035
+ },
2036
+ "id": 287768975,
2037
+ "number": "702",
2038
+ "state": "passed",
2039
+ "duration": 81,
2040
+ "event_type": "push",
2041
+ "previous_state": "passed",
2042
+ "pull_request_title": null,
2043
+ "pull_request_number": null,
2044
+ "started_at": "2017-10-13T22:55:29Z",
2045
+ "finished_at": "2017-10-13T22:56:24Z",
2046
+ "repository": {
2047
+ "@type": "repository",
2048
+ "@href": "/repo/8014235",
2049
+ "@representation": "minimal",
2050
+ "id": 8014235,
2051
+ "name": "how_is",
2052
+ "slug": "how-is/how_is"
2053
+ },
2054
+ "branch": {
2055
+ "@type": "branch",
2056
+ "@href": "/repo/8014235/branch/master",
2057
+ "@representation": "minimal",
2058
+ "name": "master"
2059
+ },
2060
+ "tag": null,
2061
+ "commit": {
2062
+ "@type": "commit",
2063
+ "@representation": "minimal",
2064
+ "id": 84250135,
2065
+ "sha": "3a383d627a8bb8f0de86549f0a4a18025ca2517c",
2066
+ "ref": "refs/heads/master",
2067
+ "message": "Auto merge of #211 - olleolleolle:fix/update-github_api-gem, r=duckinator\n\nGem: github_api 0.18.1\n\nThis PR updates a gem dep.\n\nSee changes since 0.17.0: https://github.com/piotrmurach/github/blob/master/CHANGELOG.md#v0181---2017-10-07",
2068
+ "compare_url": "https://github.com/how-is/how_is/compare/930b99eba2ad...3a383d627a8b",
2069
+ "committed_at": "2017-10-13T22:54:20Z"
2070
+ },
2071
+ "jobs": [
2072
+ {
2073
+ "@type": "job",
2074
+ "@href": "/job/287768976",
2075
+ "@representation": "minimal",
2076
+ "id": 287768976
2077
+ },
2078
+ {
2079
+ "@type": "job",
2080
+ "@href": "/job/287768977",
2081
+ "@representation": "minimal",
2082
+ "id": 287768977
2083
+ }
2084
+ ],
2085
+ "stages": [
2086
+
2087
+ ],
2088
+ "created_by": {
2089
+ "@type": "user",
2090
+ "@href": "/user/376802",
2091
+ "@representation": "minimal",
2092
+ "id": 376802,
2093
+ "login": "bundlerbot"
2094
+ },
2095
+ "updated_at": "2017-10-13T22:56:24.675Z"
2096
+ },
2097
+ {
2098
+ "@type": "build",
2099
+ "@href": "/build/281809866",
2100
+ "@representation": "standard",
2101
+ "@permissions": {
2102
+ "read": true,
2103
+ "cancel": false,
2104
+ "restart": false
2105
+ },
2106
+ "id": 281809866,
2107
+ "number": "698",
2108
+ "state": "passed",
2109
+ "duration": 67,
2110
+ "event_type": "push",
2111
+ "previous_state": "passed",
2112
+ "pull_request_title": null,
2113
+ "pull_request_number": null,
2114
+ "started_at": "2017-10-01T02:53:04Z",
2115
+ "finished_at": "2017-10-01T02:53:46Z",
2116
+ "repository": {
2117
+ "@type": "repository",
2118
+ "@href": "/repo/8014235",
2119
+ "@representation": "minimal",
2120
+ "id": 8014235,
2121
+ "name": "how_is",
2122
+ "slug": "how-is/how_is"
2123
+ },
2124
+ "branch": {
2125
+ "@type": "branch",
2126
+ "@href": "/repo/8014235/branch/master",
2127
+ "@representation": "minimal",
2128
+ "name": "master"
2129
+ },
2130
+ "tag": null,
2131
+ "commit": {
2132
+ "@type": "commit",
2133
+ "@representation": "minimal",
2134
+ "id": 82235505,
2135
+ "sha": "930b99eba2ad4272fcacab2aba342fdf7526018d",
2136
+ "ref": "refs/heads/master",
2137
+ "message": "Auto merge of #210 - how-is:tests, r=duckinator\n\nAdd tests for Contributions class\n\nCloses #194.",
2138
+ "compare_url": "https://github.com/how-is/how_is/compare/90a0dc60aefc...930b99eba2ad",
2139
+ "committed_at": "2017-10-01T02:52:01Z"
2140
+ },
2141
+ "jobs": [
2142
+ {
2143
+ "@type": "job",
2144
+ "@href": "/job/281809867",
2145
+ "@representation": "minimal",
2146
+ "id": 281809867
2147
+ },
2148
+ {
2149
+ "@type": "job",
2150
+ "@href": "/job/281809868",
2151
+ "@representation": "minimal",
2152
+ "id": 281809868
2153
+ }
2154
+ ],
2155
+ "stages": [
2156
+
2157
+ ],
2158
+ "created_by": {
2159
+ "@type": "user",
2160
+ "@href": "/user/376802",
2161
+ "@representation": "minimal",
2162
+ "id": 376802,
2163
+ "login": "bundlerbot"
2164
+ },
2165
+ "updated_at": "2017-10-01T02:53:46.836Z"
2166
+ },
2167
+ {
2168
+ "@type": "build",
2169
+ "@href": "/build/280854040",
2170
+ "@representation": "standard",
2171
+ "@permissions": {
2172
+ "read": true,
2173
+ "cancel": false,
2174
+ "restart": false
2175
+ },
2176
+ "id": 280854040,
2177
+ "number": "663",
2178
+ "state": "passed",
2179
+ "duration": 115,
2180
+ "event_type": "push",
2181
+ "previous_state": "passed",
2182
+ "pull_request_title": null,
2183
+ "pull_request_number": null,
2184
+ "started_at": "2017-09-28T12:55:32Z",
2185
+ "finished_at": "2017-09-28T12:56:46Z",
2186
+ "repository": {
2187
+ "@type": "repository",
2188
+ "@href": "/repo/8014235",
2189
+ "@representation": "minimal",
2190
+ "id": 8014235,
2191
+ "name": "how_is",
2192
+ "slug": "how-is/how_is"
2193
+ },
2194
+ "branch": {
2195
+ "@type": "branch",
2196
+ "@href": "/repo/8014235/branch/master",
2197
+ "@representation": "minimal",
2198
+ "name": "master"
2199
+ },
2200
+ "tag": null,
2201
+ "commit": {
2202
+ "@type": "commit",
2203
+ "@representation": "minimal",
2204
+ "id": 81935605,
2205
+ "sha": "90a0dc60aefc2cd92f7ce2d3e95a6658223f14d4",
2206
+ "ref": "refs/heads/master",
2207
+ "message": "Auto merge of #209 - how-is:refactor, r=duckinator\n\nRefactor\n\n1. Makes a bunch of internal-use-only methods private.\n2. Minor documentation cleanup.\n3. Re-arrange positioning of the `from_config` method so it's closer to more relevant things.\n4. Rename Analyzer to Analysis and clean it up.",
2208
+ "compare_url": "https://github.com/how-is/how_is/compare/587f010f9cfb...90a0dc60aefc",
2209
+ "committed_at": "2017-09-28T12:54:15Z"
2210
+ },
2211
+ "jobs": [
2212
+ {
2213
+ "@type": "job",
2214
+ "@href": "/job/280854041",
2215
+ "@representation": "minimal",
2216
+ "id": 280854041
2217
+ },
2218
+ {
2219
+ "@type": "job",
2220
+ "@href": "/job/280854043",
2221
+ "@representation": "minimal",
2222
+ "id": 280854043
2223
+ }
2224
+ ],
2225
+ "stages": [
2226
+
2227
+ ],
2228
+ "created_by": {
2229
+ "@type": "user",
2230
+ "@href": "/user/376802",
2231
+ "@representation": "minimal",
2232
+ "id": 376802,
2233
+ "login": "bundlerbot"
2234
+ },
2235
+ "updated_at": "2017-09-28T12:56:44.238Z"
2236
+ },
2237
+ {
2238
+ "@type": "build",
2239
+ "@href": "/build/276423187",
2240
+ "@representation": "standard",
2241
+ "@permissions": {
2242
+ "read": true,
2243
+ "cancel": false,
2244
+ "restart": false
2245
+ },
2246
+ "id": 276423187,
2247
+ "number": "649",
2248
+ "state": "passed",
2249
+ "duration": 65,
2250
+ "event_type": "push",
2251
+ "previous_state": "passed",
2252
+ "pull_request_title": null,
2253
+ "pull_request_number": null,
2254
+ "started_at": "2017-09-17T04:27:54Z",
2255
+ "finished_at": "2017-09-17T04:28:34Z",
2256
+ "repository": {
2257
+ "@type": "repository",
2258
+ "@href": "/repo/8014235",
2259
+ "@representation": "minimal",
2260
+ "id": 8014235,
2261
+ "name": "how_is",
2262
+ "slug": "how-is/how_is"
2263
+ },
2264
+ "branch": {
2265
+ "@type": "branch",
2266
+ "@href": "/repo/8014235/branch/master",
2267
+ "@representation": "minimal",
2268
+ "name": "master"
2269
+ },
2270
+ "tag": null,
2271
+ "commit": {
2272
+ "@type": "commit",
2273
+ "@representation": "minimal",
2274
+ "id": 80562564,
2275
+ "sha": "587f010f9cfb3177ce8b1ef8561fc118e60e87cc",
2276
+ "ref": "refs/heads/master",
2277
+ "message": "Auto merge of #208 - how-is:move-pry-gemspec, r=duckinator\n\nuse stable version of pry since there's no longer a conflict with slop",
2278
+ "compare_url": "https://github.com/how-is/how_is/compare/45b77796bc2e...587f010f9cfb",
2279
+ "committed_at": "2017-09-17T04:26:56Z"
2280
+ },
2281
+ "jobs": [
2282
+ {
2283
+ "@type": "job",
2284
+ "@href": "/job/276423188",
2285
+ "@representation": "minimal",
2286
+ "id": 276423188
2287
+ },
2288
+ {
2289
+ "@type": "job",
2290
+ "@href": "/job/276423189",
2291
+ "@representation": "minimal",
2292
+ "id": 276423189
2293
+ }
2294
+ ],
2295
+ "stages": [
2296
+
2297
+ ],
2298
+ "created_by": {
2299
+ "@type": "user",
2300
+ "@href": "/user/376802",
2301
+ "@representation": "minimal",
2302
+ "id": 376802,
2303
+ "login": "bundlerbot"
2304
+ },
2305
+ "updated_at": "2017-09-17T04:28:35.812Z"
2306
+ },
2307
+ {
2308
+ "@type": "build",
2309
+ "@href": "/build/276417943",
2310
+ "@representation": "standard",
2311
+ "@permissions": {
2312
+ "read": true,
2313
+ "cancel": false,
2314
+ "restart": false
2315
+ },
2316
+ "id": 276417943,
2317
+ "number": "645",
2318
+ "state": "passed",
2319
+ "duration": 78,
2320
+ "event_type": "push",
2321
+ "previous_state": "passed",
2322
+ "pull_request_title": null,
2323
+ "pull_request_number": null,
2324
+ "started_at": "2017-09-17T03:50:02Z",
2325
+ "finished_at": "2017-09-17T03:50:46Z",
2326
+ "repository": {
2327
+ "@type": "repository",
2328
+ "@href": "/repo/8014235",
2329
+ "@representation": "minimal",
2330
+ "id": 8014235,
2331
+ "name": "how_is",
2332
+ "slug": "how-is/how_is"
2333
+ },
2334
+ "branch": {
2335
+ "@type": "branch",
2336
+ "@href": "/repo/8014235/branch/master",
2337
+ "@representation": "minimal",
2338
+ "name": "master"
2339
+ },
2340
+ "tag": null,
2341
+ "commit": {
2342
+ "@type": "commit",
2343
+ "@representation": "minimal",
2344
+ "id": 80560817,
2345
+ "sha": "45b77796bc2e85ec494e6d02a9d81aeed1463f09",
2346
+ "ref": "refs/heads/master",
2347
+ "message": "Auto merge of #207 - how-is:shields, r=duckinator\n\nadd icons to README for Waffle.io, Travis, Code Climate, RubyGems, Gemnasium.",
2348
+ "compare_url": "https://github.com/how-is/how_is/compare/e688a0843509...45b77796bc2e",
2349
+ "committed_at": "2017-09-17T03:48:55Z"
2350
+ },
2351
+ "jobs": [
2352
+ {
2353
+ "@type": "job",
2354
+ "@href": "/job/276417944",
2355
+ "@representation": "minimal",
2356
+ "id": 276417944
2357
+ },
2358
+ {
2359
+ "@type": "job",
2360
+ "@href": "/job/276417945",
2361
+ "@representation": "minimal",
2362
+ "id": 276417945
2363
+ }
2364
+ ],
2365
+ "stages": [
2366
+
2367
+ ],
2368
+ "created_by": {
2369
+ "@type": "user",
2370
+ "@href": "/user/376802",
2371
+ "@representation": "minimal",
2372
+ "id": 376802,
2373
+ "login": "bundlerbot"
2374
+ },
2375
+ "updated_at": "2017-09-17T03:50:46.306Z"
2376
+ },
2377
+ {
2378
+ "@type": "build",
2379
+ "@href": "/build/276113304",
2380
+ "@representation": "standard",
2381
+ "@permissions": {
2382
+ "read": true,
2383
+ "cancel": false,
2384
+ "restart": false
2385
+ },
2386
+ "id": 276113304,
2387
+ "number": "640",
2388
+ "state": "passed",
2389
+ "duration": 71,
2390
+ "event_type": "push",
2391
+ "previous_state": "passed",
2392
+ "pull_request_title": null,
2393
+ "pull_request_number": null,
2394
+ "started_at": "2017-09-16T00:13:16Z",
2395
+ "finished_at": "2017-09-16T00:13:59Z",
2396
+ "repository": {
2397
+ "@type": "repository",
2398
+ "@href": "/repo/8014235",
2399
+ "@representation": "minimal",
2400
+ "id": 8014235,
2401
+ "name": "how_is",
2402
+ "slug": "how-is/how_is"
2403
+ },
2404
+ "branch": {
2405
+ "@type": "branch",
2406
+ "@href": "/repo/8014235/branch/master",
2407
+ "@representation": "minimal",
2408
+ "name": "master"
2409
+ },
2410
+ "tag": null,
2411
+ "commit": {
2412
+ "@type": "commit",
2413
+ "@representation": "minimal",
2414
+ "id": 80458142,
2415
+ "sha": "e688a0843509086439f5b9e3840b6891f4901c1d",
2416
+ "ref": "refs/heads/master",
2417
+ "message": "Auto merge of #206 - how-is:new-release, r=duckinator\n\nbump version to 19.0.0; update changelog",
2418
+ "compare_url": "https://github.com/how-is/how_is/compare/598460a71f50...e688a0843509",
2419
+ "committed_at": "2017-09-16T00:12:11Z"
2420
+ },
2421
+ "jobs": [
2422
+ {
2423
+ "@type": "job",
2424
+ "@href": "/job/276113305",
2425
+ "@representation": "minimal",
2426
+ "id": 276113305
2427
+ },
2428
+ {
2429
+ "@type": "job",
2430
+ "@href": "/job/276113306",
2431
+ "@representation": "minimal",
2432
+ "id": 276113306
2433
+ }
2434
+ ],
2435
+ "stages": [
2436
+
2437
+ ],
2438
+ "created_by": {
2439
+ "@type": "user",
2440
+ "@href": "/user/376802",
2441
+ "@representation": "minimal",
2442
+ "id": 376802,
2443
+ "login": "bundlerbot"
2444
+ },
2445
+ "updated_at": "2017-09-16T00:14:00.162Z"
2446
+ },
2447
+ {
2448
+ "@type": "build",
2449
+ "@href": "/build/276101737",
2450
+ "@representation": "standard",
2451
+ "@permissions": {
2452
+ "read": true,
2453
+ "cancel": false,
2454
+ "restart": false
2455
+ },
2456
+ "id": 276101737,
2457
+ "number": "636",
2458
+ "state": "passed",
2459
+ "duration": 67,
2460
+ "event_type": "push",
2461
+ "previous_state": "passed",
2462
+ "pull_request_title": null,
2463
+ "pull_request_number": null,
2464
+ "started_at": "2017-09-15T23:26:05Z",
2465
+ "finished_at": "2017-09-15T23:26:49Z",
2466
+ "repository": {
2467
+ "@type": "repository",
2468
+ "@href": "/repo/8014235",
2469
+ "@representation": "minimal",
2470
+ "id": 8014235,
2471
+ "name": "how_is",
2472
+ "slug": "how-is/how_is"
2473
+ },
2474
+ "branch": {
2475
+ "@type": "branch",
2476
+ "@href": "/repo/8014235/branch/master",
2477
+ "@representation": "minimal",
2478
+ "name": "master"
2479
+ },
2480
+ "tag": null,
2481
+ "commit": {
2482
+ "@type": "commit",
2483
+ "@representation": "minimal",
2484
+ "id": 80454454,
2485
+ "sha": "598460a71f50342c13bcbe95337a0a0393e821ab",
2486
+ "ref": "refs/heads/master",
2487
+ "message": "Auto merge of #205 - how-is:move-away-from-slop, r=duckinator\n\nMove away from slop",
2488
+ "compare_url": "https://github.com/how-is/how_is/compare/be09da232d23...598460a71f50",
2489
+ "committed_at": "2017-09-15T23:24:53Z"
2490
+ },
2491
+ "jobs": [
2492
+ {
2493
+ "@type": "job",
2494
+ "@href": "/job/276101738",
2495
+ "@representation": "minimal",
2496
+ "id": 276101738
2497
+ },
2498
+ {
2499
+ "@type": "job",
2500
+ "@href": "/job/276101739",
2501
+ "@representation": "minimal",
2502
+ "id": 276101739
2503
+ }
2504
+ ],
2505
+ "stages": [
2506
+
2507
+ ],
2508
+ "created_by": {
2509
+ "@type": "user",
2510
+ "@href": "/user/376802",
2511
+ "@representation": "minimal",
2512
+ "id": 376802,
2513
+ "login": "bundlerbot"
2514
+ },
2515
+ "updated_at": "2017-09-15T23:26:48.537Z"
2516
+ },
2517
+ {
2518
+ "@type": "build",
2519
+ "@href": "/build/275289485",
2520
+ "@representation": "standard",
2521
+ "@permissions": {
2522
+ "read": true,
2523
+ "cancel": false,
2524
+ "restart": false
2525
+ },
2526
+ "id": 275289485,
2527
+ "number": "631",
2528
+ "state": "passed",
2529
+ "duration": 73,
2530
+ "event_type": "push",
2531
+ "previous_state": "passed",
2532
+ "pull_request_title": null,
2533
+ "pull_request_number": null,
2534
+ "started_at": "2017-09-14T02:09:09Z",
2535
+ "finished_at": "2017-09-14T02:09:54Z",
2536
+ "repository": {
2537
+ "@type": "repository",
2538
+ "@href": "/repo/8014235",
2539
+ "@representation": "minimal",
2540
+ "id": 8014235,
2541
+ "name": "how_is",
2542
+ "slug": "how-is/how_is"
2543
+ },
2544
+ "branch": {
2545
+ "@type": "branch",
2546
+ "@href": "/repo/8014235/branch/master",
2547
+ "@representation": "minimal",
2548
+ "name": "master"
2549
+ },
2550
+ "tag": null,
2551
+ "commit": {
2552
+ "@type": "commit",
2553
+ "@representation": "minimal",
2554
+ "id": 80202357,
2555
+ "sha": "be09da232d23ed85ac61db82db120f280c283308",
2556
+ "ref": "refs/heads/master",
2557
+ "message": "Auto merge of #204 - how-is:codeclimate, r=duckinator\n\nadd .codeclimate.yml",
2558
+ "compare_url": "https://github.com/how-is/how_is/compare/3ac256cd2fba...be09da232d23",
2559
+ "committed_at": "2017-09-14T02:08:13Z"
2560
+ },
2561
+ "jobs": [
2562
+ {
2563
+ "@type": "job",
2564
+ "@href": "/job/275289486",
2565
+ "@representation": "minimal",
2566
+ "id": 275289486
2567
+ },
2568
+ {
2569
+ "@type": "job",
2570
+ "@href": "/job/275289487",
2571
+ "@representation": "minimal",
2572
+ "id": 275289487
2573
+ }
2574
+ ],
2575
+ "stages": [
2576
+
2577
+ ],
2578
+ "created_by": {
2579
+ "@type": "user",
2580
+ "@href": "/user/376802",
2581
+ "@representation": "minimal",
2582
+ "id": 376802,
2583
+ "login": "bundlerbot"
2584
+ },
2585
+ "updated_at": "2017-09-14T02:09:53.165Z"
2586
+ },
2587
+ {
2588
+ "@type": "build",
2589
+ "@href": "/build/275281755",
2590
+ "@representation": "standard",
2591
+ "@permissions": {
2592
+ "read": true,
2593
+ "cancel": false,
2594
+ "restart": false
2595
+ },
2596
+ "id": 275281755,
2597
+ "number": "625",
2598
+ "state": "passed",
2599
+ "duration": 74,
2600
+ "event_type": "push",
2601
+ "previous_state": "passed",
2602
+ "pull_request_title": null,
2603
+ "pull_request_number": null,
2604
+ "started_at": "2017-09-14T01:24:35Z",
2605
+ "finished_at": "2017-09-14T01:25:22Z",
2606
+ "repository": {
2607
+ "@type": "repository",
2608
+ "@href": "/repo/8014235",
2609
+ "@representation": "minimal",
2610
+ "id": 8014235,
2611
+ "name": "how_is",
2612
+ "slug": "how-is/how_is"
2613
+ },
2614
+ "branch": {
2615
+ "@type": "branch",
2616
+ "@href": "/repo/8014235/branch/master",
2617
+ "@representation": "minimal",
2618
+ "name": "master"
2619
+ },
2620
+ "tag": null,
2621
+ "commit": {
2622
+ "@type": "commit",
2623
+ "@representation": "minimal",
2624
+ "id": 80199843,
2625
+ "sha": "3ac256cd2fba940a7b853e81ce8c54a24ebad852",
2626
+ "ref": "refs/heads/master",
2627
+ "message": "Auto merge of #203 - how-is:quick-capture-warnings-refactor, r=duckinator\n\nquick refactor of spec/capture_warnings.",
2628
+ "compare_url": "https://github.com/how-is/how_is/compare/bebb13aee34f...3ac256cd2fba",
2629
+ "committed_at": "2017-09-14T01:23:16Z"
2630
+ },
2631
+ "jobs": [
2632
+ {
2633
+ "@type": "job",
2634
+ "@href": "/job/275281756",
2635
+ "@representation": "minimal",
2636
+ "id": 275281756
2637
+ },
2638
+ {
2639
+ "@type": "job",
2640
+ "@href": "/job/275281757",
2641
+ "@representation": "minimal",
2642
+ "id": 275281757
2643
+ }
2644
+ ],
2645
+ "stages": [
2646
+
2647
+ ],
2648
+ "created_by": {
2649
+ "@type": "user",
2650
+ "@href": "/user/376802",
2651
+ "@representation": "minimal",
2652
+ "id": 376802,
2653
+ "login": "bundlerbot"
2654
+ },
2655
+ "updated_at": "2017-09-14T01:25:19.553Z"
2656
+ },
2657
+ {
2658
+ "@type": "build",
2659
+ "@href": "/build/272622575",
2660
+ "@representation": "standard",
2661
+ "@permissions": {
2662
+ "read": true,
2663
+ "cancel": false,
2664
+ "restart": false
2665
+ },
2666
+ "id": 272622575,
2667
+ "number": "621",
2668
+ "state": "passed",
2669
+ "duration": 139,
2670
+ "event_type": "push",
2671
+ "previous_state": "passed",
2672
+ "pull_request_title": null,
2673
+ "pull_request_number": null,
2674
+ "started_at": "2017-09-06T19:19:34Z",
2675
+ "finished_at": "2017-09-06T19:21:14Z",
2676
+ "repository": {
2677
+ "@type": "repository",
2678
+ "@href": "/repo/8014235",
2679
+ "@representation": "minimal",
2680
+ "id": 8014235,
2681
+ "name": "how_is",
2682
+ "slug": "how-is/how_is"
2683
+ },
2684
+ "branch": {
2685
+ "@type": "branch",
2686
+ "@href": "/repo/8014235/branch/master",
2687
+ "@representation": "minimal",
2688
+ "name": "master"
2689
+ },
2690
+ "tag": null,
2691
+ "commit": {
2692
+ "@type": "commit",
2693
+ "@representation": "minimal",
2694
+ "id": 79386898,
2695
+ "sha": "bebb13aee34f4130fd5a7d33aa6bcc9f2f987995",
2696
+ "ref": "refs/heads/master",
2697
+ "message": "Auto merge of #201 - olleolleolle:fix/trivial-yard-detail, r=duckinator\n\n[docs] YARD annotation for example\n\n- this avoids a warning with yard-junk (the gem)",
2698
+ "compare_url": "https://github.com/how-is/how_is/compare/2af36add6b2e...bebb13aee34f",
2699
+ "committed_at": "2017-09-06T19:17:06Z"
2700
+ },
2701
+ "jobs": [
2702
+ {
2703
+ "@type": "job",
2704
+ "@href": "/job/272622576",
2705
+ "@representation": "minimal",
2706
+ "id": 272622576
2707
+ },
2708
+ {
2709
+ "@type": "job",
2710
+ "@href": "/job/272622577",
2711
+ "@representation": "minimal",
2712
+ "id": 272622577
2713
+ }
2714
+ ],
2715
+ "stages": [
2716
+
2717
+ ],
2718
+ "created_by": {
2719
+ "@type": "user",
2720
+ "@href": "/user/376802",
2721
+ "@representation": "minimal",
2722
+ "id": 376802,
2723
+ "login": "bundlerbot"
2724
+ },
2725
+ "updated_at": "2017-09-06T19:21:20.592Z"
2726
+ },
2727
+ {
2728
+ "@type": "build",
2729
+ "@href": "/build/264400553",
2730
+ "@representation": "standard",
2731
+ "@permissions": {
2732
+ "read": true,
2733
+ "cancel": false,
2734
+ "restart": false
2735
+ },
2736
+ "id": 264400553,
2737
+ "number": "618",
2738
+ "state": "passed",
2739
+ "duration": 179,
2740
+ "event_type": "push",
2741
+ "previous_state": "passed",
2742
+ "pull_request_title": null,
2743
+ "pull_request_number": null,
2744
+ "started_at": "2017-08-14T15:14:59Z",
2745
+ "finished_at": "2017-08-14T15:16:49Z",
2746
+ "repository": {
2747
+ "@type": "repository",
2748
+ "@href": "/repo/8014235",
2749
+ "@representation": "minimal",
2750
+ "id": 8014235,
2751
+ "name": "how_is",
2752
+ "slug": "how-is/how_is"
2753
+ },
2754
+ "branch": {
2755
+ "@type": "branch",
2756
+ "@href": "/repo/8014235/branch/master",
2757
+ "@representation": "minimal",
2758
+ "name": "master"
2759
+ },
2760
+ "tag": null,
2761
+ "commit": {
2762
+ "@type": "commit",
2763
+ "@representation": "minimal",
2764
+ "id": 76934652,
2765
+ "sha": "2af36add6b2e2801177d8da80acd3e267f2957ac",
2766
+ "ref": "refs/heads/master",
2767
+ "message": "Auto merge of #199 - olleolleolle:refactor/contrib, r=duckinator\n\nRefactor: introduce pretty_date(date)\n\nThis is a refactoring PR.\n\n- Combine `#pretty_start_date` and `#pretty_end_date` into `#pretty_date(date)`\n- Move a method to a better ordering\n\nSee #194.",
2768
+ "compare_url": "https://github.com/how-is/how_is/compare/d70e15e377f9...2af36add6b2e",
2769
+ "committed_at": "2017-08-14T15:12:53Z"
2770
+ },
2771
+ "jobs": [
2772
+ {
2773
+ "@type": "job",
2774
+ "@href": "/job/264400554",
2775
+ "@representation": "minimal",
2776
+ "id": 264400554
2777
+ },
2778
+ {
2779
+ "@type": "job",
2780
+ "@href": "/job/264400555",
2781
+ "@representation": "minimal",
2782
+ "id": 264400555
2783
+ }
2784
+ ],
2785
+ "stages": [
2786
+
2787
+ ],
2788
+ "created_by": {
2789
+ "@type": "user",
2790
+ "@href": "/user/376802",
2791
+ "@representation": "minimal",
2792
+ "id": 376802,
2793
+ "login": "bundlerbot"
2794
+ },
2795
+ "updated_at": "2017-08-14T15:16:49.830Z"
2796
+ },
2797
+ {
2798
+ "@type": "build",
2799
+ "@href": "/build/263357847",
2800
+ "@representation": "standard",
2801
+ "@permissions": {
2802
+ "read": true,
2803
+ "cancel": false,
2804
+ "restart": false
2805
+ },
2806
+ "id": 263357847,
2807
+ "number": "614",
2808
+ "state": "passed",
2809
+ "duration": 148,
2810
+ "event_type": "push",
2811
+ "previous_state": "failed",
2812
+ "pull_request_title": null,
2813
+ "pull_request_number": null,
2814
+ "started_at": "2017-08-11T04:41:39Z",
2815
+ "finished_at": "2017-08-11T04:42:55Z",
2816
+ "repository": {
2817
+ "@type": "repository",
2818
+ "@href": "/repo/8014235",
2819
+ "@representation": "minimal",
2820
+ "id": 8014235,
2821
+ "name": "how_is",
2822
+ "slug": "how-is/how_is"
2823
+ },
2824
+ "branch": {
2825
+ "@type": "branch",
2826
+ "@href": "/repo/8014235/branch/master",
2827
+ "@representation": "minimal",
2828
+ "name": "master"
2829
+ },
2830
+ "tag": null,
2831
+ "commit": {
2832
+ "@type": "commit",
2833
+ "@representation": "minimal",
2834
+ "id": 76606032,
2835
+ "sha": "d70e15e377f938988e69d7bd7ab7f1b0a4b9bbc1",
2836
+ "ref": "refs/heads/master",
2837
+ "message": "Auto merge of #197 - how-is:update-fixtures, r=duckinator\n\nupdate VCR fixture",
2838
+ "compare_url": "https://github.com/how-is/how_is/compare/9a14b69bb016...d70e15e377f9",
2839
+ "committed_at": "2017-08-11T04:39:50Z"
2840
+ },
2841
+ "jobs": [
2842
+ {
2843
+ "@type": "job",
2844
+ "@href": "/job/263357848",
2845
+ "@representation": "minimal",
2846
+ "id": 263357848
2847
+ },
2848
+ {
2849
+ "@type": "job",
2850
+ "@href": "/job/263357849",
2851
+ "@representation": "minimal",
2852
+ "id": 263357849
2853
+ }
2854
+ ],
2855
+ "stages": [
2856
+
2857
+ ],
2858
+ "created_by": {
2859
+ "@type": "user",
2860
+ "@href": "/user/376802",
2861
+ "@representation": "minimal",
2862
+ "id": 376802,
2863
+ "login": "bundlerbot"
2864
+ },
2865
+ "updated_at": "2017-08-11T04:42:56.100Z"
2866
+ }
2867
+ ]
2868
+ }
2869
+ http_version:
2870
+ recorded_at: Fri, 30 Mar 2018 22:03:31 GMT
2871
+ recorded_with: VCR 4.0.0