how_is 18.1.0 → 19.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.codeclimate.yml +22 -0
- data/CHANGELOG.md +23 -0
- data/Rakefile +11 -0
- data/fixtures/vcr_cassettes/how-is-how-is-travis-api-repos-builds.yml +165 -0
- data/fixtures/vcr_cassettes/how_is_contributions_default_branch.yml +151 -0
- data/how_is.gemspec +1 -2
- data/lib/how_is/builds.rb +36 -0
- data/lib/how_is/cli.rb +80 -59
- data/lib/how_is/contributions.rb +22 -23
- data/lib/how_is/version.rb +1 -1
- data/lib/how_is.rb +3 -2
- metadata +9 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 179757abf82f4dd4e9b214d5f128c5ebd81d0ff0
|
4
|
+
data.tar.gz: d252caf2ae299e2a88c6491e228e06589561e404
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ff22d8943d1b5f051bec0ce43901cacf39848aa0331b534390f9d9ffd033bb1134bc419ec1729257ce094a0fbe6a032d52a76cb0981460edf2ec33dbf4fb766
|
7
|
+
data.tar.gz: e09adb9c29bb218b750cdda73c0fd8f3f01439ebfa0dbfe8bdc8f6caee7ad32064fd4dc1f1d1fe47e64cb1b741443c229ee9a2d049ceef55f126b7176a3fa7fb
|
data/.codeclimate.yml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
---
|
2
|
+
engines:
|
3
|
+
bundler-audit:
|
4
|
+
enabled: false
|
5
|
+
duplication:
|
6
|
+
enabled: true
|
7
|
+
config:
|
8
|
+
languages:
|
9
|
+
- ruby
|
10
|
+
fixme:
|
11
|
+
enabled: true
|
12
|
+
rubocop:
|
13
|
+
enabled: true
|
14
|
+
channel: rubocop-0-49
|
15
|
+
ratings:
|
16
|
+
paths:
|
17
|
+
- Gemfile.lock
|
18
|
+
- "**.rb"
|
19
|
+
exclude_paths:
|
20
|
+
- spec/
|
21
|
+
- ".bundle/"
|
22
|
+
- vendor/
|
data/CHANGELOG.md
CHANGED
@@ -1,10 +1,33 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## [19.0.0](https://github.com/how-is/how_is/tree/19.0.0) (2017-09-15)
|
4
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v18.1.0...19.0.0)
|
5
|
+
|
6
|
+
**Closed issues:**
|
7
|
+
|
8
|
+
- move away from slop bc of conflicts [\#202](https://github.com/how-is/how_is/issues/202)
|
9
|
+
- Contributions: look up default\_branch in GitHub API [\#195](https://github.com/how-is/how_is/issues/195)
|
10
|
+
- Only enable VCR when used [\#185](https://github.com/how-is/how_is/issues/185)
|
11
|
+
|
12
|
+
**Merged pull requests:**
|
13
|
+
|
14
|
+
- Move away from slop [\#205](https://github.com/how-is/how_is/pull/205) ([duckinator](https://github.com/duckinator))
|
15
|
+
- add .codeclimate.yml [\#204](https://github.com/how-is/how_is/pull/204) ([duckinator](https://github.com/duckinator))
|
16
|
+
- quick refactor of spec/capture\_warnings. [\#203](https://github.com/how-is/how_is/pull/203) ([duckinator](https://github.com/duckinator))
|
17
|
+
- \[docs\] YARD annotation for example [\#201](https://github.com/how-is/how_is/pull/201) ([olleolleolle](https://github.com/olleolleolle))
|
18
|
+
- Refactor: introduce pretty\_date\(date\) [\#199](https://github.com/how-is/how_is/pull/199) ([olleolleolle](https://github.com/olleolleolle))
|
19
|
+
- update VCR fixture [\#197](https://github.com/how-is/how_is/pull/197) ([duckinator](https://github.com/duckinator))
|
20
|
+
- Contributions: default\_branch fetching [\#196](https://github.com/how-is/how_is/pull/196) ([olleolleolle](https://github.com/olleolleolle))
|
21
|
+
- update tessellator-fetcher to ~\>5.0.2 [\#193](https://github.com/how-is/how_is/pull/193) ([duckinator](https://github.com/duckinator))
|
22
|
+
- Builds: a Travis CI API fetcher [\#192](https://github.com/how-is/how_is/pull/192) ([olleolleolle](https://github.com/olleolleolle))
|
23
|
+
- Contributions: YARD docblock type typo; typos [\#191](https://github.com/how-is/how_is/pull/191) ([olleolleolle](https://github.com/olleolleolle))
|
24
|
+
|
3
25
|
## [v18.1.0](https://github.com/how-is/how_is/tree/v18.1.0) (2017-08-06)
|
4
26
|
[Full Changelog](https://github.com/how-is/how_is/compare/v18.0.5...v18.1.0)
|
5
27
|
|
6
28
|
**Merged pull requests:**
|
7
29
|
|
30
|
+
- bump version -- 18.1.0 [\#190](https://github.com/how-is/how_is/pull/190) ([duckinator](https://github.com/duckinator))
|
8
31
|
- Replace Pulse scraping with API calls [\#187](https://github.com/how-is/how_is/pull/187) ([duckinator](https://github.com/duckinator))
|
9
32
|
|
10
33
|
## [v18.0.5](https://github.com/how-is/how_is/tree/v18.0.5) (2017-08-06)
|
data/Rakefile
CHANGED
@@ -87,3 +87,14 @@ task :new_contributors, [:user, :repo, :start_date] => [] do |_t, args|
|
|
87
87
|
puts contributions.summary
|
88
88
|
puts contributions.new_contributors
|
89
89
|
end
|
90
|
+
|
91
|
+
desc "Display duration of latest CI build. CI builds supported include Travis."
|
92
|
+
task :test_execution_time, [:user, :repo] => [] do |_t, args|
|
93
|
+
require "how_is/builds"
|
94
|
+
user = args[:user] || "how-is"
|
95
|
+
repo = args[:repo] || "how_is"
|
96
|
+
builds = HowIs::Builds.new(user: user, repo: repo)
|
97
|
+
|
98
|
+
puts "Test execution information:"
|
99
|
+
puts builds.summary
|
100
|
+
end
|
@@ -0,0 +1,165 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://api.travis-ci.org/repos/how-is/how_is/builds?event_type=push
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- application/vnd.travis-ci.2+json
|
14
|
+
User-Agent:
|
15
|
+
- TessellatorFetcher/v5.0.1
|
16
|
+
Host:
|
17
|
+
- api.travis-ci.org
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 301
|
21
|
+
message: Moved Permanently
|
22
|
+
headers:
|
23
|
+
Connection:
|
24
|
+
- keep-alive
|
25
|
+
Server:
|
26
|
+
- nginx
|
27
|
+
Date:
|
28
|
+
- Sun, 06 Aug 2017 19:19:39 GMT
|
29
|
+
Content-Type:
|
30
|
+
- text/html
|
31
|
+
Content-Length:
|
32
|
+
- '0'
|
33
|
+
Access-Control-Allow-Origin:
|
34
|
+
- "*"
|
35
|
+
Access-Control-Allow-Credentials:
|
36
|
+
- 'true'
|
37
|
+
Access-Control-Expose-Headers:
|
38
|
+
- Content-Type, Cache-Control, Expires, Etag, Last-Modified
|
39
|
+
Location:
|
40
|
+
- https://api.travis-ci.org/repos/how-is/how_is/builds?event_type=push
|
41
|
+
X-Request-Id:
|
42
|
+
- 10b0ed57-ec0e-48c2-ba64-6d89e18d6ca1
|
43
|
+
Via:
|
44
|
+
- 1.1 vegur
|
45
|
+
body:
|
46
|
+
encoding: UTF-8
|
47
|
+
string: ''
|
48
|
+
http_version:
|
49
|
+
recorded_at: Sun, 06 Aug 2017 19:19:39 GMT
|
50
|
+
- request:
|
51
|
+
method: get
|
52
|
+
uri: https://api.travis-ci.org/repos/how-is/how_is/builds?event_type=push
|
53
|
+
body:
|
54
|
+
encoding: US-ASCII
|
55
|
+
string: ''
|
56
|
+
headers:
|
57
|
+
Accept-Encoding:
|
58
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
59
|
+
Accept:
|
60
|
+
- application/vnd.travis-ci.2+json
|
61
|
+
User-Agent:
|
62
|
+
- TessellatorFetcher/v5.0.1
|
63
|
+
Host:
|
64
|
+
- api.travis-ci.org
|
65
|
+
response:
|
66
|
+
status:
|
67
|
+
code: 200
|
68
|
+
message: OK
|
69
|
+
headers:
|
70
|
+
Connection:
|
71
|
+
- keep-alive
|
72
|
+
Server:
|
73
|
+
- nginx
|
74
|
+
Date:
|
75
|
+
- Sun, 06 Aug 2017 19:20:42 GMT
|
76
|
+
Content-Type:
|
77
|
+
- application/json;charset=utf-8
|
78
|
+
Transfer-Encoding:
|
79
|
+
- chunked
|
80
|
+
Access-Control-Allow-Origin:
|
81
|
+
- "*"
|
82
|
+
Access-Control-Allow-Credentials:
|
83
|
+
- 'true'
|
84
|
+
Access-Control-Expose-Headers:
|
85
|
+
- Content-Type, Cache-Control, Expires, Etag, Last-Modified
|
86
|
+
Strict-Transport-Security:
|
87
|
+
- max-age=31536000
|
88
|
+
X-Endpoint:
|
89
|
+
- Travis::Api::App::Endpoint::Repos
|
90
|
+
X-Pattern:
|
91
|
+
- "/:owner_name/:name/builds"
|
92
|
+
X-Oauth-Scopes:
|
93
|
+
- public
|
94
|
+
X-Accepted-Oauth-Scopes:
|
95
|
+
- public
|
96
|
+
Vary:
|
97
|
+
- Accept,Accept-Encoding
|
98
|
+
Cache-Control:
|
99
|
+
- no-cache
|
100
|
+
X-Rack-Cache:
|
101
|
+
- miss
|
102
|
+
X-Request-Id:
|
103
|
+
- ccc7b2b7-9214-42eb-8203-ab4b1783d7ff
|
104
|
+
Via:
|
105
|
+
- 1.1 vegur
|
106
|
+
body:
|
107
|
+
encoding: ASCII-8BIT
|
108
|
+
string: '{"builds":[{"id":261544542,"repository_id":8014235,"commit_id":76060199,"number":"594","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":"precise"},"state":"passed","started_at":"2017-08-06T14:56:07Z","finished_at":"2017-08-06T14:57:18Z","duration":137,"job_ids":[261544543,261544544]},{"id":261544463,"repository_id":8014235,"commit_id":76060169,"number":"593","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":"precise"},"state":"passed","started_at":"2017-08-06T14:55:34Z","finished_at":"2017-08-06T14:56:46Z","duration":138,"job_ids":[261544464,261544465]},{"id":261543823,"repository_id":8014235,"commit_id":76059955,"number":"591","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":"precise"},"state":"passed","started_at":"2017-08-06T14:51:49Z","finished_at":"2017-08-06T14:53:57Z","duration":203,"job_ids":[261543824,261543825]},{"id":261542619,"repository_id":8014235,"commit_id":76059595,"number":"590","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":"precise"},"state":"passed","started_at":"2017-08-06T14:45:38Z","finished_at":"2017-08-06T14:47:27Z","duration":181,"job_ids":[261542620,261542621]},{"id":261541975,"repository_id":8014235,"commit_id":76059412,"number":"588","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":"precise"},"state":"passed","started_at":"2017-08-06T14:42:39Z","finished_at":"2017-08-06T14:45:18Z","duration":220,"job_ids":[261541976,261541977]},{"id":261541831,"repository_id":8014235,"commit_id":76059360,"number":"586","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":"precise"},"state":"passed","started_at":"2017-08-06T14:41:33Z","finished_at":"2017-08-06T14:42:58Z","duration":157,"job_ids":[261541832,261541833]},{"id":261540169,"repository_id":8014235,"commit_id":76058893,"number":"584","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":"precise"},"state":"failed","started_at":"2017-08-06T14:34:55Z","finished_at":"2017-08-06T14:37:05Z","duration":247,"job_ids":[261540170,261540171]},{"id":261539470,"repository_id":8014235,"commit_id":76058657,"number":"583","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":"precise"},"state":"failed","started_at":"2017-08-06T14:30:55Z","finished_at":"2017-08-06T14:32:10Z","duration":143,"job_ids":[261539471,261539472]},{"id":261538934,"repository_id":8014235,"commit_id":76058517,"number":"580","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":"precise"},"state":"failed","started_at":"2017-08-06T14:28:24Z","finished_at":"2017-08-06T14:29:47Z","duration":160,"job_ids":[261538935,261538936]},{"id":261538363,"repository_id":8014235,"commit_id":76058330,"number":"578","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":"precise"},"state":"failed","started_at":"2017-08-06T14:24:52Z","finished_at":"2017-08-06T14:27:08Z","duration":203,"job_ids":[261538364,261538365]},{"id":261525512,"repository_id":8014235,"commit_id":76054257,"number":"576","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":"precise"},"state":"passed","started_at":"2017-08-06T13:14:14Z","finished_at":"2017-08-06T13:16:27Z","duration":259,"job_ids":[261525513,261525514]},{"id":261517523,"repository_id":8014235,"commit_id":76051565,"number":"575","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":"precise"},"state":"passed","started_at":"2017-08-06T12:25:48Z","finished_at":"2017-08-06T12:27:03Z","duration":144,"job_ids":[261517524,261517525]},{"id":261517503,"repository_id":8014235,"commit_id":76051555,"number":"574","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":"precise"},"state":"passed","started_at":"2017-08-06T12:25:32Z","finished_at":"2017-08-06T12:27:20Z","duration":178,"job_ids":[261517504,261517505]},{"id":261514987,"repository_id":8014235,"commit_id":76050771,"number":"571","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":"precise"},"state":"passed","started_at":"2017-08-06T12:10:31Z","finished_at":"2017-08-06T12:12:16Z","duration":188,"job_ids":[261514988,261514989]},{"id":261513254,"repository_id":8014235,"commit_id":76050220,"number":"570","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":"precise"},"state":"passed","started_at":"2017-08-06T12:00:41Z","finished_at":"2017-08-06T12:04:12Z","duration":269,"job_ids":[261513255,261513256]},{"id":261482578,"repository_id":8014235,"commit_id":76039974,"number":"569","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":"precise"},"state":"passed","started_at":"2017-08-06T08:40:46Z","finished_at":"2017-08-06T08:42:30Z","duration":143,"job_ids":[261482579,261482580]},{"id":261457931,"repository_id":8014235,"commit_id":76032205,"number":"567","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":"precise"},"state":"passed","started_at":"2017-08-06T05:25:31Z","finished_at":"2017-08-06T05:26:36Z","duration":127,"job_ids":[261457932,261457933]},{"id":261399424,"repository_id":8014235,"commit_id":76015649,"number":"566","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":"precise"},"state":"passed","started_at":"2017-08-05T21:22:52Z","finished_at":"2017-08-05T21:24:24Z","duration":163,"job_ids":[261399425,261399426]},{"id":257049384,"repository_id":8014235,"commit_id":74727936,"number":"551","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":"precise"},"state":"passed","started_at":"2017-07-24T20:29:15Z","finished_at":"2017-07-24T20:30:24Z","duration":133,"job_ids":[257049385,257049386]},{"id":257047944,"repository_id":8014235,"commit_id":74727483,"number":"549","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":"precise"},"state":"passed","started_at":"2017-07-24T20:25:37Z","finished_at":"2017-07-24T20:27:42Z","duration":189,"job_ids":[257047946,257047948]},{"id":257044081,"repository_id":8014235,"commit_id":74726378,"number":"548","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":"precise"},"state":"passed","started_at":"2017-07-24T20:15:30Z","finished_at":"2017-07-24T20:17:19Z","duration":208,"job_ids":[257044082,257044083]},{"id":254221687,"repository_id":8014235,"commit_id":73884312,"number":"544","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":"precise"},"state":"passed","started_at":"2017-07-16T19:43:21Z","finished_at":"2017-07-16T19:45:15Z","duration":164,"job_ids":[254221688,254221689]},{"id":254221003,"repository_id":8014235,"commit_id":73884104,"number":"542","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":"precise"},"state":"passed","started_at":"2017-07-16T19:40:11Z","finished_at":"2017-07-16T19:42:04Z","duration":224,"job_ids":[254221004,254221005]},{"id":254178194,"repository_id":8014235,"commit_id":73871523,"number":"532","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":"precise"},"state":"passed","started_at":"2017-07-16T16:24:08Z","finished_at":"2017-07-16T16:25:44Z","duration":161,"job_ids":[254178195,254178196]},{"id":254177271,"repository_id":8014235,"commit_id":73871232,"number":"529","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":"precise"},"state":"passed","started_at":"2017-07-16T16:19:33Z","finished_at":"2017-07-16T16:21:34Z","duration":218,"job_ids":[254177272,254177273]}],"commits":[{"id":76060199,"sha":"5d148159a2d5e64f817cc0a844f5be8cd3b586ff","branch":"v18.1.0","message":"Merge
|
109
|
+
pull request #190 from how-is/new-release\n\nbump version -- 18.1.0","committed_at":null,"author_name":"Ellen
|
110
|
+
Marie Dash","author_email":"the@smallest.dog","committer_name":"GitHub","committer_email":"noreply@github.com","compare_url":"https://github.com/how-is/how_is/compare/v18.1.0","pull_request_number":null},{"id":76060169,"sha":"5d148159a2d5e64f817cc0a844f5be8cd3b586ff","branch":"master","message":"Merge
|
111
|
+
pull request #190 from how-is/new-release\n\nbump version -- 18.1.0","committed_at":"2017-08-06T14:55:30Z","author_name":"Ellen
|
112
|
+
Marie Dash","author_email":"the@smallest.dog","committer_name":"GitHub","committer_email":"noreply@github.com","compare_url":"https://github.com/how-is/how_is/compare/591a16aa48ec...5d148159a2d5","pull_request_number":null},{"id":76059955,"sha":"407f8d59d932ffa868cedf9a745bcaa767db38af","branch":"new-release","message":"bump
|
113
|
+
version -- 18.1.0","committed_at":"2017-08-06T14:51:36Z","author_name":"Ellen
|
114
|
+
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/407f8d59d932","pull_request_number":null},{"id":76059595,"sha":"591a16aa48ec4000b40391d0c0970722c576d7f1","branch":"master","message":"Merge
|
115
|
+
pull request #187 from how-is/replace-pulse-with-api-calls\n\n[WIP] Replace
|
116
|
+
Pulse scraping with API calls","committed_at":"2017-08-06T14:45:31Z","author_name":"Ellen
|
117
|
+
Marie Dash","author_email":"the@smallest.dog","committer_name":"GitHub","committer_email":"noreply@github.com","compare_url":"https://github.com/how-is/how_is/compare/25d9cafea1ba...591a16aa48ec","pull_request_number":null},{"id":76059412,"sha":"9869738c7a0f591212f2f0e1f1fb4a3897b57c3d","branch":"replace-pulse-with-api-calls","message":"follow
|
118
|
+
rubocop style guide","committed_at":"2017-08-06T14:42:04Z","author_name":"Ellen
|
119
|
+
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/3e4b53fa3a99...9869738c7a0f","pull_request_number":null},{"id":76059360,"sha":"3e4b53fa3a993fa2b13143ec037d7d8b1455e6c5","branch":"replace-pulse-with-api-calls","message":"fix
|
120
|
+
warning","committed_at":"2017-08-06T14:41:10Z","author_name":"Ellen Marie
|
121
|
+
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/8a7efd57b650...3e4b53fa3a99","pull_request_number":null},{"id":76058893,"sha":"8a7efd57b650065685bd43faccb9ce8d2b5e68e4","branch":"replace-pulse-with-api-calls","message":"remove
|
122
|
+
unneccessary comment","committed_at":"2017-08-06T14:34:48Z","author_name":"Ellen
|
123
|
+
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/6ac661226c15...8a7efd57b650","pull_request_number":null},{"id":76058657,"sha":"6ac661226c159260056c619fd582188a676c0a63","branch":"replace-pulse-with-api-calls","message":"misc
|
124
|
+
cleanup","committed_at":"2017-08-06T14:29:31Z","author_name":"Ellen Marie
|
125
|
+
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/ae42b759f810...6ac661226c15","pull_request_number":null},{"id":76058517,"sha":"ae42b759f810af9db4fe02fb90a61273865af569","branch":"replace-pulse-with-api-calls","message":"^.^","committed_at":"2017-08-06T14:28:18Z","author_name":"Ellen
|
126
|
+
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/e73594a7477e...ae42b759f810","pull_request_number":null},{"id":76058330,"sha":"e73594a7477e27662b27f5cc1d4e632c704a9993","branch":"replace-pulse-with-api-calls","message":"WOOOOOOOOO","committed_at":"2017-08-06T14:24:44Z","author_name":"Ellen
|
127
|
+
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/d714b771a1fd...e73594a7477e","pull_request_number":null},{"id":76054257,"sha":"d714b771a1fde5a5e615f3b1e15c4fb7038fbb00","branch":"replace-pulse-with-api-calls","message":"fix
|
128
|
+
Rakefile, handle authentication.","committed_at":"2017-08-06T13:13:03Z","author_name":"Ellen
|
129
|
+
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/8074b4861928...d714b771a1fd","pull_request_number":null},{"id":76051565,"sha":"25d9cafea1ba25f114f6bcaabb18974fd745a4d3","branch":"v18.0.5","message":"Merge
|
130
|
+
pull request #188 from how-is/new-release\n\nversion bump -- v18.0.5","committed_at":null,"author_name":"Ellen
|
131
|
+
Marie Dash","author_email":"the@smallest.dog","committer_name":"GitHub","committer_email":"noreply@github.com","compare_url":"https://github.com/how-is/how_is/compare/v18.0.5","pull_request_number":null},{"id":76051555,"sha":"25d9cafea1ba25f114f6bcaabb18974fd745a4d3","branch":"master","message":"Merge
|
132
|
+
pull request #188 from how-is/new-release\n\nversion bump -- v18.0.5","committed_at":"2017-08-06T12:25:28Z","author_name":"Ellen
|
133
|
+
Marie Dash","author_email":"the@smallest.dog","committer_name":"GitHub","committer_email":"noreply@github.com","compare_url":"https://github.com/how-is/how_is/compare/406d29d0d78e...25d9cafea1ba","pull_request_number":null},{"id":76050771,"sha":"54ddc4564208b271764c64019d521b23f0350e43","branch":"new-release","message":"version
|
134
|
+
bump -- v18.0.5","committed_at":"2017-08-06T12:10:22Z","author_name":"Ellen
|
135
|
+
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/54ddc4564208","pull_request_number":null},{"id":76050220,"sha":"8074b48619283f9dc124401bf5b336e78bc15eb4","branch":"replace-pulse-with-api-calls","message":"beginning
|
136
|
+
of work on replacing Pulse","committed_at":"2017-08-06T12:00:29Z","author_name":"Ellen
|
137
|
+
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/8074b4861928","pull_request_number":null},{"id":76039974,"sha":"406d29d0d78e3e8bf930c18ee779aca3c70f462c","branch":"master","message":"Merge
|
138
|
+
pull request #186 from how-is/ignore-gemfile-lock\n\nre-add Gemfile.lock to
|
139
|
+
.gitignore","committed_at":"2017-08-06T08:40:37Z","author_name":"Ellen Marie
|
140
|
+
Dash","author_email":"the@smallest.dog","committer_name":"GitHub","committer_email":"noreply@github.com","compare_url":"https://github.com/how-is/how_is/compare/7ab3658ef795...406d29d0d78e","pull_request_number":null},{"id":76032205,"sha":"8b676f7d2d501385c4e533cb428d800e90c8fa85","branch":"ignore-gemfile-lock","message":"re-add
|
141
|
+
Gemfile.lock to .gitignore","committed_at":"2017-08-06T05:25:18Z","author_name":"Ellen
|
142
|
+
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/8b676f7d2d50","pull_request_number":null},{"id":76015649,"sha":"7ab3658ef795581837d5a2a38f830566cd3d1901","branch":"master","message":"Merge
|
143
|
+
pull request #184 from olleolleolle/feature/track-new-contributors\n\nList
|
144
|
+
new contributors during period","committed_at":"2017-08-05T21:22:47Z","author_name":"Ellen
|
145
|
+
Marie Dash","author_email":"the@smallest.dog","committer_name":"GitHub","committer_email":"noreply@github.com","compare_url":"https://github.com/how-is/how_is/compare/6baf9704252e...7ab3658ef795","pull_request_number":null},{"id":74727936,"sha":"6baf9704252e08989c6119f0d9b5fd931bf7a1e2","branch":"master","message":"Merge
|
146
|
+
pull request #183 from how-is/remove-gemfile-lock\n\nRemove Gemfile.lock.","committed_at":"2017-07-24T20:29:09Z","author_name":"Ellen
|
147
|
+
Marie Dash","author_email":"the@smallest.dog","committer_name":"GitHub","committer_email":"noreply@github.com","compare_url":"https://github.com/how-is/how_is/compare/d22d6fa70b0d...6baf9704252e","pull_request_number":null},{"id":74727483,"sha":"2549a25b5a2eea47623c31c2101fc2d7c57119e5","branch":"remove-gemfile-lock","message":"Remove
|
148
|
+
Gemfile.lock.\n\nSee: http://yehudakatz.com/2010/12/16/clarifying-the-roles-of-the-gemspec-and-gemfile/","committed_at":"2017-07-24T20:23:53Z","author_name":"Ellen
|
149
|
+
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/2549a25b5a2e","pull_request_number":null},{"id":74726378,"sha":"d22d6fa70b0d952cf16c538498752659b97bfa3c","branch":"master","message":"Merge
|
150
|
+
pull request #182 from olleolleolle/fix/pr-180-replacement\n\nGemfile: add
|
151
|
+
pry as Git dep","committed_at":"2017-07-24T20:15:24Z","author_name":"Ellen
|
152
|
+
Marie Dash","author_email":"the@smallest.dog","committer_name":"GitHub","committer_email":"noreply@github.com","compare_url":"https://github.com/how-is/how_is/compare/7402d28c9a5c...d22d6fa70b0d","pull_request_number":null},{"id":73884312,"sha":"7402d28c9a5c99d00d6d7d7864ddde0d1ed839f4","branch":"master","message":"Merge
|
153
|
+
pull request #179 from olleolleolle/fix/params-file-for-github_changelog_generator\n\nAdd
|
154
|
+
config file for github_changelog_generator","committed_at":"2017-07-16T19:43:14Z","author_name":"Ellen
|
155
|
+
Marie Dash","author_email":"the@smallest.dog","committer_name":"GitHub","committer_email":"noreply@github.com","compare_url":"https://github.com/how-is/how_is/compare/d2311beacc83...7402d28c9a5c","pull_request_number":null},{"id":73884104,"sha":"d2311beacc8380e7f7c3ca37180ba5deb7ed9181","branch":"master","message":"Merge
|
156
|
+
pull request #178 from olleolleolle/fix/rubocop-warnings\n\nRuboCop linting","committed_at":"2017-07-16T19:40:05Z","author_name":"Ellen
|
157
|
+
Marie Dash","author_email":"the@smallest.dog","committer_name":"GitHub","committer_email":"noreply@github.com","compare_url":"https://github.com/how-is/how_is/compare/50a9b616043f...d2311beacc83","pull_request_number":null},{"id":73871523,"sha":"50a9b616043fdadfcb262d68c5be32bb5f350c5d","branch":"master","message":"Merge
|
158
|
+
pull request #177 from how-is/changelog-stuff\n\nUse github_changelog_generator
|
159
|
+
for generating the changelog.","committed_at":"2017-07-16T16:23:56Z","author_name":"Ellen
|
160
|
+
Marie Dash","author_email":"the@smallest.dog","committer_name":"GitHub","committer_email":"noreply@github.com","compare_url":"https://github.com/how-is/how_is/compare/b4a24011f4c9...50a9b616043f","pull_request_number":null},{"id":73871232,"sha":"27b252d3625d198ded7dee32a86387a8ec613588","branch":"changelog-stuff","message":"Use
|
161
|
+
github_changelog_generator for generating the changelog!","committed_at":"2017-07-16T16:19:20Z","author_name":"Ellen
|
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
|
+
http_version:
|
164
|
+
recorded_at: Sun, 06 Aug 2017 19:20:42 GMT
|
165
|
+
recorded_with: VCR 3.0.3
|
@@ -0,0 +1,151 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://api.github.com/repos/how-is/how_is
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/vnd.github.v3+json,application/vnd.github.beta+json;q=0.5,application/json;q=0.1
|
12
|
+
Accept-Charset:
|
13
|
+
- utf-8
|
14
|
+
User-Agent:
|
15
|
+
- Github API Ruby Gem 0.17.0
|
16
|
+
Accept-Encoding:
|
17
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
Server:
|
24
|
+
- GitHub.com
|
25
|
+
Date:
|
26
|
+
- Thu, 10 Aug 2017 20:59:50 GMT
|
27
|
+
Content-Type:
|
28
|
+
- application/json; charset=utf-8
|
29
|
+
Transfer-Encoding:
|
30
|
+
- chunked
|
31
|
+
Status:
|
32
|
+
- 200 OK
|
33
|
+
X-Ratelimit-Limit:
|
34
|
+
- '60'
|
35
|
+
X-Ratelimit-Remaining:
|
36
|
+
- '59'
|
37
|
+
X-Ratelimit-Reset:
|
38
|
+
- '1502402390'
|
39
|
+
Cache-Control:
|
40
|
+
- public, max-age=60, s-maxage=60
|
41
|
+
Vary:
|
42
|
+
- Accept
|
43
|
+
Etag:
|
44
|
+
- W/"5a8e2fe83bdc6bf80131eb88c2cc2ddb"
|
45
|
+
Last-Modified:
|
46
|
+
- Thu, 15 Jun 2017 21:46:29 GMT
|
47
|
+
X-Github-Media-Type:
|
48
|
+
- github.v3; format=json
|
49
|
+
Access-Control-Expose-Headers:
|
50
|
+
- ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
|
51
|
+
X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
|
52
|
+
Access-Control-Allow-Origin:
|
53
|
+
- "*"
|
54
|
+
Content-Security-Policy:
|
55
|
+
- default-src 'none'
|
56
|
+
Strict-Transport-Security:
|
57
|
+
- max-age=31536000; includeSubdomains; preload
|
58
|
+
X-Content-Type-Options:
|
59
|
+
- nosniff
|
60
|
+
X-Frame-Options:
|
61
|
+
- deny
|
62
|
+
X-Xss-Protection:
|
63
|
+
- 1; mode=block
|
64
|
+
X-Runtime-Rack:
|
65
|
+
- '0.028766'
|
66
|
+
X-Github-Request-Id:
|
67
|
+
- CB49:5C59:4C6E84:A743C3:598CC946
|
68
|
+
body:
|
69
|
+
encoding: ASCII-8BIT
|
70
|
+
string: '{"id":54295243,"name":"how_is","full_name":"how-is/how_is","owner":{"login":"how-is","id":20577802,"avatar_url":"https://avatars0.githubusercontent.com/u/20577802?v=4","gravatar_id":"","url":"https://api.github.com/users/how-is","html_url":"https://github.com/how-is","followers_url":"https://api.github.com/users/how-is/followers","following_url":"https://api.github.com/users/how-is/following{/other_user}","gists_url":"https://api.github.com/users/how-is/gists{/gist_id}","starred_url":"https://api.github.com/users/how-is/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/how-is/subscriptions","organizations_url":"https://api.github.com/users/how-is/orgs","repos_url":"https://api.github.com/users/how-is/repos","events_url":"https://api.github.com/users/how-is/events{/privacy}","received_events_url":"https://api.github.com/users/how-is/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/how-is/how_is","description":"A
|
71
|
+
gem that explains the state of a GitHub repository.","fork":false,"url":"https://api.github.com/repos/how-is/how_is","forks_url":"https://api.github.com/repos/how-is/how_is/forks","keys_url":"https://api.github.com/repos/how-is/how_is/keys{/key_id}","collaborators_url":"https://api.github.com/repos/how-is/how_is/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/how-is/how_is/teams","hooks_url":"https://api.github.com/repos/how-is/how_is/hooks","issue_events_url":"https://api.github.com/repos/how-is/how_is/issues/events{/number}","events_url":"https://api.github.com/repos/how-is/how_is/events","assignees_url":"https://api.github.com/repos/how-is/how_is/assignees{/user}","branches_url":"https://api.github.com/repos/how-is/how_is/branches{/branch}","tags_url":"https://api.github.com/repos/how-is/how_is/tags","blobs_url":"https://api.github.com/repos/how-is/how_is/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/how-is/how_is/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/how-is/how_is/git/refs{/sha}","trees_url":"https://api.github.com/repos/how-is/how_is/git/trees{/sha}","statuses_url":"https://api.github.com/repos/how-is/how_is/statuses/{sha}","languages_url":"https://api.github.com/repos/how-is/how_is/languages","stargazers_url":"https://api.github.com/repos/how-is/how_is/stargazers","contributors_url":"https://api.github.com/repos/how-is/how_is/contributors","subscribers_url":"https://api.github.com/repos/how-is/how_is/subscribers","subscription_url":"https://api.github.com/repos/how-is/how_is/subscription","commits_url":"https://api.github.com/repos/how-is/how_is/commits{/sha}","git_commits_url":"https://api.github.com/repos/how-is/how_is/git/commits{/sha}","comments_url":"https://api.github.com/repos/how-is/how_is/comments{/number}","issue_comment_url":"https://api.github.com/repos/how-is/how_is/issues/comments{/number}","contents_url":"https://api.github.com/repos/how-is/how_is/contents/{+path}","compare_url":"https://api.github.com/repos/how-is/how_is/compare/{base}...{head}","merges_url":"https://api.github.com/repos/how-is/how_is/merges","archive_url":"https://api.github.com/repos/how-is/how_is/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/how-is/how_is/downloads","issues_url":"https://api.github.com/repos/how-is/how_is/issues{/number}","pulls_url":"https://api.github.com/repos/how-is/how_is/pulls{/number}","milestones_url":"https://api.github.com/repos/how-is/how_is/milestones{/number}","notifications_url":"https://api.github.com/repos/how-is/how_is/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/how-is/how_is/labels{/name}","releases_url":"https://api.github.com/repos/how-is/how_is/releases{/id}","deployments_url":"https://api.github.com/repos/how-is/how_is/deployments","created_at":"2016-03-20T01:37:02Z","updated_at":"2017-06-15T21:46:29Z","pushed_at":"2017-08-09T07:51:43Z","git_url":"git://github.com/how-is/how_is.git","ssh_url":"git@github.com:how-is/how_is.git","clone_url":"https://github.com/how-is/how_is.git","svn_url":"https://github.com/how-is/how_is","homepage":"","size":1353,"stargazers_count":27,"watchers_count":27,"language":"Ruby","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":5,"mirror_url":null,"open_issues_count":20,"forks":5,"open_issues":20,"watchers":27,"default_branch":"master","organization":{"login":"how-is","id":20577802,"avatar_url":"https://avatars0.githubusercontent.com/u/20577802?v=4","gravatar_id":"","url":"https://api.github.com/users/how-is","html_url":"https://github.com/how-is","followers_url":"https://api.github.com/users/how-is/followers","following_url":"https://api.github.com/users/how-is/following{/other_user}","gists_url":"https://api.github.com/users/how-is/gists{/gist_id}","starred_url":"https://api.github.com/users/how-is/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/how-is/subscriptions","organizations_url":"https://api.github.com/users/how-is/orgs","repos_url":"https://api.github.com/users/how-is/repos","events_url":"https://api.github.com/users/how-is/events{/privacy}","received_events_url":"https://api.github.com/users/how-is/received_events","type":"Organization","site_admin":false},"network_count":5,"subscribers_count":2}'
|
72
|
+
http_version:
|
73
|
+
recorded_at: Thu, 10 Aug 2017 20:59:56 GMT
|
74
|
+
- request:
|
75
|
+
method: get
|
76
|
+
uri: https://api.github.com/repos/how-is/example-repository
|
77
|
+
body:
|
78
|
+
encoding: US-ASCII
|
79
|
+
string: ''
|
80
|
+
headers:
|
81
|
+
Accept:
|
82
|
+
- application/vnd.github.v3+json,application/vnd.github.beta+json;q=0.5,application/json;q=0.1
|
83
|
+
Accept-Charset:
|
84
|
+
- utf-8
|
85
|
+
User-Agent:
|
86
|
+
- Github API Ruby Gem 0.17.0
|
87
|
+
Authorization:
|
88
|
+
- Basic ZHVja2luYXRvcjo5MTgyNzc3ZmYzYzAwNjc5NTE5M2E1NzBjZGFjMzI2YjY0NDU5ZGM5"
|
89
|
+
Accept-Encoding:
|
90
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
91
|
+
response:
|
92
|
+
status:
|
93
|
+
code: 200
|
94
|
+
message: OK
|
95
|
+
headers:
|
96
|
+
Server:
|
97
|
+
- GitHub.com
|
98
|
+
Date:
|
99
|
+
- Fri, 11 Aug 2017 04:15:20 GMT
|
100
|
+
Content-Type:
|
101
|
+
- application/json; charset=utf-8
|
102
|
+
Transfer-Encoding:
|
103
|
+
- chunked
|
104
|
+
Status:
|
105
|
+
- 200 OK
|
106
|
+
X-Ratelimit-Limit:
|
107
|
+
- '5000'
|
108
|
+
X-Ratelimit-Remaining:
|
109
|
+
- '4986'
|
110
|
+
X-Ratelimit-Reset:
|
111
|
+
- '1502425710'
|
112
|
+
Cache-Control:
|
113
|
+
- private, max-age=60, s-maxage=60
|
114
|
+
Vary:
|
115
|
+
- Accept, Authorization, Cookie, X-GitHub-OTP
|
116
|
+
Etag:
|
117
|
+
- W/"43d9383ed14ed79ce34282a54e3d9815"
|
118
|
+
Last-Modified:
|
119
|
+
- Sun, 07 Aug 2016 03:52:53 GMT
|
120
|
+
X-Oauth-Scopes:
|
121
|
+
- ''
|
122
|
+
X-Accepted-Oauth-Scopes:
|
123
|
+
- repo
|
124
|
+
X-Github-Media-Type:
|
125
|
+
- github.v3; format=json
|
126
|
+
Access-Control-Expose-Headers:
|
127
|
+
- ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
|
128
|
+
X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
|
129
|
+
Access-Control-Allow-Origin:
|
130
|
+
- "*"
|
131
|
+
Content-Security-Policy:
|
132
|
+
- default-src 'none'
|
133
|
+
Strict-Transport-Security:
|
134
|
+
- max-age=31536000; includeSubdomains; preload
|
135
|
+
X-Content-Type-Options:
|
136
|
+
- nosniff
|
137
|
+
X-Frame-Options:
|
138
|
+
- deny
|
139
|
+
X-Xss-Protection:
|
140
|
+
- 1; mode=block
|
141
|
+
X-Runtime-Rack:
|
142
|
+
- '0.040584'
|
143
|
+
X-Github-Request-Id:
|
144
|
+
- 9D7E:1122:3D7850:7B6762:598D2F58
|
145
|
+
body:
|
146
|
+
encoding: ASCII-8BIT
|
147
|
+
string: '{"id":65114449,"name":"example-repository","full_name":"how-is/example-repository","owner":{"login":"how-is","id":20577802,"avatar_url":"https://avatars0.githubusercontent.com/u/20577802?v=4","gravatar_id":"","url":"https://api.github.com/users/how-is","html_url":"https://github.com/how-is","followers_url":"https://api.github.com/users/how-is/followers","following_url":"https://api.github.com/users/how-is/following{/other_user}","gists_url":"https://api.github.com/users/how-is/gists{/gist_id}","starred_url":"https://api.github.com/users/how-is/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/how-is/subscriptions","organizations_url":"https://api.github.com/users/how-is/orgs","repos_url":"https://api.github.com/users/how-is/repos","events_url":"https://api.github.com/users/how-is/events{/privacy}","received_events_url":"https://api.github.com/users/how-is/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/how-is/example-repository","description":"Example
|
148
|
+
repository for testing how_is.","fork":false,"url":"https://api.github.com/repos/how-is/example-repository","forks_url":"https://api.github.com/repos/how-is/example-repository/forks","keys_url":"https://api.github.com/repos/how-is/example-repository/keys{/key_id}","collaborators_url":"https://api.github.com/repos/how-is/example-repository/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/how-is/example-repository/teams","hooks_url":"https://api.github.com/repos/how-is/example-repository/hooks","issue_events_url":"https://api.github.com/repos/how-is/example-repository/issues/events{/number}","events_url":"https://api.github.com/repos/how-is/example-repository/events","assignees_url":"https://api.github.com/repos/how-is/example-repository/assignees{/user}","branches_url":"https://api.github.com/repos/how-is/example-repository/branches{/branch}","tags_url":"https://api.github.com/repos/how-is/example-repository/tags","blobs_url":"https://api.github.com/repos/how-is/example-repository/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/how-is/example-repository/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/how-is/example-repository/git/refs{/sha}","trees_url":"https://api.github.com/repos/how-is/example-repository/git/trees{/sha}","statuses_url":"https://api.github.com/repos/how-is/example-repository/statuses/{sha}","languages_url":"https://api.github.com/repos/how-is/example-repository/languages","stargazers_url":"https://api.github.com/repos/how-is/example-repository/stargazers","contributors_url":"https://api.github.com/repos/how-is/example-repository/contributors","subscribers_url":"https://api.github.com/repos/how-is/example-repository/subscribers","subscription_url":"https://api.github.com/repos/how-is/example-repository/subscription","commits_url":"https://api.github.com/repos/how-is/example-repository/commits{/sha}","git_commits_url":"https://api.github.com/repos/how-is/example-repository/git/commits{/sha}","comments_url":"https://api.github.com/repos/how-is/example-repository/comments{/number}","issue_comment_url":"https://api.github.com/repos/how-is/example-repository/issues/comments{/number}","contents_url":"https://api.github.com/repos/how-is/example-repository/contents/{+path}","compare_url":"https://api.github.com/repos/how-is/example-repository/compare/{base}...{head}","merges_url":"https://api.github.com/repos/how-is/example-repository/merges","archive_url":"https://api.github.com/repos/how-is/example-repository/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/how-is/example-repository/downloads","issues_url":"https://api.github.com/repos/how-is/example-repository/issues{/number}","pulls_url":"https://api.github.com/repos/how-is/example-repository/pulls{/number}","milestones_url":"https://api.github.com/repos/how-is/example-repository/milestones{/number}","notifications_url":"https://api.github.com/repos/how-is/example-repository/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/how-is/example-repository/labels{/name}","releases_url":"https://api.github.com/repos/how-is/example-repository/releases{/id}","deployments_url":"https://api.github.com/repos/how-is/example-repository/deployments","created_at":"2016-08-07T03:52:53Z","updated_at":"2016-08-07T03:52:53Z","pushed_at":"2017-08-05T20:39:30Z","git_url":"git://github.com/how-is/example-repository.git","ssh_url":"git@github.com:how-is/example-repository.git","clone_url":"https://github.com/how-is/example-repository.git","svn_url":"https://github.com/how-is/example-repository","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":4,"forks":0,"open_issues":4,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"organization":{"login":"how-is","id":20577802,"avatar_url":"https://avatars0.githubusercontent.com/u/20577802?v=4","gravatar_id":"","url":"https://api.github.com/users/how-is","html_url":"https://github.com/how-is","followers_url":"https://api.github.com/users/how-is/followers","following_url":"https://api.github.com/users/how-is/following{/other_user}","gists_url":"https://api.github.com/users/how-is/gists{/gist_id}","starred_url":"https://api.github.com/users/how-is/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/how-is/subscriptions","organizations_url":"https://api.github.com/users/how-is/orgs","repos_url":"https://api.github.com/users/how-is/repos","events_url":"https://api.github.com/users/how-is/events{/privacy}","received_events_url":"https://api.github.com/users/how-is/received_events","type":"Organization","site_admin":false},"network_count":0,"subscribers_count":1}'
|
149
|
+
http_version:
|
150
|
+
recorded_at: Fri, 11 Aug 2017 04:15:20 GMT
|
151
|
+
recorded_with: VCR 3.0.3
|
data/how_is.gemspec
CHANGED
@@ -21,9 +21,8 @@ Gem::Specification.new do |spec|
|
|
21
21
|
|
22
22
|
spec.add_runtime_dependency "github_api", "~> 0.17.0"
|
23
23
|
spec.add_runtime_dependency "contracts", "~> 0.16.0"
|
24
|
-
spec.add_runtime_dependency "slop", "~> 4.4.1"
|
25
24
|
|
26
|
-
spec.add_runtime_dependency "tessellator-fetcher", "~> 5.0.
|
25
|
+
spec.add_runtime_dependency "tessellator-fetcher", "~> 5.0.2"
|
27
26
|
|
28
27
|
spec.add_development_dependency "bundler", "~> 1.11"
|
29
28
|
spec.add_development_dependency "rake", "~> 11.2"
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "how_is/fetcher"
|
4
|
+
|
5
|
+
class HowIs
|
6
|
+
# Fetches metadata about CI builds.
|
7
|
+
#
|
8
|
+
# Supports Travis
|
9
|
+
class Builds
|
10
|
+
# @param user [String] GitHub user of repository.
|
11
|
+
# @param repo [String] GitHub repository name.
|
12
|
+
def initialize(user:, repo:)
|
13
|
+
@user = user
|
14
|
+
@repo = repo
|
15
|
+
# TODO: Figure out Default Branch of the repo
|
16
|
+
end
|
17
|
+
|
18
|
+
def summary
|
19
|
+
JSON.parse(travis_builds)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Returns API result of /repos/:user/:repo/builds for Push type Travis
|
23
|
+
# events.
|
24
|
+
#
|
25
|
+
# @return [String] JSON result
|
26
|
+
def travis_builds
|
27
|
+
Tessellator::Fetcher::Request::HTTP.call(
|
28
|
+
Tessellator::Fetcher::Config.new,
|
29
|
+
"get",
|
30
|
+
"http://api.travis-ci.org/repos/#{@user}/#{@repo}/builds?event_type=push",
|
31
|
+
{},
|
32
|
+
headers: {"Accept" => "application/vnd.travis-ci.2+json"}
|
33
|
+
).body
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/how_is/cli.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# NOPE THIS IS BROKEN // frozen_string_literal: // true
|
2
2
|
|
3
3
|
require "how_is"
|
4
|
-
require "
|
4
|
+
require "optparse"
|
5
5
|
|
6
6
|
class HowIs::CLI
|
7
7
|
DEFAULT_REPORT_FILE = "report.#{HowIs::DEFAULT_FORMAT}".freeze
|
@@ -27,83 +27,104 @@ class HowIs::CLI
|
|
27
27
|
# Parses +argv+ to generate an options Hash to control the behavior of
|
28
28
|
# the library.
|
29
29
|
def self.parse(argv)
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
30
|
+
options = {}
|
31
|
+
opts_ = nil
|
32
|
+
|
33
|
+
opt_parser = OptionParser.new do |opts|
|
34
|
+
opts_ = opts
|
35
|
+
# General usage information.
|
36
|
+
opts.banner =
|
37
|
+
<<-EOF.gsub(/ *\| ?/, '')
|
35
38
|
| Usage: how_is REPOSITORY [--report REPORT_FILE] [--from JSON_FILE]
|
36
39
|
| how_is --config CONFIG_FILE
|
37
40
|
|
|
38
41
|
| Where REPOSITORY is <GitHub username or org>/<repository name>.
|
39
|
-
| CONFIG_FILE defaults to how_is.yml.
|
40
42
|
|
|
41
43
|
| E.g., if you wanted to check https://github.com/how-is/how_is,
|
42
44
|
| you'd run `how_is how-is/how_is`.
|
43
45
|
|
|
44
46
|
EOF
|
45
47
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
# The extra spaces make this a lot easier to comprehend, so we don't want
|
50
|
-
# RuboCop to complain about them.
|
51
|
-
#
|
52
|
-
# Same for line length.
|
53
|
-
#
|
54
|
-
# rubocop:disable Style/SpaceBeforeFirstArg
|
55
|
-
# rubocop:disable Metrics/LineLength
|
48
|
+
opts.separator ""
|
49
|
+
opts.separator "Options:"
|
56
50
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
# rubocop:enable Style/SpaceBeforeFirstArg
|
65
|
-
# rubocop:enable Metrics/LineLength
|
51
|
+
# The extra spaces make this a lot easier to comprehend, so we don't want
|
52
|
+
# RuboCop to complain about them.
|
53
|
+
#
|
54
|
+
# Same for line length.
|
55
|
+
#
|
56
|
+
# rubocop:disable Style/SpaceBeforeFirstArg
|
57
|
+
# rubocop:disable Metrics/LineLength
|
66
58
|
|
67
|
-
|
68
|
-
|
69
|
-
|
59
|
+
opts.on("--config CONFIG_FILE",
|
60
|
+
"YAML config file, used to generate a group of reports") do |filename|
|
61
|
+
options[:config] = filename
|
62
|
+
end
|
70
63
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
64
|
+
opts.on("--from JSON_FILE",
|
65
|
+
"JSON report file, used instead of fetching the data again") do |filename|
|
66
|
+
options[:from] = filename
|
67
|
+
end
|
75
68
|
|
76
|
-
|
77
|
-
|
69
|
+
opts.on("--report REPORT_FILE",
|
70
|
+
"Output file for the report (valid extensions: #{HowIs.supported_formats.join(', ')}; default: #{DEFAULT_REPORT_FILE})") do |filename|
|
71
|
+
options[:report] = filename
|
72
|
+
end
|
78
73
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
options.delete(:help) unless options[:help]
|
84
|
-
options.delete(:version) unless options[:version]
|
74
|
+
opts.on("-v", "--version",
|
75
|
+
"Prints version information") do
|
76
|
+
options[:version] = true
|
77
|
+
end
|
85
78
|
|
86
|
-
|
87
|
-
|
88
|
-
|
79
|
+
opts.on("-h", "--help",
|
80
|
+
"Print help text") do
|
81
|
+
options[:help] = true
|
82
|
+
end
|
89
83
|
end
|
84
|
+
# rubocop:enable Style/SpaceBeforeFirstArg
|
85
|
+
# rubocop:enable Metrics/LineLength
|
90
86
|
|
91
|
-
#
|
92
|
-
#
|
93
|
-
#
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
87
|
+
# `.parse!` populates the `options` Hash that was
|
88
|
+
# created above, and the return value is any non-flag
|
89
|
+
# arguments.
|
90
|
+
arguments = opt_parser.parse!(argv)
|
91
|
+
|
92
|
+
# TODO: Should this raise an exception instead?
|
93
|
+
keep_only = lambda { |options_, key| options_.select {|k, v| k == key } }
|
94
|
+
|
95
|
+
if options[:help]
|
96
|
+
# If --help is passed, _only_ accept --help.
|
97
|
+
options = keep_only.call(options, :help)
|
98
|
+
elsif options[:version]
|
99
|
+
# If --version is passed, _only_ accept --version.
|
100
|
+
options = keep_only.call(options, :version)
|
101
|
+
elsif options[:config]
|
102
|
+
# If --config is passed, _only_ accept --config.
|
103
|
+
options = keep_only.call(options, :config)
|
104
|
+
elsif options[:from]
|
105
|
+
# Handle --from.
|
106
|
+
|
107
|
+
raise InvalidInputFileError, "No such file: #{options[:from]}" unless File.file?(options[:from])
|
108
|
+
|
109
|
+
# Opening the file here is a bit gross, but I couldn't find a
|
110
|
+
# better way to do it. -@duckinator
|
111
|
+
options[:repository] = JSON.parse(open(options[:from]).read)['repository']
|
112
|
+
|
113
|
+
raise InvalidInputFileError, "Invalid JSON report file." unless options[:repository]
|
114
|
+
else
|
115
|
+
# If we get here, we're generating a report from the command line,
|
116
|
+
# without using --from or --config.
|
117
|
+
|
118
|
+
# If --report isn't specified, default to DEFAULT_REPORT_FILE.
|
119
|
+
options[:report] ||= DEFAULT_REPORT_FILE
|
120
|
+
|
121
|
+
# If we can't export to the specified file, raise an exception.
|
122
|
+
unless HowIs.can_export_to?(options[:report])
|
123
|
+
raise InvalidOutputFileError, "Invalid file: #{options[:report]}. Supported formats: #{HowIs.supported_formats.join(', ')}"
|
124
|
+
end
|
103
125
|
|
104
|
-
|
126
|
+
if argv.length >= 1
|
105
127
|
options[:repository] = argv.delete_at(0)
|
106
|
-
|
107
128
|
else
|
108
129
|
raise NoRepositoryError, "No repository specified."
|
109
130
|
end
|
@@ -116,7 +137,7 @@ class HowIs::CLI
|
|
116
137
|
# +arguments+: an Array of arguments that don't have a
|
117
138
|
# corresponding flags.
|
118
139
|
{
|
119
|
-
opts:
|
140
|
+
opts: opts_,
|
120
141
|
options: options,
|
121
142
|
arguments: arguments,
|
122
143
|
}
|
data/lib/how_is/contributions.rb
CHANGED
@@ -37,11 +37,13 @@ class HowIs
|
|
37
37
|
|
38
38
|
@user = user
|
39
39
|
@repo = repo
|
40
|
+
|
41
|
+
@commit = {}
|
40
42
|
end
|
41
43
|
|
42
44
|
# Returns a list of contributors that have zero commits before the @since_date.
|
43
45
|
#
|
44
|
-
# @return [Hash{String => Hash]
|
46
|
+
# @return [Hash{String => Hash}] Contributors keyed by email
|
45
47
|
def new_contributors
|
46
48
|
# author: GitHub login, name or email by which to filter by commit author.
|
47
49
|
@new_contributors ||= contributors.select do |email, _committer|
|
@@ -61,18 +63,19 @@ class HowIs
|
|
61
63
|
end
|
62
64
|
|
63
65
|
def commits
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
66
|
+
@commits ||= begin
|
67
|
+
@github.repos.commits.list(user: @user,
|
68
|
+
repo: @repo,
|
69
|
+
since: @since_date).map { |c|
|
70
|
+
# The commits list endpoint doesn't include all commit data, e.g. stats.
|
71
|
+
# So, we make N requests here, where N == number of commits returned,
|
72
|
+
# and then we die a bit inside.
|
73
|
+
commit(c.sha)
|
74
|
+
}
|
75
|
+
end
|
72
76
|
end
|
73
77
|
|
74
78
|
def commit(sha)
|
75
|
-
@commit ||= {}
|
76
79
|
@commit[sha] ||= @github.repos.commits.get(user: @user, repo: @repo, sha: sha)
|
77
80
|
end
|
78
81
|
|
@@ -100,11 +103,6 @@ class HowIs
|
|
100
103
|
{"stats" => @stats, "files" => @changed_files}
|
101
104
|
end
|
102
105
|
|
103
|
-
# TODO: Don't hard-code the default branch.
|
104
|
-
def default_branch
|
105
|
-
"master"
|
106
|
-
end
|
107
|
-
|
108
106
|
def changed_files
|
109
107
|
changes["files"]
|
110
108
|
end
|
@@ -120,15 +118,12 @@ class HowIs
|
|
120
118
|
def compare_url
|
121
119
|
since_timestamp = @since_date.to_time.to_i
|
122
120
|
until_timestamp = @until_date.to_time.to_i
|
123
|
-
"https://github.com/#{@user}/#{@repo}/compare/#{default_branch}@%7B#{since_timestamp}%7D...#{default_branch}@%7B#{until_timestamp}%7D"
|
124
|
-
end
|
125
|
-
|
126
|
-
def pretty_start_date
|
127
|
-
@since_date.strftime("%b %d, %Y")
|
121
|
+
"https://github.com/#{@user}/#{@repo}/compare/#{default_branch}@%7B#{since_timestamp}%7D...#{default_branch}@%7B#{until_timestamp}%7D" # rubocop:disable Metrics/LineLength
|
128
122
|
end
|
129
123
|
|
130
|
-
def
|
131
|
-
@
|
124
|
+
def default_branch
|
125
|
+
@default_branch ||= @github.repos.get(user: @user,
|
126
|
+
repo: @repo).default_branch
|
132
127
|
end
|
133
128
|
|
134
129
|
def summary(start_text: nil)
|
@@ -137,7 +132,7 @@ class HowIs
|
|
137
132
|
# to /repos/:owner/:repo/commits.
|
138
133
|
# https://developer.github.com/v3/repos/commits/
|
139
134
|
|
140
|
-
start_text ||= "From #{
|
135
|
+
start_text ||= "From #{pretty_date(@since_date)} through #{pretty_date(@until_date)}"
|
141
136
|
|
142
137
|
"#{start_text}, #{@user}/#{@repo} gained "\
|
143
138
|
"<a href=\"#{compare_url}\">#{pluralize('new commit', commits.length)}</a>, " \
|
@@ -150,6 +145,10 @@ class HowIs
|
|
150
145
|
|
151
146
|
private
|
152
147
|
|
148
|
+
def pretty_date(date)
|
149
|
+
date.strftime("%b %d, %Y")
|
150
|
+
end
|
151
|
+
|
153
152
|
def pluralize(string, number)
|
154
153
|
"#{number} #{string}#{(number == 1) ? '' : 's'}"
|
155
154
|
end
|
data/lib/how_is/version.rb
CHANGED
data/lib/how_is.rb
CHANGED
@@ -197,8 +197,9 @@ class HowIs
|
|
197
197
|
str.string
|
198
198
|
end
|
199
199
|
|
200
|
-
#
|
201
|
-
#
|
200
|
+
# @example
|
201
|
+
# convert_keys({'foo' => 'bar'}, :to_sym)
|
202
|
+
# # => {:foo => 'bar'}
|
202
203
|
def self.convert_keys(data, method_name)
|
203
204
|
data.map { |k, v| [k.send(method_name), v] }.to_h
|
204
205
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: how_is
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 19.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ellen Marie Dash
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: github_api
|
@@ -38,34 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.16.0
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: slop
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: 4.4.1
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 4.4.1
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: tessellator-fetcher
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
58
44
|
requirements:
|
59
45
|
- - "~>"
|
60
46
|
- !ruby/object:Gem::Version
|
61
|
-
version: 5.0.
|
47
|
+
version: 5.0.2
|
62
48
|
type: :runtime
|
63
49
|
prerelease: false
|
64
50
|
version_requirements: !ruby/object:Gem::Requirement
|
65
51
|
requirements:
|
66
52
|
- - "~>"
|
67
53
|
- !ruby/object:Gem::Version
|
68
|
-
version: 5.0.
|
54
|
+
version: 5.0.2
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: bundler
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -186,6 +172,7 @@ executables:
|
|
186
172
|
extensions: []
|
187
173
|
extra_rdoc_files: []
|
188
174
|
files:
|
175
|
+
- ".codeclimate.yml"
|
189
176
|
- ".github_changelog_generator"
|
190
177
|
- ".gitignore"
|
191
178
|
- ".hound.yml"
|
@@ -208,12 +195,15 @@ files:
|
|
208
195
|
- fixtures/vcr_cassettes/how-is-example-empty-repository.yml
|
209
196
|
- fixtures/vcr_cassettes/how-is-example-repository.yml
|
210
197
|
- fixtures/vcr_cassettes/how-is-from-config-frontmatter.yml
|
198
|
+
- fixtures/vcr_cassettes/how-is-how-is-travis-api-repos-builds.yml
|
211
199
|
- fixtures/vcr_cassettes/how-is-with-config-file.yml
|
212
200
|
- fixtures/vcr_cassettes/how_is_contributions_all_contributors.yml
|
201
|
+
- fixtures/vcr_cassettes/how_is_contributions_default_branch.yml
|
213
202
|
- fixtures/vcr_cassettes/how_is_contributions_new_contributors.yml
|
214
203
|
- how_is.gemspec
|
215
204
|
- lib/how_is.rb
|
216
205
|
- lib/how_is/analyzer.rb
|
206
|
+
- lib/how_is/builds.rb
|
217
207
|
- lib/how_is/cli.rb
|
218
208
|
- lib/how_is/contributions.rb
|
219
209
|
- lib/how_is/fetcher.rb
|
@@ -244,7 +234,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
244
234
|
version: '0'
|
245
235
|
requirements: []
|
246
236
|
rubyforge_project:
|
247
|
-
rubygems_version: 2.6.
|
237
|
+
rubygems_version: 2.6.13
|
248
238
|
signing_key:
|
249
239
|
specification_version: 4
|
250
240
|
summary: Quantify the health of a GitHub repository.
|