how_is 19.0.0 → 20.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. checksums.yaml +5 -5
  2. data/.codeclimate.yml +1 -0
  3. data/.rubocop.yml +16 -0
  4. data/CHANGELOG.md +30 -3
  5. data/Gemfile +0 -6
  6. data/README.md +5 -2
  7. data/exe/how_is +7 -2
  8. data/fixtures/vcr_cassettes/how-is-example-empty-repository.yml +446 -727
  9. data/fixtures/vcr_cassettes/how-is-example-repository.yml +508 -727
  10. data/fixtures/vcr_cassettes/how-is-from-config-frontmatter.yml +43522 -1218
  11. data/fixtures/vcr_cassettes/how-is-how-is-travis-api-repos-builds.yml +287 -0
  12. data/fixtures/vcr_cassettes/how-is-with-config-file.yml +44307 -23286
  13. data/fixtures/vcr_cassettes/how_is_contributions_additions_count.yml +307 -0
  14. data/fixtures/vcr_cassettes/how_is_contributions_all_contributors.yml +81 -0
  15. data/fixtures/vcr_cassettes/how_is_contributions_changed_files.yml +307 -0
  16. data/fixtures/vcr_cassettes/how_is_contributions_changes.yml +307 -0
  17. data/fixtures/vcr_cassettes/how_is_contributions_commits.yml +307 -0
  18. data/fixtures/vcr_cassettes/how_is_contributions_compare_url.yml +74 -0
  19. data/fixtures/vcr_cassettes/how_is_contributions_deletions_count.yml +307 -0
  20. data/fixtures/vcr_cassettes/how_is_contributions_new_contributors.yml +234 -0
  21. data/fixtures/vcr_cassettes/how_is_contributions_summary.yml +378 -0
  22. data/fixtures/vcr_cassettes/how_is_contributions_summary_2.yml +378 -0
  23. data/fixtures/vcr_cassettes/how_is_fetcher_call.yml +572 -0
  24. data/how_is.gemspec +3 -2
  25. data/lib/how_is/cli.rb +4 -6
  26. data/lib/how_is/frontmatter.rb +46 -0
  27. data/lib/how_is/report.rb +59 -63
  28. data/lib/how_is/sources/github/contributions.rb +164 -0
  29. data/lib/how_is/sources/github/issues.rb +142 -0
  30. data/lib/how_is/sources/github/pulls.rb +20 -0
  31. data/lib/how_is/sources/github.rb +11 -0
  32. data/lib/how_is/sources/github_helpers.rb +191 -0
  33. data/lib/how_is/sources/travis.rb +34 -0
  34. data/lib/how_is/sources.rb +9 -0
  35. data/lib/how_is/templates/issues_or_pulls_partial.html_template +7 -0
  36. data/lib/how_is/templates/report.html_template +27 -0
  37. data/lib/how_is/templates/report_partial.html_template +12 -0
  38. data/lib/how_is/version.rb +2 -2
  39. data/lib/how_is.rb +59 -158
  40. metadata +42 -16
  41. data/lib/how_is/analyzer.rb +0 -222
  42. data/lib/how_is/builds.rb +0 -36
  43. data/lib/how_is/contributions.rb +0 -156
  44. data/lib/how_is/fetcher.rb +0 -77
  45. data/lib/how_is/pulse.rb +0 -47
  46. data/lib/how_is/report/base_report.rb +0 -148
  47. data/lib/how_is/report/html.rb +0 -120
  48. data/lib/how_is/report/json.rb +0 -34
@@ -162,4 +162,291 @@ http_interactions:
162
162
  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/commit/27b252d3625d","pull_request_number":null}]}'
163
163
  http_version:
164
164
  recorded_at: Sun, 06 Aug 2017 19:20:42 GMT
165
+ - request:
166
+ method: get
167
+ uri: http://api.travis-ci.org/repos/how-is/how_is/builds
168
+ body:
169
+ encoding: US-ASCII
170
+ string: ''
171
+ headers:
172
+ Accept-Encoding:
173
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
174
+ Accept:
175
+ - application/vnd.travis-ci.2+json
176
+ User-Agent:
177
+ - Ruby
178
+ Host:
179
+ - api.travis-ci.org
180
+ response:
181
+ status:
182
+ code: 301
183
+ message: Moved Permanently
184
+ headers:
185
+ Connection:
186
+ - keep-alive
187
+ Server:
188
+ - nginx
189
+ Date:
190
+ - Fri, 08 Dec 2017 22:42:35 GMT
191
+ Content-Type:
192
+ - text/html
193
+ Content-Length:
194
+ - '0'
195
+ Access-Control-Allow-Origin:
196
+ - "*"
197
+ Access-Control-Allow-Credentials:
198
+ - 'true'
199
+ Access-Control-Expose-Headers:
200
+ - Content-Type, Cache-Control, Expires, Etag, Last-Modified
201
+ Location:
202
+ - https://api.travis-ci.org/repos/how-is/how_is/builds
203
+ X-Request-Id:
204
+ - 9c91aa26-da8f-473a-8204-1ebf6dc3b508
205
+ Via:
206
+ - 1.1 vegur
207
+ body:
208
+ encoding: UTF-8
209
+ string: ''
210
+ http_version:
211
+ recorded_at: Fri, 08 Dec 2017 22:42:35 GMT
212
+ - request:
213
+ method: get
214
+ uri: https://api.travis-ci.org/repos/how-is/how_is/builds
215
+ body:
216
+ encoding: US-ASCII
217
+ string: ''
218
+ headers:
219
+ Accept-Encoding:
220
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
221
+ Accept:
222
+ - application/vnd.travis-ci.2+json
223
+ User-Agent:
224
+ - Ruby
225
+ Host:
226
+ - api.travis-ci.org
227
+ response:
228
+ status:
229
+ code: 200
230
+ message: OK
231
+ headers:
232
+ Connection:
233
+ - keep-alive
234
+ Server:
235
+ - nginx
236
+ Date:
237
+ - Fri, 08 Dec 2017 22:42:35 GMT
238
+ Content-Type:
239
+ - application/json;charset=utf-8
240
+ Transfer-Encoding:
241
+ - chunked
242
+ Access-Control-Allow-Origin:
243
+ - "*"
244
+ Access-Control-Allow-Credentials:
245
+ - 'true'
246
+ Access-Control-Expose-Headers:
247
+ - Content-Type, Cache-Control, Expires, Etag, Last-Modified
248
+ Strict-Transport-Security:
249
+ - max-age=31536000
250
+ X-Endpoint:
251
+ - Travis::Api::App::Endpoint::Repos
252
+ X-Pattern:
253
+ - "/:owner_name/:name/builds"
254
+ X-Oauth-Scopes:
255
+ - public
256
+ X-Accepted-Oauth-Scopes:
257
+ - public
258
+ Vary:
259
+ - Accept,Accept-Encoding
260
+ Cache-Control:
261
+ - no-cache
262
+ X-Rack-Cache:
263
+ - miss
264
+ X-Request-Id:
265
+ - 363e1516-c2d6-4fca-9869-463110e4bdba
266
+ Via:
267
+ - 1.1 vegur
268
+ body:
269
+ encoding: ASCII-8BIT
270
+ string: '{"builds":[{"id":303554788,"repository_id":8014235,"commit_id":89576423,"number":"761","event_type":"push","pull_request":false,"pull_request_title":null,"pull_request_number":null,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-17T14:20:34Z","finished_at":"2017-11-17T14:21:41Z","duration":131,"job_ids":[303554792,303554796]},{"id":303553747,"repository_id":8014235,"commit_id":89576137,"number":"760","event_type":"push","pull_request":false,"pull_request_title":null,"pull_request_number":null,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-17T14:18:39Z","finished_at":"2017-11-17T14:20:00Z","duration":125,"job_ids":[303553748,303553749]},{"id":303551237,"repository_id":8014235,"commit_id":89575396,"number":"759","event_type":"pull_request","pull_request":true,"pull_request_title":"Remove
271
+ XPulse class.","pull_request_number":213,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-17T14:14:05Z","finished_at":"2017-11-17T14:15:08Z","duration":101,"job_ids":[303551240,303551241]},{"id":303550935,"repository_id":8014235,"commit_id":89575273,"number":"758","event_type":"push","pull_request":false,"pull_request_title":null,"pull_request_number":null,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-17T14:13:18Z","finished_at":"2017-11-17T14:14:15Z","duration":97,"job_ids":[303550936,303550937]},{"id":303548963,"repository_id":8014235,"commit_id":89574573,"number":"757","event_type":"push","pull_request":false,"pull_request_title":null,"pull_request_number":null,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-17T14:08:32Z","finished_at":"2017-11-17T14:09:39Z","duration":110,"job_ids":[303548964,303548965]},{"id":303548542,"repository_id":8014235,"commit_id":89574419,"number":"756","event_type":"push","pull_request":false,"pull_request_title":null,"pull_request_number":null,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-17T14:07:27Z","finished_at":"2017-11-17T14:08:24Z","duration":93,"job_ids":[303548543,303548544]},{"id":303539472,"repository_id":8014235,"commit_id":89571283,"number":"755","event_type":"pull_request","pull_request":true,"pull_request_title":"[WIP]
272
+ Switch from Pulse to Contributions","pull_request_number":212,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-17T13:44:45Z","finished_at":"2017-11-17T13:45:53Z","duration":111,"job_ids":[303539473,303539474]},{"id":303539446,"repository_id":8014235,"commit_id":89571274,"number":"754","event_type":"push","pull_request":false,"pull_request_title":null,"pull_request_number":null,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-17T13:44:40Z","finished_at":"2017-11-17T13:45:50Z","duration":130,"job_ids":[303539447,303539448]},{"id":301842034,"repository_id":8014235,"commit_id":89009741,"number":"753","event_type":"pull_request","pull_request":true,"pull_request_title":"[WIP]
273
+ Switch from Pulse to Contributions","pull_request_number":212,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-14T09:03:58Z","finished_at":"2017-11-14T09:04:53Z","duration":94,"job_ids":[301842035,301842036]},{"id":301842009,"repository_id":8014235,"commit_id":89009735,"number":"752","event_type":"push","pull_request":false,"pull_request_title":null,"pull_request_number":null,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-14T09:03:53Z","finished_at":"2017-11-14T09:05:02Z","duration":107,"job_ids":[301842011,301842013]},{"id":301839291,"repository_id":8014235,"commit_id":89008760,"number":"751","event_type":"pull_request","pull_request":true,"pull_request_title":"[WIP]
274
+ Switch from Pulse to Contributions","pull_request_number":212,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-14T08:55:12Z","finished_at":"2017-11-14T08:56:35Z","duration":145,"job_ids":[301839292,301839293]},{"id":301839278,"repository_id":8014235,"commit_id":89008757,"number":"750","event_type":"push","pull_request":false,"pull_request_title":null,"pull_request_number":null,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-14T08:55:09Z","finished_at":"2017-11-14T08:56:09Z","duration":112,"job_ids":[301839279,301839281]},{"id":301837732,"repository_id":8014235,"commit_id":89008261,"number":"749","event_type":"pull_request","pull_request":true,"pull_request_title":"[WIP]
275
+ Switch from Pulse to Contributions","pull_request_number":212,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-14T08:50:39Z","finished_at":"2017-11-14T08:51:38Z","duration":110,"job_ids":[301837733,301837734]},{"id":301837450,"repository_id":8014235,"commit_id":89008151,"number":"748","event_type":"push","pull_request":false,"pull_request_title":null,"pull_request_number":null,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-14T08:49:35Z","finished_at":"2017-11-14T08:51:09Z","duration":134,"job_ids":[301837451,301837452]},{"id":301836173,"repository_id":8014235,"commit_id":89007762,"number":"747","event_type":"pull_request","pull_request":true,"pull_request_title":"[WIP]
276
+ Switch from Pulse to Contributions","pull_request_number":212,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-14T08:46:26Z","finished_at":"2017-11-14T08:47:41Z","duration":112,"job_ids":[301836174,301836175]},{"id":301836166,"repository_id":8014235,"commit_id":89007758,"number":"746","event_type":"push","pull_request":false,"pull_request_title":null,"pull_request_number":null,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-14T08:46:03Z","finished_at":"2017-11-14T08:47:14Z","duration":126,"job_ids":[301836167,301836168]},{"id":301833905,"repository_id":8014235,"commit_id":89006905,"number":"745","event_type":"pull_request","pull_request":true,"pull_request_title":"[WIP]
277
+ Switch from Pulse to Contributions","pull_request_number":212,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-14T08:38:10Z","finished_at":"2017-11-14T08:39:15Z","duration":104,"job_ids":[301833906,301833907]},{"id":301833893,"repository_id":8014235,"commit_id":89006900,"number":"744","event_type":"push","pull_request":false,"pull_request_title":null,"pull_request_number":null,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-14T08:38:05Z","finished_at":"2017-11-14T08:39:14Z","duration":109,"job_ids":[301833894,301833895]},{"id":301833017,"repository_id":8014235,"commit_id":89006580,"number":"743","event_type":"pull_request","pull_request":true,"pull_request_title":"[WIP]
278
+ Switch from Pulse to Contributions","pull_request_number":212,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"failed","started_at":"2017-11-14T08:35:27Z","finished_at":"2017-11-14T08:36:48Z","duration":109,"job_ids":[301833020,301833023]},{"id":301832956,"repository_id":8014235,"commit_id":89006575,"number":"742","event_type":"push","pull_request":false,"pull_request_title":null,"pull_request_number":null,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"failed","started_at":"2017-11-14T08:35:12Z","finished_at":"2017-11-14T08:36:10Z","duration":95,"job_ids":[301832957,301832958]},{"id":301828340,"repository_id":8014235,"commit_id":89004987,"number":"741","event_type":"pull_request","pull_request":true,"pull_request_title":"[WIP]
279
+ Switch from Pulse to Contributions","pull_request_number":212,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-14T08:21:00Z","finished_at":"2017-11-14T08:22:10Z","duration":113,"job_ids":[301828341,301828342]},{"id":301828323,"repository_id":8014235,"commit_id":89004980,"number":"740","event_type":"push","pull_request":false,"pull_request_title":null,"pull_request_number":null,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-14T08:20:56Z","finished_at":"2017-11-14T08:21:54Z","duration":101,"job_ids":[301828324,301828325]},{"id":301827162,"repository_id":8014235,"commit_id":89004557,"number":"739","event_type":"pull_request","pull_request":true,"pull_request_title":"[WIP]
280
+ Switch from Pulse to Contributions","pull_request_number":212,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-14T08:16:41Z","finished_at":"2017-11-14T08:17:49Z","duration":123,"job_ids":[301827163,301827164]},{"id":301827147,"repository_id":8014235,"commit_id":89004553,"number":"738","event_type":"push","pull_request":false,"pull_request_title":null,"pull_request_number":null,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"passed","started_at":"2017-11-14T08:16:32Z","finished_at":"2017-11-14T08:17:33Z","duration":101,"job_ids":[301827148,301827149]},{"id":301826821,"repository_id":8014235,"commit_id":89004443,"number":"737","event_type":"pull_request","pull_request":true,"pull_request_title":"[WIP]
281
+ Switch from Pulse to Contributions","pull_request_number":212,"config":{"language":"ruby","rvm":["2.3.3","2.4.1"],".result":"configured","group":"stable","dist":"trusty"},"state":"failed","started_at":"2017-11-14T08:15:33Z","finished_at":"2017-11-14T08:17:48Z","duration":169,"job_ids":[301826822,301826823]}],"commits":[{"id":89576423,"sha":"a4c31b74ae09de583357c243da571d5f98e0392e","branch":"master","tag":null,"message":"Auto
282
+ merge of #213 - how-is:remove-pulse, r=duckinator\n\nRemove XPulse class.\n\nSecond
283
+ part of #212.","committed_at":"2017-11-17T14:18:26Z","author_name":"The Bundler
284
+ Bot","author_email":"bot@bundler.io","committer_name":"The Bundler Bot","committer_email":"bot@bundler.io","compare_url":"https://github.com/how-is/how_is/compare/44fab368e6b0...a4c31b74ae09","pull_request_number":null},{"id":89576137,"sha":"a4c31b74ae09de583357c243da571d5f98e0392e","branch":"auto","tag":null,"message":"Auto
285
+ merge of #213 - how-is:remove-pulse, r=duckinator\n\nRemove XPulse class.\n\nSecond
286
+ part of #212.","committed_at":"2017-11-17T14:18:26Z","author_name":"The Bundler
287
+ Bot","author_email":"bot@bundler.io","committer_name":"The Bundler Bot","committer_email":"bot@bundler.io","compare_url":"https://github.com/how-is/how_is/compare/44fab368e6b0...a4c31b74ae09","pull_request_number":null},{"id":89575396,"sha":"8223a75d3c3a5da9f0035e4b7f1c95b7a82ec003","branch":"master","tag":null,"message":"Remove
288
+ XPulse class.","committed_at":"2017-11-17T14:12:59Z","author_name":"Ellen
289
+ 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/pull/213","pull_request_number":213},{"id":89575273,"sha":"c1a78b3b5cd4ebf8c2d97cc8553689f91a875c36","branch":"remove-pulse","tag":null,"message":"Remove
290
+ XPulse class.","committed_at":"2017-11-17T14:12:59Z","author_name":"Ellen
291
+ 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/commit/c1a78b3b5cd4","pull_request_number":null},{"id":89574573,"sha":"44fab368e6b0b090130e11f151d8c079a1b67202","branch":"master","tag":null,"message":"Auto
292
+ merge of #212 - how-is:switch-from-pulse-to-contributions, r=olleolleolle\n\nSwitch
293
+ from Pulse to Contributions\n\nThis PR switches from scraping `/pulse` to
294
+ using the `Contributions` class, which builds on the GitHub API instead.\n\nThis
295
+ PR will _not_ modify or remove the Pulse class in any way, to reduce noise
296
+ in the diff. That''ll be handled in a separate PR afterwards. However, I will
297
+ rename it to `XPulse` just to prove that it is in fact not used.\n\nTODO:\n\n1.
298
+ [x] Rename `Pulse` to `XPulse`.\n2. [x] Fix test failures.\n3. [x] Make `HowIs.from_config(config,
299
+ date)` actually use the `date` argument.","committed_at":"2017-11-17T14:07:19Z","author_name":"The
300
+ Bundler Bot","author_email":"bot@bundler.io","committer_name":"The Bundler
301
+ Bot","committer_email":"bot@bundler.io","compare_url":"https://github.com/how-is/how_is/compare/3a383d627a8b...44fab368e6b0","pull_request_number":null},{"id":89574419,"sha":"44fab368e6b0b090130e11f151d8c079a1b67202","branch":"auto","tag":null,"message":"Auto
302
+ merge of #212 - how-is:switch-from-pulse-to-contributions, r=olleolleolle\n\nSwitch
303
+ from Pulse to Contributions\n\nThis PR switches from scraping `/pulse` to
304
+ using the `Contributions` class, which builds on the GitHub API instead.\n\nThis
305
+ PR will _not_ modify or remove the Pulse class in any way, to reduce noise
306
+ in the diff. That''ll be handled in a separate PR afterwards. However, I will
307
+ rename it to `XPulse` just to prove that it is in fact not used.\n\nTODO:\n\n1.
308
+ [x] Rename `Pulse` to `XPulse`.\n2. [x] Fix test failures.\n3. [x] Make `HowIs.from_config(config,
309
+ date)` actually use the `date` argument.","committed_at":"2017-11-17T14:07:19Z","author_name":"The
310
+ Bundler Bot","author_email":"bot@bundler.io","committer_name":"The Bundler
311
+ Bot","committer_email":"bot@bundler.io","compare_url":"https://github.com/how-is/how_is/compare/3a383d627a8b...44fab368e6b0","pull_request_number":null},{"id":89571283,"sha":"a5a0899a3632bb6987e1ab1e3b54aaa2cf49b494","branch":"master","tag":null,"message":"Add
312
+ a note about potentially supporting frontmatter in JSON reports in the future.","committed_at":"2017-11-17T13:44:33Z","author_name":"Ellen
313
+ 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/pull/212","pull_request_number":212},{"id":89571274,"sha":"2cd22d4e6ffd82932d72fae574ae3524b006f632","branch":"switch-from-pulse-to-contributions","tag":null,"message":"Add
314
+ a note about potentially supporting frontmatter in JSON reports in the future.","committed_at":"2017-11-17T13:44:33Z","author_name":"Ellen
315
+ 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/f00d72f55655...2cd22d4e6ffd","pull_request_number":null},{"id":89009741,"sha":"837a9308420c55be3b817eba9c34ae90ad4fdbb4","branch":"master","tag":null,"message":"Use
316
+ config, since it''s already defined.","committed_at":"2017-11-14T09:01:25Z","author_name":"Ellen
317
+ 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/pull/212","pull_request_number":212},{"id":89009735,"sha":"f00d72f556551a9baca14db6497d6e3d9c7722f6","branch":"switch-from-pulse-to-contributions","tag":null,"message":"Use
318
+ config, since it''s already defined.","committed_at":"2017-11-14T09:01:25Z","author_name":"Ellen
319
+ 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/e50a0890cb5d...f00d72f55655","pull_request_number":null},{"id":89008760,"sha":"c7b32606541af1df9e20a674bb42556e541107c5","branch":"master","tag":null,"message":"add
320
+ frozen_string_literal magic comment.","committed_at":"2017-11-14T08:55:00Z","author_name":"Ellen
321
+ 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/pull/212","pull_request_number":212},{"id":89008757,"sha":"e50a0890cb5d0a4166b34821491f7243c3f20cd0","branch":"switch-from-pulse-to-contributions","tag":null,"message":"add
322
+ frozen_string_literal magic comment.","committed_at":"2017-11-14T08:55:00Z","author_name":"Ellen
323
+ 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/dce3ba426987...e50a0890cb5d","pull_request_number":null},{"id":89008261,"sha":"c6bf7862e33d36038b7a7c988ea8bb1f46ea93fd","branch":"master","tag":null,"message":"Add
324
+ KludgeBucket to start isolating and clearly labeling hacky garbge.","committed_at":"2017-11-14T08:49:27Z","author_name":"Ellen
325
+ 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/pull/212","pull_request_number":212},{"id":89008151,"sha":"dce3ba42698799b58c752234295ec8ea8d53af9f","branch":"switch-from-pulse-to-contributions","tag":null,"message":"Add
326
+ KludgeBucket to start isolating and clearly labeling hacky garbge.","committed_at":"2017-11-14T08:49:27Z","author_name":"Ellen
327
+ 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/9eea18daafcf...dce3ba426987","pull_request_number":null},{"id":89007762,"sha":"af0f8a0be4203e00906c5f2240a36c32e22ad4f2","branch":"master","tag":null,"message":"Split
328
+ out prepare_report_data().","committed_at":"2017-11-14T08:45:54Z","author_name":"Ellen
329
+ 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/pull/212","pull_request_number":212},{"id":89007758,"sha":"9eea18daafcfc5d5111a7e7226f9c1d9dbbda9e0","branch":"switch-from-pulse-to-contributions","tag":null,"message":"Split
330
+ out prepare_report_data().","committed_at":"2017-11-14T08:45:54Z","author_name":"Ellen
331
+ 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/3625bf6400a7...9eea18daafcf","pull_request_number":null},{"id":89006905,"sha":"fd6f76ac010a04a37d02d74f741d1948239c3e40","branch":"master","tag":null,"message":"how
332
+ the everloving fuck did this work before?","committed_at":"2017-11-14T08:37:57Z","author_name":"Ellen
333
+ 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/pull/212","pull_request_number":212},{"id":89006900,"sha":"3625bf6400a7b2cffed7a7ad9d59ae4d98cc6089","branch":"switch-from-pulse-to-contributions","tag":null,"message":"how
334
+ the everloving fuck did this work before?","committed_at":"2017-11-14T08:37:57Z","author_name":"Ellen
335
+ 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/7b8dc0605533...3625bf6400a7","pull_request_number":null},{"id":89006580,"sha":"6632f360af1de25c649aaef1b07a218b25d03246","branch":"master","tag":null,"message":"Make
336
+ exe/how_is work again.","committed_at":"2017-11-14T08:34:52Z","author_name":"Ellen
337
+ 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/pull/212","pull_request_number":212},{"id":89006575,"sha":"7b8dc0605533bb5306949c5f1ebadf5b75ae3502","branch":"switch-from-pulse-to-contributions","tag":null,"message":"Make
338
+ exe/how_is work again.","committed_at":"2017-11-14T08:34:52Z","author_name":"Ellen
339
+ 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/c48b2f08c95e...7b8dc0605533","pull_request_number":null},{"id":89004987,"sha":"6734201344c03a3245f89ea7cec921a84a170461","branch":"master","tag":null,"message":"use
340
+ meaningful heredoc delimiters","committed_at":"2017-11-14T08:18:43Z","author_name":"Ellen
341
+ 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/pull/212","pull_request_number":212},{"id":89004980,"sha":"c48b2f08c95e39e743a48d40b2d2a0e9ed6fc6ff","branch":"switch-from-pulse-to-contributions","tag":null,"message":"use
342
+ meaningful heredoc delimiters","committed_at":"2017-11-14T08:18:43Z","author_name":"Ellen
343
+ 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/cab26d8e845d...c48b2f08c95e","pull_request_number":null},{"id":89004557,"sha":"011a5940d3744811875e249b7c15406e25c77792","branch":"master","tag":null,"message":"Fixed
344
+ last failing test.","committed_at":"2017-11-14T08:16:19Z","author_name":"Ellen
345
+ 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/pull/212","pull_request_number":212},{"id":89004553,"sha":"cab26d8e845db50010e8c8a5c280bce2e1da160c","branch":"switch-from-pulse-to-contributions","tag":null,"message":"Fixed
346
+ last failing test.","committed_at":"2017-11-14T08:16:19Z","author_name":"Ellen
347
+ 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/bf9710ca93ca...cab26d8e845d","pull_request_number":null},{"id":89004443,"sha":"eee9b65cf729b2847d52f1ee0da36185dcfbf98d","branch":"master","tag":null,"message":"[BROKEN]
348
+ refactor to use end_date instead of start_date everywhere.","committed_at":"2017-11-14T08:15:19Z","author_name":"Ellen
349
+ 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/pull/212","pull_request_number":212}]}'
350
+ http_version:
351
+ recorded_at: Fri, 08 Dec 2017 22:42:35 GMT
352
+ - request:
353
+ method: get
354
+ uri: http://api.travis-ci.org/repos///builds
355
+ body:
356
+ encoding: US-ASCII
357
+ string: ''
358
+ headers:
359
+ Accept-Encoding:
360
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
361
+ Accept:
362
+ - application/vnd.travis-ci.2+json
363
+ User-Agent:
364
+ - Ruby
365
+ Host:
366
+ - api.travis-ci.org
367
+ response:
368
+ status:
369
+ code: 301
370
+ message: Moved Permanently
371
+ headers:
372
+ Connection:
373
+ - keep-alive
374
+ Server:
375
+ - nginx
376
+ Date:
377
+ - Sat, 09 Dec 2017 02:16:04 GMT
378
+ Content-Type:
379
+ - text/html
380
+ Content-Length:
381
+ - '0'
382
+ Access-Control-Allow-Origin:
383
+ - "*"
384
+ Access-Control-Allow-Credentials:
385
+ - 'true'
386
+ Access-Control-Expose-Headers:
387
+ - Content-Type, Cache-Control, Expires, Etag, Last-Modified
388
+ Location:
389
+ - https://api.travis-ci.org/repos///builds
390
+ X-Request-Id:
391
+ - 4b95e41f-cf58-4e7b-952b-3bc65dfc2255
392
+ Via:
393
+ - 1.1 vegur
394
+ body:
395
+ encoding: UTF-8
396
+ string: ''
397
+ http_version:
398
+ recorded_at: Sat, 09 Dec 2017 02:16:04 GMT
399
+ - request:
400
+ method: get
401
+ uri: https://api.travis-ci.org/repos///builds
402
+ body:
403
+ encoding: US-ASCII
404
+ string: ''
405
+ headers:
406
+ Accept-Encoding:
407
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
408
+ Accept:
409
+ - application/vnd.travis-ci.2+json
410
+ User-Agent:
411
+ - Ruby
412
+ Host:
413
+ - api.travis-ci.org
414
+ response:
415
+ status:
416
+ code: 404
417
+ message: Not Found
418
+ headers:
419
+ Connection:
420
+ - keep-alive
421
+ Server:
422
+ - nginx
423
+ Date:
424
+ - Sat, 09 Dec 2017 02:16:05 GMT
425
+ Content-Type:
426
+ - application/json
427
+ Transfer-Encoding:
428
+ - chunked
429
+ Access-Control-Allow-Origin:
430
+ - "*"
431
+ Access-Control-Allow-Credentials:
432
+ - 'true'
433
+ Access-Control-Expose-Headers:
434
+ - Content-Type, Cache-Control, Expires, Etag, Last-Modified
435
+ Strict-Transport-Security:
436
+ - max-age=31536000
437
+ X-Oauth-Scopes:
438
+ - ''
439
+ Vary:
440
+ - Accept-Encoding
441
+ X-Rack-Cache:
442
+ - miss
443
+ X-Request-Id:
444
+ - aecf7296-c072-4331-9086-77a020a35a05
445
+ Via:
446
+ - 1.1 vegur
447
+ body:
448
+ encoding: ASCII-8BIT
449
+ string: '{"file":"not found"}'
450
+ http_version:
451
+ recorded_at: Sat, 09 Dec 2017 02:16:05 GMT
165
452
  recorded_with: VCR 3.0.3