amanuensis 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +7 -0
  2. data/.env.sample +10 -0
  3. data/.gitignore +15 -0
  4. data/.rspec +2 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +248 -0
  8. data/Rakefile +2 -0
  9. data/amanuensis.gemspec +36 -0
  10. data/bin/amanuensis +6 -0
  11. data/lib/amanuensis.rb +41 -0
  12. data/lib/amanuensis/builder.rb +52 -0
  13. data/lib/amanuensis/cli.rb +54 -0
  14. data/lib/amanuensis/code_manager.rb +6 -0
  15. data/lib/amanuensis/fake.rb +15 -0
  16. data/lib/amanuensis/fake/code_manager.rb +18 -0
  17. data/lib/amanuensis/fake/push.rb +10 -0
  18. data/lib/amanuensis/fake/tracker.rb +11 -0
  19. data/lib/amanuensis/file.rb +14 -0
  20. data/lib/amanuensis/file/push.rb +37 -0
  21. data/lib/amanuensis/generator.rb +87 -0
  22. data/lib/amanuensis/github.rb +24 -0
  23. data/lib/amanuensis/github/code_manager.rb +42 -0
  24. data/lib/amanuensis/github/push.rb +27 -0
  25. data/lib/amanuensis/github/tracker.rb +33 -0
  26. data/lib/amanuensis/issue.rb +4 -0
  27. data/lib/amanuensis/logger.rb +26 -0
  28. data/lib/amanuensis/mail.rb +18 -0
  29. data/lib/amanuensis/mail/push.rb +12 -0
  30. data/lib/amanuensis/pivotal.rb +17 -0
  31. data/lib/amanuensis/pivotal/tracker.rb +18 -0
  32. data/lib/amanuensis/pull.rb +4 -0
  33. data/lib/amanuensis/push.rb +5 -0
  34. data/lib/amanuensis/release.rb +4 -0
  35. data/lib/amanuensis/tracker.rb +7 -0
  36. data/lib/amanuensis/trello.rb +19 -0
  37. data/lib/amanuensis/trello/tracker.rb +31 -0
  38. data/lib/amanuensis/validatable.rb +34 -0
  39. data/lib/amanuensis/version.rb +26 -0
  40. data/spec/fixtures/vcr_cassettes/github/amanuensis_generates_a_github_changelog_and_release.yml +550 -0
  41. data/spec/fixtures/vcr_cassettes/pivotal/amanuensis_generates_a_changelog_from_pivotal_tracker.yml +120 -0
  42. data/spec/fixtures/vcr_cassettes/trello/amanuensis_generates_a_changelog_from_trello_tracker.yml +359 -0
  43. data/spec/integrations/file_spec.rb +19 -0
  44. data/spec/integrations/github_spec.rb +16 -0
  45. data/spec/integrations/mail_spec.rb +16 -0
  46. data/spec/integrations/pivotal_spec.rb +16 -0
  47. data/spec/integrations/trello_spec.rb +18 -0
  48. data/spec/spec_helper.rb +37 -0
  49. data/spec/unit/fake_spec.rb +13 -0
  50. metadata +300 -0
@@ -0,0 +1,12 @@
1
+ module Amanuensis
2
+ module Mail
3
+ class Push
4
+
5
+ def run(changelog)
6
+ Pony.mail Mail.pony.merge(body: changelog)
7
+ end
8
+
9
+ end
10
+
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ require 'tracker_api'
2
+
3
+ require_relative 'pivotal/tracker'
4
+
5
+ module Amanuensis
6
+ module Pivotal
7
+ include ActiveSupport::Configurable
8
+ include Validatable
9
+
10
+ config_accessor(:token)
11
+ config_accessor(:project)
12
+
13
+ validate_presence_of :token, :project
14
+ end
15
+
16
+ Tracker.register :pivotal, Pivotal::Tracker.new
17
+ end
@@ -0,0 +1,18 @@
1
+ module Amanuensis
2
+ module Pivotal
3
+ class Tracker
4
+
5
+ def issues(from)
6
+ client = TrackerApi::Client.new(token: Pivotal.token)
7
+ project = client.projects.find { |project| project.name == Pivotal.project }
8
+
9
+ project.stories.select do |story|
10
+ story.current_state == 'accepted' && story.accepted_at.to_time > from.to_time
11
+ end.map do |story|
12
+ Issue.new story.id, story.url, story.name
13
+ end
14
+ end
15
+
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,4 @@
1
+ module Amanuensis
2
+ class Pull < Struct.new(:number, :html_url, :title)
3
+ end
4
+ end
@@ -0,0 +1,5 @@
1
+ module Amanuensis
2
+ class Push
3
+ extend Interchange.new(:run)
4
+ end
5
+ end
@@ -0,0 +1,4 @@
1
+ module Amanuensis
2
+ class Release < Struct.new(:created_at, :tag)
3
+ end
4
+ end
@@ -0,0 +1,7 @@
1
+ module Amanuensis
2
+ class Tracker
3
+ extend Interchange.new(:issues)
4
+
5
+ Issue = Struct.new(:number, :html_url, :title)
6
+ end
7
+ end
@@ -0,0 +1,19 @@
1
+ require 'trello'
2
+
3
+ require_relative 'trello/tracker'
4
+
5
+ module Amanuensis
6
+ module Trello
7
+ include ActiveSupport::Configurable
8
+ include Validatable
9
+
10
+ config_accessor(:list)
11
+ config_accessor(:key)
12
+ config_accessor(:token)
13
+ config_accessor(:board)
14
+
15
+ validate_presence_of :list, :key, :token, :board
16
+ end
17
+
18
+ Tracker.register :trello, Trello::Tracker.new
19
+ end
@@ -0,0 +1,31 @@
1
+ module Amanuensis
2
+ module Trello
3
+ class Tracker
4
+
5
+ def issues(from)
6
+ configure!
7
+ list = board.lists.find { |list| list.name == Trello.list }
8
+
9
+ list.cards.select do |card|
10
+ card.last_activity_date > from.to_time
11
+ end.map do |card|
12
+ Issue.new card.short_id, card.short_url, card.name
13
+ end
14
+ end
15
+
16
+ private
17
+
18
+ def configure!
19
+ ::Trello.configure do |config|
20
+ config.developer_public_key = Amanuensis::Trello.config['key']
21
+ config.member_token = Amanuensis::Trello.token
22
+ end
23
+ end
24
+
25
+ def board
26
+ @board ||= ::Trello::Board.all.find { |board| board.name == Trello.board }
27
+ end
28
+
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,34 @@
1
+ module Amanuensis
2
+ class ValidationError < StandardError
3
+
4
+ def initialize(klass)
5
+ @klass = klass
6
+ end
7
+
8
+ def message
9
+ "Please make sure you correclty set all the required fields for #{@klass}, read the documentation here: http://alaibe.github.io/amanuensis/"
10
+ end
11
+ end
12
+
13
+ module Validatable
14
+ extend ActiveSupport::Concern
15
+
16
+ module ClassMethods
17
+ def validate_presence_of(*attributes)
18
+ @attributes = attributes
19
+ end
20
+
21
+ def valid!
22
+ valid = attributes.map do |attribute|
23
+ config[attribute].present?
24
+ end.all?
25
+
26
+ raise ValidationError, self.name.demodulize if !valid
27
+ end
28
+
29
+ def attributes
30
+ @attributes ||= []
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,26 @@
1
+ module Amanuensis
2
+ VERSION = "1.0.0"
3
+
4
+ class Version < Struct.new(:tag)
5
+
6
+ def get
7
+ major, minor, patch = *previous
8
+
9
+ case Amanuensis.version.to_sym
10
+ when :minor
11
+ minor += 1
12
+ when :major
13
+ major += 1
14
+ when :patch
15
+ patch += 1
16
+ end
17
+
18
+ [major, minor, patch].join '.'
19
+ end
20
+
21
+ def previous
22
+ tag.split('.').map(&:to_i)
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,550 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.github.com/repos/GITHUB_REPO/releases/latest
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - application/vnd.github.v3+json
12
+ User-Agent:
13
+ - Octokit Ruby Gem 3.8.0
14
+ Content-Type:
15
+ - application/json
16
+ Authorization:
17
+ - token GITHUB_OAUTH_TOKEN
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Server:
26
+ - GitHub.com
27
+ Date:
28
+ - Thu, 02 Apr 2015 15:04:12 GMT
29
+ Content-Type:
30
+ - application/json; charset=utf-8
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Status:
34
+ - 200 OK
35
+ X-Ratelimit-Limit:
36
+ - '5000'
37
+ X-Ratelimit-Remaining:
38
+ - '4997'
39
+ X-Ratelimit-Reset:
40
+ - '1427990308'
41
+ Cache-Control:
42
+ - private, max-age=60, s-maxage=60
43
+ Last-Modified:
44
+ - Sun, 29 Mar 2015 21:09:00 GMT
45
+ Etag:
46
+ - W/"b5dcbb554db27bc6124df8a244c00569"
47
+ X-Oauth-Scopes:
48
+ - repo
49
+ X-Accepted-Oauth-Scopes:
50
+ - ''
51
+ Vary:
52
+ - Accept, Authorization, Cookie, X-GitHub-OTP
53
+ - Accept-Encoding
54
+ X-Github-Media-Type:
55
+ - github.v3; format=json
56
+ X-Xss-Protection:
57
+ - 1; mode=block
58
+ X-Frame-Options:
59
+ - deny
60
+ Content-Security-Policy:
61
+ - default-src 'none'
62
+ Access-Control-Allow-Credentials:
63
+ - 'true'
64
+ Access-Control-Expose-Headers:
65
+ - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
66
+ X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
67
+ Access-Control-Allow-Origin:
68
+ - "*"
69
+ X-Github-Request-Id:
70
+ - 97EDEE7E:3803:D6EF60:551D5A6B
71
+ Strict-Transport-Security:
72
+ - max-age=31536000; includeSubdomains; preload
73
+ X-Content-Type-Options:
74
+ - nosniff
75
+ X-Served-By:
76
+ - 139317cebd6caf9cd03889139437f00b
77
+ body:
78
+ encoding: ASCII-8BIT
79
+ string: '{"url":"https://api.github.com/repos/GITHUB_REPO/releases/1103605","assets_url":"https://api.github.com/repos/GITHUB_REPO/releases/1103605/assets","upload_url":"https://uploads.github.com/repos/GITHUB_REPO/releases/1103605/assets{?name}","html_url":"https://github.com/GITHUB_REPO/releases/tag/2.0.1","id":1103605,"tag_name":"2.0.1","target_commitish":"master","name":null,"draft":false,"author":{"login":"alaibe","id":491074,"avatar_url":"https://avatars.githubusercontent.com/u/491074?v=3","gravatar_id":"","url":"https://api.github.com/users/alaibe","html_url":"https://github.com/alaibe","followers_url":"https://api.github.com/users/alaibe/followers","following_url":"https://api.github.com/users/alaibe/following{/other_user}","gists_url":"https://api.github.com/users/alaibe/gists{/gist_id}","starred_url":"https://api.github.com/users/alaibe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alaibe/subscriptions","organizations_url":"https://api.github.com/users/alaibe/orgs","repos_url":"https://api.github.com/users/alaibe/repos","events_url":"https://api.github.com/users/alaibe/events{/privacy}","received_events_url":"https://api.github.com/users/alaibe/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2015-03-29T21:09:00Z","published_at":"2015-03-29T21:09:00Z","assets":[],"tarball_url":"https://api.github.com/repos/GITHUB_REPO/tarball/2.0.1","zipball_url":"https://api.github.com/repos/GITHUB_REPO/zipball/2.0.1","body":"Release
80
+ generated by amanuensis."}'
81
+ http_version:
82
+ recorded_at: Thu, 02 Apr 2015 15:06:34 GMT
83
+ - request:
84
+ method: get
85
+ uri: https://api.github.com/repos/GITHUB_REPO/issues?per_page=100&state=closed
86
+ body:
87
+ encoding: US-ASCII
88
+ string: ''
89
+ headers:
90
+ Accept:
91
+ - application/vnd.github.v3+json
92
+ User-Agent:
93
+ - Octokit Ruby Gem 3.8.0
94
+ Content-Type:
95
+ - application/json
96
+ Authorization:
97
+ - token GITHUB_OAUTH_TOKEN
98
+ Accept-Encoding:
99
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
100
+ response:
101
+ status:
102
+ code: 200
103
+ message: OK
104
+ headers:
105
+ Server:
106
+ - GitHub.com
107
+ Date:
108
+ - Thu, 02 Apr 2015 15:04:12 GMT
109
+ Content-Type:
110
+ - application/json; charset=utf-8
111
+ Transfer-Encoding:
112
+ - chunked
113
+ Status:
114
+ - 200 OK
115
+ X-Ratelimit-Limit:
116
+ - '5000'
117
+ X-Ratelimit-Remaining:
118
+ - '4996'
119
+ X-Ratelimit-Reset:
120
+ - '1427990308'
121
+ Cache-Control:
122
+ - private, max-age=60, s-maxage=60
123
+ Etag:
124
+ - W/"dc287627b0328abfda3520d907b6f40a"
125
+ X-Oauth-Scopes:
126
+ - repo
127
+ X-Accepted-Oauth-Scopes:
128
+ - ''
129
+ Vary:
130
+ - Accept, Authorization, Cookie, X-GitHub-OTP
131
+ - Accept-Encoding
132
+ X-Github-Media-Type:
133
+ - github.v3; format=json
134
+ X-Xss-Protection:
135
+ - 1; mode=block
136
+ X-Frame-Options:
137
+ - deny
138
+ Content-Security-Policy:
139
+ - default-src 'none'
140
+ Access-Control-Allow-Credentials:
141
+ - 'true'
142
+ Access-Control-Expose-Headers:
143
+ - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
144
+ X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
145
+ Access-Control-Allow-Origin:
146
+ - "*"
147
+ X-Github-Request-Id:
148
+ - 97EDEE7E:3801:149CBE8:551D5A6C
149
+ Strict-Transport-Security:
150
+ - max-age=31536000; includeSubdomains; preload
151
+ X-Content-Type-Options:
152
+ - nosniff
153
+ X-Served-By:
154
+ - b0ef53392caa42315c6206737946d931
155
+ body:
156
+ encoding: ASCII-8BIT
157
+ string: '[{"url":"https://api.github.com/repos/GITHUB_REPO/issues/3","labels_url":"https://api.github.com/repos/GITHUB_REPO/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/GITHUB_REPO/issues/3/comments","events_url":"https://api.github.com/repos/GITHUB_REPO/issues/3/events","html_url":"https://github.com/GITHUB_REPO/pull/3","id":63566237,"number":3,"title":"Test
158
+ branch","user":{"login":"alaibe","id":491074,"avatar_url":"https://avatars.githubusercontent.com/u/491074?v=3","gravatar_id":"","url":"https://api.github.com/users/alaibe","html_url":"https://github.com/alaibe","followers_url":"https://api.github.com/users/alaibe/followers","following_url":"https://api.github.com/users/alaibe/following{/other_user}","gists_url":"https://api.github.com/users/alaibe/gists{/gist_id}","starred_url":"https://api.github.com/users/alaibe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alaibe/subscriptions","organizations_url":"https://api.github.com/users/alaibe/orgs","repos_url":"https://api.github.com/users/alaibe/repos","events_url":"https://api.github.com/users/alaibe/events{/privacy}","received_events_url":"https://api.github.com/users/alaibe/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-03-22T19:26:26Z","updated_at":"2015-03-22T19:26:32Z","closed_at":"2015-03-22T19:26:32Z","pull_request":{"url":"https://api.github.com/repos/GITHUB_REPO/pulls/3","html_url":"https://github.com/GITHUB_REPO/pull/3","diff_url":"https://github.com/GITHUB_REPO/pull/3.diff","patch_url":"https://github.com/GITHUB_REPO/pull/3.patch"},"body":""},{"url":"https://api.github.com/repos/GITHUB_REPO/issues/2","labels_url":"https://api.github.com/repos/GITHUB_REPO/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/GITHUB_REPO/issues/2/comments","events_url":"https://api.github.com/repos/GITHUB_REPO/issues/2/events","html_url":"https://github.com/GITHUB_REPO/pull/2","id":63562967,"number":2,"title":"Fix
159
+ filter","user":{"login":"alaibe","id":491074,"avatar_url":"https://avatars.githubusercontent.com/u/491074?v=3","gravatar_id":"","url":"https://api.github.com/users/alaibe","html_url":"https://github.com/alaibe","followers_url":"https://api.github.com/users/alaibe/followers","following_url":"https://api.github.com/users/alaibe/following{/other_user}","gists_url":"https://api.github.com/users/alaibe/gists{/gist_id}","starred_url":"https://api.github.com/users/alaibe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alaibe/subscriptions","organizations_url":"https://api.github.com/users/alaibe/orgs","repos_url":"https://api.github.com/users/alaibe/repos","events_url":"https://api.github.com/users/alaibe/events{/privacy}","received_events_url":"https://api.github.com/users/alaibe/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-03-22T18:53:17Z","updated_at":"2015-03-22T18:53:20Z","closed_at":"2015-03-22T18:53:20Z","pull_request":{"url":"https://api.github.com/repos/GITHUB_REPO/pulls/2","html_url":"https://github.com/GITHUB_REPO/pull/2","diff_url":"https://github.com/GITHUB_REPO/pull/2.diff","patch_url":"https://github.com/GITHUB_REPO/pull/2.patch"},"body":""},{"url":"https://api.github.com/repos/GITHUB_REPO/issues/1","labels_url":"https://api.github.com/repos/GITHUB_REPO/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/GITHUB_REPO/issues/1/comments","events_url":"https://api.github.com/repos/GITHUB_REPO/issues/1/events","html_url":"https://github.com/GITHUB_REPO/issues/1","id":63562744,"number":1,"title":"test
160
+ issue","user":{"login":"alaibe","id":491074,"avatar_url":"https://avatars.githubusercontent.com/u/491074?v=3","gravatar_id":"","url":"https://api.github.com/users/alaibe","html_url":"https://github.com/alaibe","followers_url":"https://api.github.com/users/alaibe/followers","following_url":"https://api.github.com/users/alaibe/following{/other_user}","gists_url":"https://api.github.com/users/alaibe/gists{/gist_id}","starred_url":"https://api.github.com/users/alaibe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alaibe/subscriptions","organizations_url":"https://api.github.com/users/alaibe/orgs","repos_url":"https://api.github.com/users/alaibe/repos","events_url":"https://api.github.com/users/alaibe/events{/privacy}","received_events_url":"https://api.github.com/users/alaibe/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-03-22T18:51:42Z","updated_at":"2015-03-22T18:53:26Z","closed_at":"2015-03-22T18:53:26Z","body":""}]'
161
+ http_version:
162
+ recorded_at: Thu, 02 Apr 2015 15:06:34 GMT
163
+ - request:
164
+ method: get
165
+ uri: https://api.github.com/repos/GITHUB_REPO/pulls?per_page=100&state=closed
166
+ body:
167
+ encoding: US-ASCII
168
+ string: ''
169
+ headers:
170
+ Accept:
171
+ - application/vnd.github.v3+json
172
+ User-Agent:
173
+ - Octokit Ruby Gem 3.8.0
174
+ Content-Type:
175
+ - application/json
176
+ Authorization:
177
+ - token GITHUB_OAUTH_TOKEN
178
+ Accept-Encoding:
179
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
180
+ response:
181
+ status:
182
+ code: 200
183
+ message: OK
184
+ headers:
185
+ Server:
186
+ - GitHub.com
187
+ Date:
188
+ - Thu, 02 Apr 2015 15:04:13 GMT
189
+ Content-Type:
190
+ - application/json; charset=utf-8
191
+ Transfer-Encoding:
192
+ - chunked
193
+ Status:
194
+ - 200 OK
195
+ X-Ratelimit-Limit:
196
+ - '5000'
197
+ X-Ratelimit-Remaining:
198
+ - '4995'
199
+ X-Ratelimit-Reset:
200
+ - '1427990308'
201
+ Cache-Control:
202
+ - private, max-age=60, s-maxage=60
203
+ Etag:
204
+ - W/"f2420b36df82176be4da259091ac6740"
205
+ X-Oauth-Scopes:
206
+ - repo
207
+ X-Accepted-Oauth-Scopes:
208
+ - ''
209
+ Vary:
210
+ - Accept, Authorization, Cookie, X-GitHub-OTP
211
+ - Accept-Encoding
212
+ X-Github-Media-Type:
213
+ - github.v3; format=json
214
+ X-Xss-Protection:
215
+ - 1; mode=block
216
+ X-Frame-Options:
217
+ - deny
218
+ Content-Security-Policy:
219
+ - default-src 'none'
220
+ Access-Control-Allow-Credentials:
221
+ - 'true'
222
+ Access-Control-Expose-Headers:
223
+ - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
224
+ X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
225
+ Access-Control-Allow-Origin:
226
+ - "*"
227
+ X-Github-Request-Id:
228
+ - 97EDEE7E:37FD:71786F:551D5A6C
229
+ Strict-Transport-Security:
230
+ - max-age=31536000; includeSubdomains; preload
231
+ X-Content-Type-Options:
232
+ - nosniff
233
+ X-Served-By:
234
+ - a30e6f9aa7cf5731b87dfb3b9992202d
235
+ body:
236
+ encoding: ASCII-8BIT
237
+ string: '[{"url":"https://api.github.com/repos/GITHUB_REPO/pulls/3","id":31693205,"html_url":"https://github.com/GITHUB_REPO/pull/3","diff_url":"https://github.com/GITHUB_REPO/pull/3.diff","patch_url":"https://github.com/GITHUB_REPO/pull/3.patch","issue_url":"https://api.github.com/repos/GITHUB_REPO/issues/3","number":3,"state":"closed","locked":false,"title":"Test
238
+ branch","user":{"login":"alaibe","id":491074,"avatar_url":"https://avatars.githubusercontent.com/u/491074?v=3","gravatar_id":"","url":"https://api.github.com/users/alaibe","html_url":"https://github.com/alaibe","followers_url":"https://api.github.com/users/alaibe/followers","following_url":"https://api.github.com/users/alaibe/following{/other_user}","gists_url":"https://api.github.com/users/alaibe/gists{/gist_id}","starred_url":"https://api.github.com/users/alaibe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alaibe/subscriptions","organizations_url":"https://api.github.com/users/alaibe/orgs","repos_url":"https://api.github.com/users/alaibe/repos","events_url":"https://api.github.com/users/alaibe/events{/privacy}","received_events_url":"https://api.github.com/users/alaibe/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-03-22T19:26:26Z","updated_at":"2015-03-22T19:26:33Z","closed_at":"2015-03-22T19:26:32Z","merged_at":"2015-03-22T19:26:32Z","merge_commit_sha":"bb874b67cb40519c30f17b4f74054c7e7aa9d27d","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/GITHUB_REPO/pulls/3/commits","review_comments_url":"https://api.github.com/repos/GITHUB_REPO/pulls/3/comments","review_comment_url":"https://api.github.com/repos/GITHUB_REPO/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GITHUB_REPO/issues/3/comments","statuses_url":"https://api.github.com/repos/GITHUB_REPO/statuses/f230832eda0b6392d8cc0119ac1001ffd99d151f","head":{"label":"alaibe:test_branch","ref":"test_branch","sha":"f230832eda0b6392d8cc0119ac1001ffd99d151f","user":{"login":"alaibe","id":491074,"avatar_url":"https://avatars.githubusercontent.com/u/491074?v=3","gravatar_id":"","url":"https://api.github.com/users/alaibe","html_url":"https://github.com/alaibe","followers_url":"https://api.github.com/users/alaibe/followers","following_url":"https://api.github.com/users/alaibe/following{/other_user}","gists_url":"https://api.github.com/users/alaibe/gists{/gist_id}","starred_url":"https://api.github.com/users/alaibe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alaibe/subscriptions","organizations_url":"https://api.github.com/users/alaibe/orgs","repos_url":"https://api.github.com/users/alaibe/repos","events_url":"https://api.github.com/users/alaibe/events{/privacy}","received_events_url":"https://api.github.com/users/alaibe/received_events","type":"User","site_admin":false},"repo":{"id":32638899,"name":"amanuensis","full_name":"GITHUB_REPO","owner":{"login":"alaibe","id":491074,"avatar_url":"https://avatars.githubusercontent.com/u/491074?v=3","gravatar_id":"","url":"https://api.github.com/users/alaibe","html_url":"https://github.com/alaibe","followers_url":"https://api.github.com/users/alaibe/followers","following_url":"https://api.github.com/users/alaibe/following{/other_user}","gists_url":"https://api.github.com/users/alaibe/gists{/gist_id}","starred_url":"https://api.github.com/users/alaibe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alaibe/subscriptions","organizations_url":"https://api.github.com/users/alaibe/orgs","repos_url":"https://api.github.com/users/alaibe/repos","events_url":"https://api.github.com/users/alaibe/events{/privacy}","received_events_url":"https://api.github.com/users/alaibe/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/GITHUB_REPO","description":"","fork":false,"url":"https://api.github.com/repos/GITHUB_REPO","forks_url":"https://api.github.com/repos/GITHUB_REPO/forks","keys_url":"https://api.github.com/repos/GITHUB_REPO/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GITHUB_REPO/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GITHUB_REPO/teams","hooks_url":"https://api.github.com/repos/GITHUB_REPO/hooks","issue_events_url":"https://api.github.com/repos/GITHUB_REPO/issues/events{/number}","events_url":"https://api.github.com/repos/GITHUB_REPO/events","assignees_url":"https://api.github.com/repos/GITHUB_REPO/assignees{/user}","branches_url":"https://api.github.com/repos/GITHUB_REPO/branches{/branch}","tags_url":"https://api.github.com/repos/GITHUB_REPO/tags","blobs_url":"https://api.github.com/repos/GITHUB_REPO/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GITHUB_REPO/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GITHUB_REPO/git/refs{/sha}","trees_url":"https://api.github.com/repos/GITHUB_REPO/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GITHUB_REPO/statuses/{sha}","languages_url":"https://api.github.com/repos/GITHUB_REPO/languages","stargazers_url":"https://api.github.com/repos/GITHUB_REPO/stargazers","contributors_url":"https://api.github.com/repos/GITHUB_REPO/contributors","subscribers_url":"https://api.github.com/repos/GITHUB_REPO/subscribers","subscription_url":"https://api.github.com/repos/GITHUB_REPO/subscription","commits_url":"https://api.github.com/repos/GITHUB_REPO/commits{/sha}","git_commits_url":"https://api.github.com/repos/GITHUB_REPO/git/commits{/sha}","comments_url":"https://api.github.com/repos/GITHUB_REPO/comments{/number}","issue_comment_url":"https://api.github.com/repos/GITHUB_REPO/issues/comments{/number}","contents_url":"https://api.github.com/repos/GITHUB_REPO/contents/{+path}","compare_url":"https://api.github.com/repos/GITHUB_REPO/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GITHUB_REPO/merges","archive_url":"https://api.github.com/repos/GITHUB_REPO/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GITHUB_REPO/downloads","issues_url":"https://api.github.com/repos/GITHUB_REPO/issues{/number}","pulls_url":"https://api.github.com/repos/GITHUB_REPO/pulls{/number}","milestones_url":"https://api.github.com/repos/GITHUB_REPO/milestones{/number}","notifications_url":"https://api.github.com/repos/GITHUB_REPO/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GITHUB_REPO/labels{/name}","releases_url":"https://api.github.com/repos/GITHUB_REPO/releases{/id}","created_at":"2015-03-21T16:03:04Z","updated_at":"2015-04-02T12:51:51Z","pushed_at":"2015-04-02T12:51:50Z","git_url":"git://github.com/GITHUB_REPO.git","ssh_url":"git@github.com:GITHUB_REPO.git","clone_url":"https://github.com/GITHUB_REPO.git","svn_url":"https://github.com/GITHUB_REPO","homepage":"http://alaibe.github.io/amanuensis","size":212,"stargazers_count":2,"watchers_count":2,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":2,"default_branch":"master"}},"base":{"label":"alaibe:master","ref":"master","sha":"55d9471fbcc92d20812b7516d6bc66ef41470ba7","user":{"login":"alaibe","id":491074,"avatar_url":"https://avatars.githubusercontent.com/u/491074?v=3","gravatar_id":"","url":"https://api.github.com/users/alaibe","html_url":"https://github.com/alaibe","followers_url":"https://api.github.com/users/alaibe/followers","following_url":"https://api.github.com/users/alaibe/following{/other_user}","gists_url":"https://api.github.com/users/alaibe/gists{/gist_id}","starred_url":"https://api.github.com/users/alaibe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alaibe/subscriptions","organizations_url":"https://api.github.com/users/alaibe/orgs","repos_url":"https://api.github.com/users/alaibe/repos","events_url":"https://api.github.com/users/alaibe/events{/privacy}","received_events_url":"https://api.github.com/users/alaibe/received_events","type":"User","site_admin":false},"repo":{"id":32638899,"name":"amanuensis","full_name":"GITHUB_REPO","owner":{"login":"alaibe","id":491074,"avatar_url":"https://avatars.githubusercontent.com/u/491074?v=3","gravatar_id":"","url":"https://api.github.com/users/alaibe","html_url":"https://github.com/alaibe","followers_url":"https://api.github.com/users/alaibe/followers","following_url":"https://api.github.com/users/alaibe/following{/other_user}","gists_url":"https://api.github.com/users/alaibe/gists{/gist_id}","starred_url":"https://api.github.com/users/alaibe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alaibe/subscriptions","organizations_url":"https://api.github.com/users/alaibe/orgs","repos_url":"https://api.github.com/users/alaibe/repos","events_url":"https://api.github.com/users/alaibe/events{/privacy}","received_events_url":"https://api.github.com/users/alaibe/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/GITHUB_REPO","description":"","fork":false,"url":"https://api.github.com/repos/GITHUB_REPO","forks_url":"https://api.github.com/repos/GITHUB_REPO/forks","keys_url":"https://api.github.com/repos/GITHUB_REPO/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GITHUB_REPO/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GITHUB_REPO/teams","hooks_url":"https://api.github.com/repos/GITHUB_REPO/hooks","issue_events_url":"https://api.github.com/repos/GITHUB_REPO/issues/events{/number}","events_url":"https://api.github.com/repos/GITHUB_REPO/events","assignees_url":"https://api.github.com/repos/GITHUB_REPO/assignees{/user}","branches_url":"https://api.github.com/repos/GITHUB_REPO/branches{/branch}","tags_url":"https://api.github.com/repos/GITHUB_REPO/tags","blobs_url":"https://api.github.com/repos/GITHUB_REPO/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GITHUB_REPO/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GITHUB_REPO/git/refs{/sha}","trees_url":"https://api.github.com/repos/GITHUB_REPO/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GITHUB_REPO/statuses/{sha}","languages_url":"https://api.github.com/repos/GITHUB_REPO/languages","stargazers_url":"https://api.github.com/repos/GITHUB_REPO/stargazers","contributors_url":"https://api.github.com/repos/GITHUB_REPO/contributors","subscribers_url":"https://api.github.com/repos/GITHUB_REPO/subscribers","subscription_url":"https://api.github.com/repos/GITHUB_REPO/subscription","commits_url":"https://api.github.com/repos/GITHUB_REPO/commits{/sha}","git_commits_url":"https://api.github.com/repos/GITHUB_REPO/git/commits{/sha}","comments_url":"https://api.github.com/repos/GITHUB_REPO/comments{/number}","issue_comment_url":"https://api.github.com/repos/GITHUB_REPO/issues/comments{/number}","contents_url":"https://api.github.com/repos/GITHUB_REPO/contents/{+path}","compare_url":"https://api.github.com/repos/GITHUB_REPO/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GITHUB_REPO/merges","archive_url":"https://api.github.com/repos/GITHUB_REPO/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GITHUB_REPO/downloads","issues_url":"https://api.github.com/repos/GITHUB_REPO/issues{/number}","pulls_url":"https://api.github.com/repos/GITHUB_REPO/pulls{/number}","milestones_url":"https://api.github.com/repos/GITHUB_REPO/milestones{/number}","notifications_url":"https://api.github.com/repos/GITHUB_REPO/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GITHUB_REPO/labels{/name}","releases_url":"https://api.github.com/repos/GITHUB_REPO/releases{/id}","created_at":"2015-03-21T16:03:04Z","updated_at":"2015-04-02T12:51:51Z","pushed_at":"2015-04-02T12:51:50Z","git_url":"git://github.com/GITHUB_REPO.git","ssh_url":"git@github.com:GITHUB_REPO.git","clone_url":"https://github.com/GITHUB_REPO.git","svn_url":"https://github.com/GITHUB_REPO","homepage":"http://alaibe.github.io/amanuensis","size":212,"stargazers_count":2,"watchers_count":2,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GITHUB_REPO/pulls/3"},"html":{"href":"https://github.com/GITHUB_REPO/pull/3"},"issue":{"href":"https://api.github.com/repos/GITHUB_REPO/issues/3"},"comments":{"href":"https://api.github.com/repos/GITHUB_REPO/issues/3/comments"},"review_comments":{"href":"https://api.github.com/repos/GITHUB_REPO/pulls/3/comments"},"review_comment":{"href":"https://api.github.com/repos/GITHUB_REPO/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GITHUB_REPO/pulls/3/commits"},"statuses":{"href":"https://api.github.com/repos/GITHUB_REPO/statuses/f230832eda0b6392d8cc0119ac1001ffd99d151f"}}},{"url":"https://api.github.com/repos/GITHUB_REPO/pulls/2","id":31692633,"html_url":"https://github.com/GITHUB_REPO/pull/2","diff_url":"https://github.com/GITHUB_REPO/pull/2.diff","patch_url":"https://github.com/GITHUB_REPO/pull/2.patch","issue_url":"https://api.github.com/repos/GITHUB_REPO/issues/2","number":2,"state":"closed","locked":false,"title":"Fix
239
+ filter","user":{"login":"alaibe","id":491074,"avatar_url":"https://avatars.githubusercontent.com/u/491074?v=3","gravatar_id":"","url":"https://api.github.com/users/alaibe","html_url":"https://github.com/alaibe","followers_url":"https://api.github.com/users/alaibe/followers","following_url":"https://api.github.com/users/alaibe/following{/other_user}","gists_url":"https://api.github.com/users/alaibe/gists{/gist_id}","starred_url":"https://api.github.com/users/alaibe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alaibe/subscriptions","organizations_url":"https://api.github.com/users/alaibe/orgs","repos_url":"https://api.github.com/users/alaibe/repos","events_url":"https://api.github.com/users/alaibe/events{/privacy}","received_events_url":"https://api.github.com/users/alaibe/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-03-22T18:53:17Z","updated_at":"2015-03-22T18:53:20Z","closed_at":"2015-03-22T18:53:20Z","merged_at":"2015-03-22T18:53:20Z","merge_commit_sha":"d026f4863c3e0c88394fcc626db50200634ab9e1","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/GITHUB_REPO/pulls/2/commits","review_comments_url":"https://api.github.com/repos/GITHUB_REPO/pulls/2/comments","review_comment_url":"https://api.github.com/repos/GITHUB_REPO/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GITHUB_REPO/issues/2/comments","statuses_url":"https://api.github.com/repos/GITHUB_REPO/statuses/382e126faf04397339fb65f62fe39ee32472d6e0","head":{"label":"alaibe:test_branch","ref":"test_branch","sha":"382e126faf04397339fb65f62fe39ee32472d6e0","user":{"login":"alaibe","id":491074,"avatar_url":"https://avatars.githubusercontent.com/u/491074?v=3","gravatar_id":"","url":"https://api.github.com/users/alaibe","html_url":"https://github.com/alaibe","followers_url":"https://api.github.com/users/alaibe/followers","following_url":"https://api.github.com/users/alaibe/following{/other_user}","gists_url":"https://api.github.com/users/alaibe/gists{/gist_id}","starred_url":"https://api.github.com/users/alaibe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alaibe/subscriptions","organizations_url":"https://api.github.com/users/alaibe/orgs","repos_url":"https://api.github.com/users/alaibe/repos","events_url":"https://api.github.com/users/alaibe/events{/privacy}","received_events_url":"https://api.github.com/users/alaibe/received_events","type":"User","site_admin":false},"repo":{"id":32638899,"name":"amanuensis","full_name":"GITHUB_REPO","owner":{"login":"alaibe","id":491074,"avatar_url":"https://avatars.githubusercontent.com/u/491074?v=3","gravatar_id":"","url":"https://api.github.com/users/alaibe","html_url":"https://github.com/alaibe","followers_url":"https://api.github.com/users/alaibe/followers","following_url":"https://api.github.com/users/alaibe/following{/other_user}","gists_url":"https://api.github.com/users/alaibe/gists{/gist_id}","starred_url":"https://api.github.com/users/alaibe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alaibe/subscriptions","organizations_url":"https://api.github.com/users/alaibe/orgs","repos_url":"https://api.github.com/users/alaibe/repos","events_url":"https://api.github.com/users/alaibe/events{/privacy}","received_events_url":"https://api.github.com/users/alaibe/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/GITHUB_REPO","description":"","fork":false,"url":"https://api.github.com/repos/GITHUB_REPO","forks_url":"https://api.github.com/repos/GITHUB_REPO/forks","keys_url":"https://api.github.com/repos/GITHUB_REPO/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GITHUB_REPO/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GITHUB_REPO/teams","hooks_url":"https://api.github.com/repos/GITHUB_REPO/hooks","issue_events_url":"https://api.github.com/repos/GITHUB_REPO/issues/events{/number}","events_url":"https://api.github.com/repos/GITHUB_REPO/events","assignees_url":"https://api.github.com/repos/GITHUB_REPO/assignees{/user}","branches_url":"https://api.github.com/repos/GITHUB_REPO/branches{/branch}","tags_url":"https://api.github.com/repos/GITHUB_REPO/tags","blobs_url":"https://api.github.com/repos/GITHUB_REPO/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GITHUB_REPO/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GITHUB_REPO/git/refs{/sha}","trees_url":"https://api.github.com/repos/GITHUB_REPO/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GITHUB_REPO/statuses/{sha}","languages_url":"https://api.github.com/repos/GITHUB_REPO/languages","stargazers_url":"https://api.github.com/repos/GITHUB_REPO/stargazers","contributors_url":"https://api.github.com/repos/GITHUB_REPO/contributors","subscribers_url":"https://api.github.com/repos/GITHUB_REPO/subscribers","subscription_url":"https://api.github.com/repos/GITHUB_REPO/subscription","commits_url":"https://api.github.com/repos/GITHUB_REPO/commits{/sha}","git_commits_url":"https://api.github.com/repos/GITHUB_REPO/git/commits{/sha}","comments_url":"https://api.github.com/repos/GITHUB_REPO/comments{/number}","issue_comment_url":"https://api.github.com/repos/GITHUB_REPO/issues/comments{/number}","contents_url":"https://api.github.com/repos/GITHUB_REPO/contents/{+path}","compare_url":"https://api.github.com/repos/GITHUB_REPO/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GITHUB_REPO/merges","archive_url":"https://api.github.com/repos/GITHUB_REPO/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GITHUB_REPO/downloads","issues_url":"https://api.github.com/repos/GITHUB_REPO/issues{/number}","pulls_url":"https://api.github.com/repos/GITHUB_REPO/pulls{/number}","milestones_url":"https://api.github.com/repos/GITHUB_REPO/milestones{/number}","notifications_url":"https://api.github.com/repos/GITHUB_REPO/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GITHUB_REPO/labels{/name}","releases_url":"https://api.github.com/repos/GITHUB_REPO/releases{/id}","created_at":"2015-03-21T16:03:04Z","updated_at":"2015-04-02T12:51:51Z","pushed_at":"2015-04-02T12:51:50Z","git_url":"git://github.com/GITHUB_REPO.git","ssh_url":"git@github.com:GITHUB_REPO.git","clone_url":"https://github.com/GITHUB_REPO.git","svn_url":"https://github.com/GITHUB_REPO","homepage":"http://alaibe.github.io/amanuensis","size":212,"stargazers_count":2,"watchers_count":2,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":2,"default_branch":"master"}},"base":{"label":"alaibe:master","ref":"master","sha":"3292fe4199826b0640603a5061ed42d14412454c","user":{"login":"alaibe","id":491074,"avatar_url":"https://avatars.githubusercontent.com/u/491074?v=3","gravatar_id":"","url":"https://api.github.com/users/alaibe","html_url":"https://github.com/alaibe","followers_url":"https://api.github.com/users/alaibe/followers","following_url":"https://api.github.com/users/alaibe/following{/other_user}","gists_url":"https://api.github.com/users/alaibe/gists{/gist_id}","starred_url":"https://api.github.com/users/alaibe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alaibe/subscriptions","organizations_url":"https://api.github.com/users/alaibe/orgs","repos_url":"https://api.github.com/users/alaibe/repos","events_url":"https://api.github.com/users/alaibe/events{/privacy}","received_events_url":"https://api.github.com/users/alaibe/received_events","type":"User","site_admin":false},"repo":{"id":32638899,"name":"amanuensis","full_name":"GITHUB_REPO","owner":{"login":"alaibe","id":491074,"avatar_url":"https://avatars.githubusercontent.com/u/491074?v=3","gravatar_id":"","url":"https://api.github.com/users/alaibe","html_url":"https://github.com/alaibe","followers_url":"https://api.github.com/users/alaibe/followers","following_url":"https://api.github.com/users/alaibe/following{/other_user}","gists_url":"https://api.github.com/users/alaibe/gists{/gist_id}","starred_url":"https://api.github.com/users/alaibe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alaibe/subscriptions","organizations_url":"https://api.github.com/users/alaibe/orgs","repos_url":"https://api.github.com/users/alaibe/repos","events_url":"https://api.github.com/users/alaibe/events{/privacy}","received_events_url":"https://api.github.com/users/alaibe/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/GITHUB_REPO","description":"","fork":false,"url":"https://api.github.com/repos/GITHUB_REPO","forks_url":"https://api.github.com/repos/GITHUB_REPO/forks","keys_url":"https://api.github.com/repos/GITHUB_REPO/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GITHUB_REPO/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GITHUB_REPO/teams","hooks_url":"https://api.github.com/repos/GITHUB_REPO/hooks","issue_events_url":"https://api.github.com/repos/GITHUB_REPO/issues/events{/number}","events_url":"https://api.github.com/repos/GITHUB_REPO/events","assignees_url":"https://api.github.com/repos/GITHUB_REPO/assignees{/user}","branches_url":"https://api.github.com/repos/GITHUB_REPO/branches{/branch}","tags_url":"https://api.github.com/repos/GITHUB_REPO/tags","blobs_url":"https://api.github.com/repos/GITHUB_REPO/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GITHUB_REPO/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GITHUB_REPO/git/refs{/sha}","trees_url":"https://api.github.com/repos/GITHUB_REPO/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GITHUB_REPO/statuses/{sha}","languages_url":"https://api.github.com/repos/GITHUB_REPO/languages","stargazers_url":"https://api.github.com/repos/GITHUB_REPO/stargazers","contributors_url":"https://api.github.com/repos/GITHUB_REPO/contributors","subscribers_url":"https://api.github.com/repos/GITHUB_REPO/subscribers","subscription_url":"https://api.github.com/repos/GITHUB_REPO/subscription","commits_url":"https://api.github.com/repos/GITHUB_REPO/commits{/sha}","git_commits_url":"https://api.github.com/repos/GITHUB_REPO/git/commits{/sha}","comments_url":"https://api.github.com/repos/GITHUB_REPO/comments{/number}","issue_comment_url":"https://api.github.com/repos/GITHUB_REPO/issues/comments{/number}","contents_url":"https://api.github.com/repos/GITHUB_REPO/contents/{+path}","compare_url":"https://api.github.com/repos/GITHUB_REPO/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GITHUB_REPO/merges","archive_url":"https://api.github.com/repos/GITHUB_REPO/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GITHUB_REPO/downloads","issues_url":"https://api.github.com/repos/GITHUB_REPO/issues{/number}","pulls_url":"https://api.github.com/repos/GITHUB_REPO/pulls{/number}","milestones_url":"https://api.github.com/repos/GITHUB_REPO/milestones{/number}","notifications_url":"https://api.github.com/repos/GITHUB_REPO/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GITHUB_REPO/labels{/name}","releases_url":"https://api.github.com/repos/GITHUB_REPO/releases{/id}","created_at":"2015-03-21T16:03:04Z","updated_at":"2015-04-02T12:51:51Z","pushed_at":"2015-04-02T12:51:50Z","git_url":"git://github.com/GITHUB_REPO.git","ssh_url":"git@github.com:GITHUB_REPO.git","clone_url":"https://github.com/GITHUB_REPO.git","svn_url":"https://github.com/GITHUB_REPO","homepage":"http://alaibe.github.io/amanuensis","size":212,"stargazers_count":2,"watchers_count":2,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GITHUB_REPO/pulls/2"},"html":{"href":"https://github.com/GITHUB_REPO/pull/2"},"issue":{"href":"https://api.github.com/repos/GITHUB_REPO/issues/2"},"comments":{"href":"https://api.github.com/repos/GITHUB_REPO/issues/2/comments"},"review_comments":{"href":"https://api.github.com/repos/GITHUB_REPO/pulls/2/comments"},"review_comment":{"href":"https://api.github.com/repos/GITHUB_REPO/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GITHUB_REPO/pulls/2/commits"},"statuses":{"href":"https://api.github.com/repos/GITHUB_REPO/statuses/382e126faf04397339fb65f62fe39ee32472d6e0"}}}]'
240
+ http_version:
241
+ recorded_at: Thu, 02 Apr 2015 15:06:35 GMT
242
+ - request:
243
+ method: get
244
+ uri: https://api.github.com/repos/GITHUB_REPO
245
+ body:
246
+ encoding: US-ASCII
247
+ string: ''
248
+ headers:
249
+ Accept:
250
+ - application/vnd.github.v3+json
251
+ User-Agent:
252
+ - Octokit Ruby Gem 3.8.0
253
+ Content-Type:
254
+ - application/json
255
+ Authorization:
256
+ - token GITHUB_OAUTH_TOKEN
257
+ Accept-Encoding:
258
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
259
+ response:
260
+ status:
261
+ code: 200
262
+ message: OK
263
+ headers:
264
+ Server:
265
+ - GitHub.com
266
+ Date:
267
+ - Thu, 02 Apr 2015 15:04:13 GMT
268
+ Content-Type:
269
+ - application/json; charset=utf-8
270
+ Transfer-Encoding:
271
+ - chunked
272
+ Status:
273
+ - 200 OK
274
+ X-Ratelimit-Limit:
275
+ - '5000'
276
+ X-Ratelimit-Remaining:
277
+ - '4994'
278
+ X-Ratelimit-Reset:
279
+ - '1427990308'
280
+ Cache-Control:
281
+ - private, max-age=60, s-maxage=60
282
+ Last-Modified:
283
+ - Thu, 02 Apr 2015 12:51:51 GMT
284
+ Etag:
285
+ - W/"7eef60cf92672ad27acc2568e1614924"
286
+ X-Oauth-Scopes:
287
+ - repo
288
+ X-Accepted-Oauth-Scopes:
289
+ - repo
290
+ Vary:
291
+ - Accept, Authorization, Cookie, X-GitHub-OTP
292
+ - Accept-Encoding
293
+ X-Github-Media-Type:
294
+ - github.v3; format=json
295
+ X-Xss-Protection:
296
+ - 1; mode=block
297
+ X-Frame-Options:
298
+ - deny
299
+ Content-Security-Policy:
300
+ - default-src 'none'
301
+ Access-Control-Allow-Credentials:
302
+ - 'true'
303
+ Access-Control-Expose-Headers:
304
+ - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
305
+ X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
306
+ Access-Control-Allow-Origin:
307
+ - "*"
308
+ X-Github-Request-Id:
309
+ - 97EDEE7E:3801:149CE0A:551D5A6D
310
+ Strict-Transport-Security:
311
+ - max-age=31536000; includeSubdomains; preload
312
+ X-Content-Type-Options:
313
+ - nosniff
314
+ X-Served-By:
315
+ - 7f48e2f7761567e923121f17538d7a6d
316
+ body:
317
+ encoding: ASCII-8BIT
318
+ string: '{"id":32638899,"name":"amanuensis","full_name":"GITHUB_REPO","owner":{"login":"alaibe","id":491074,"avatar_url":"https://avatars.githubusercontent.com/u/491074?v=3","gravatar_id":"","url":"https://api.github.com/users/alaibe","html_url":"https://github.com/alaibe","followers_url":"https://api.github.com/users/alaibe/followers","following_url":"https://api.github.com/users/alaibe/following{/other_user}","gists_url":"https://api.github.com/users/alaibe/gists{/gist_id}","starred_url":"https://api.github.com/users/alaibe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alaibe/subscriptions","organizations_url":"https://api.github.com/users/alaibe/orgs","repos_url":"https://api.github.com/users/alaibe/repos","events_url":"https://api.github.com/users/alaibe/events{/privacy}","received_events_url":"https://api.github.com/users/alaibe/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/GITHUB_REPO","description":"","fork":false,"url":"https://api.github.com/repos/GITHUB_REPO","forks_url":"https://api.github.com/repos/GITHUB_REPO/forks","keys_url":"https://api.github.com/repos/GITHUB_REPO/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GITHUB_REPO/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GITHUB_REPO/teams","hooks_url":"https://api.github.com/repos/GITHUB_REPO/hooks","issue_events_url":"https://api.github.com/repos/GITHUB_REPO/issues/events{/number}","events_url":"https://api.github.com/repos/GITHUB_REPO/events","assignees_url":"https://api.github.com/repos/GITHUB_REPO/assignees{/user}","branches_url":"https://api.github.com/repos/GITHUB_REPO/branches{/branch}","tags_url":"https://api.github.com/repos/GITHUB_REPO/tags","blobs_url":"https://api.github.com/repos/GITHUB_REPO/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GITHUB_REPO/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GITHUB_REPO/git/refs{/sha}","trees_url":"https://api.github.com/repos/GITHUB_REPO/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GITHUB_REPO/statuses/{sha}","languages_url":"https://api.github.com/repos/GITHUB_REPO/languages","stargazers_url":"https://api.github.com/repos/GITHUB_REPO/stargazers","contributors_url":"https://api.github.com/repos/GITHUB_REPO/contributors","subscribers_url":"https://api.github.com/repos/GITHUB_REPO/subscribers","subscription_url":"https://api.github.com/repos/GITHUB_REPO/subscription","commits_url":"https://api.github.com/repos/GITHUB_REPO/commits{/sha}","git_commits_url":"https://api.github.com/repos/GITHUB_REPO/git/commits{/sha}","comments_url":"https://api.github.com/repos/GITHUB_REPO/comments{/number}","issue_comment_url":"https://api.github.com/repos/GITHUB_REPO/issues/comments{/number}","contents_url":"https://api.github.com/repos/GITHUB_REPO/contents/{+path}","compare_url":"https://api.github.com/repos/GITHUB_REPO/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GITHUB_REPO/merges","archive_url":"https://api.github.com/repos/GITHUB_REPO/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GITHUB_REPO/downloads","issues_url":"https://api.github.com/repos/GITHUB_REPO/issues{/number}","pulls_url":"https://api.github.com/repos/GITHUB_REPO/pulls{/number}","milestones_url":"https://api.github.com/repos/GITHUB_REPO/milestones{/number}","notifications_url":"https://api.github.com/repos/GITHUB_REPO/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GITHUB_REPO/labels{/name}","releases_url":"https://api.github.com/repos/GITHUB_REPO/releases{/id}","created_at":"2015-03-21T16:03:04Z","updated_at":"2015-04-02T12:51:51Z","pushed_at":"2015-04-02T12:51:50Z","git_url":"git://github.com/GITHUB_REPO.git","ssh_url":"git@github.com:GITHUB_REPO.git","clone_url":"https://github.com/GITHUB_REPO.git","svn_url":"https://github.com/GITHUB_REPO","homepage":"http://alaibe.github.io/amanuensis","size":212,"stargazers_count":2,"watchers_count":2,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":2,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"network_count":0,"subscribers_count":0}'
319
+ http_version:
320
+ recorded_at: Thu, 02 Apr 2015 15:06:36 GMT
321
+ - request:
322
+ method: get
323
+ uri: https://api.github.com/repos/GITHUB_REPO/contents/Changelog.md?ref=heads/master
324
+ body:
325
+ encoding: US-ASCII
326
+ string: ''
327
+ headers:
328
+ Accept:
329
+ - application/vnd.github.V3.raw
330
+ User-Agent:
331
+ - Octokit Ruby Gem 3.8.0
332
+ Content-Type:
333
+ - application/json
334
+ Authorization:
335
+ - token GITHUB_OAUTH_TOKEN
336
+ Accept-Encoding:
337
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
338
+ response:
339
+ status:
340
+ code: 404
341
+ message: Not Found
342
+ headers:
343
+ Server:
344
+ - GitHub.com
345
+ Date:
346
+ - Thu, 02 Apr 2015 15:04:14 GMT
347
+ Content-Type:
348
+ - application/json; charset=utf-8
349
+ Transfer-Encoding:
350
+ - chunked
351
+ Status:
352
+ - 404 Not Found
353
+ X-Ratelimit-Limit:
354
+ - '5000'
355
+ X-Ratelimit-Remaining:
356
+ - '4993'
357
+ X-Ratelimit-Reset:
358
+ - '1427990308'
359
+ X-Oauth-Scopes:
360
+ - repo
361
+ X-Accepted-Oauth-Scopes:
362
+ - ''
363
+ X-Github-Media-Type:
364
+ - github.v3; param=V3.raw
365
+ X-Xss-Protection:
366
+ - 1; mode=block
367
+ X-Frame-Options:
368
+ - deny
369
+ Content-Security-Policy:
370
+ - default-src 'none'
371
+ Access-Control-Allow-Credentials:
372
+ - 'true'
373
+ Access-Control-Expose-Headers:
374
+ - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
375
+ X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
376
+ Access-Control-Allow-Origin:
377
+ - "*"
378
+ X-Github-Request-Id:
379
+ - 97EDEE7E:37FD:717A4B:551D5A6E
380
+ Strict-Transport-Security:
381
+ - max-age=31536000; includeSubdomains; preload
382
+ X-Content-Type-Options:
383
+ - nosniff
384
+ body:
385
+ encoding: ASCII-8BIT
386
+ string: '{"message":"Not Found","documentation_url":"https://developer.github.com/v3"}'
387
+ http_version:
388
+ recorded_at: Thu, 02 Apr 2015 15:06:36 GMT
389
+ - request:
390
+ method: put
391
+ uri: https://api.github.com/repos/GITHUB_REPO/contents/Changelog.md
392
+ body:
393
+ encoding: UTF-8
394
+ string: '{"branch":"master","content":"IyMgMi4wLjItMDIvMDQvMjAxNSAxNjowNjozNAoKKipJc3N1ZXMgY2xvc2VkOioqCgoqKlB1bGwgcmVxdWVzdHMgY2xvc2VkOioqCgo=","message":"Creating
395
+ changelog"}'
396
+ headers:
397
+ Accept:
398
+ - application/vnd.github.v3+json
399
+ User-Agent:
400
+ - Octokit Ruby Gem 3.8.0
401
+ Content-Type:
402
+ - application/json
403
+ Authorization:
404
+ - token GITHUB_OAUTH_TOKEN
405
+ Accept-Encoding:
406
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
407
+ response:
408
+ status:
409
+ code: 201
410
+ message: Created
411
+ headers:
412
+ Server:
413
+ - GitHub.com
414
+ Date:
415
+ - Thu, 02 Apr 2015 15:04:15 GMT
416
+ Content-Type:
417
+ - application/json; charset=utf-8
418
+ Content-Length:
419
+ - '1684'
420
+ Status:
421
+ - 201 Created
422
+ X-Ratelimit-Limit:
423
+ - '5000'
424
+ X-Ratelimit-Remaining:
425
+ - '4992'
426
+ X-Ratelimit-Reset:
427
+ - '1427990308'
428
+ Cache-Control:
429
+ - private, max-age=60, s-maxage=60
430
+ Etag:
431
+ - '"3c4d17e90557e5b41e7f9eec0facdbaf"'
432
+ X-Oauth-Scopes:
433
+ - repo
434
+ X-Accepted-Oauth-Scopes:
435
+ - ''
436
+ Vary:
437
+ - Accept, Authorization, Cookie, X-GitHub-OTP
438
+ - Accept-Encoding
439
+ X-Github-Media-Type:
440
+ - github.v3; format=json
441
+ X-Xss-Protection:
442
+ - 1; mode=block
443
+ X-Frame-Options:
444
+ - deny
445
+ Content-Security-Policy:
446
+ - default-src 'none'
447
+ Access-Control-Allow-Credentials:
448
+ - 'true'
449
+ Access-Control-Expose-Headers:
450
+ - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
451
+ X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
452
+ Access-Control-Allow-Origin:
453
+ - "*"
454
+ X-Github-Request-Id:
455
+ - 97EDEE7E:37FE:AE6984:551D5A6F
456
+ Strict-Transport-Security:
457
+ - max-age=31536000; includeSubdomains; preload
458
+ X-Content-Type-Options:
459
+ - nosniff
460
+ X-Served-By:
461
+ - 8a5c38021a5cd7cef7b8f49a296fee40
462
+ body:
463
+ encoding: UTF-8
464
+ string: '{"content":{"name":"Changelog.md","path":"Changelog.md","sha":"62ced3c2946920d49ce57e1f207b7575c1651f82","size":77,"url":"https://api.github.com/repos/GITHUB_REPO/contents/Changelog.md?ref=master","html_url":"https://github.com/GITHUB_REPO/blob/master/Changelog.md","git_url":"https://api.github.com/repos/GITHUB_REPO/git/blobs/62ced3c2946920d49ce57e1f207b7575c1651f82","download_url":"https://raw.githubusercontent.com/GITHUB_REPO/master/Changelog.md","type":"file","_links":{"self":"https://api.github.com/repos/GITHUB_REPO/contents/Changelog.md?ref=master","git":"https://api.github.com/repos/GITHUB_REPO/git/blobs/62ced3c2946920d49ce57e1f207b7575c1651f82","html":"https://github.com/GITHUB_REPO/blob/master/Changelog.md"}},"commit":{"sha":"1e9e6d36f26d48f57a30d55903731af1d60002f6","url":"https://api.github.com/repos/GITHUB_REPO/git/commits/1e9e6d36f26d48f57a30d55903731af1d60002f6","html_url":"https://github.com/GITHUB_REPO/commit/1e9e6d36f26d48f57a30d55903731af1d60002f6","author":{"name":"Anthony
465
+ Laibe","email":"anthony@laibe.cc","date":"2015-04-02T15:04:15Z"},"committer":{"name":"Anthony
466
+ Laibe","email":"anthony@laibe.cc","date":"2015-04-02T15:04:15Z"},"tree":{"sha":"10f2e9b7e92549aea46af76a1cd577a08d80cc02","url":"https://api.github.com/repos/GITHUB_REPO/git/trees/10f2e9b7e92549aea46af76a1cd577a08d80cc02"},"message":"Creating
467
+ changelog","parents":[{"sha":"5214edb17efa0754eed1194c1706cf5e43b00e32","url":"https://api.github.com/repos/GITHUB_REPO/git/commits/5214edb17efa0754eed1194c1706cf5e43b00e32","html_url":"https://github.com/GITHUB_REPO/commit/5214edb17efa0754eed1194c1706cf5e43b00e32"}]}}'
468
+ http_version:
469
+ recorded_at: Thu, 02 Apr 2015 15:06:37 GMT
470
+ - request:
471
+ method: post
472
+ uri: https://api.github.com/repos/GITHUB_REPO/releases
473
+ body:
474
+ encoding: UTF-8
475
+ string: '{"body":"Release generated by amanuensis.","draft":false,"prerelease":false,"tag_name":"2.0.2"}'
476
+ headers:
477
+ Accept:
478
+ - application/vnd.github.v3+json
479
+ User-Agent:
480
+ - Octokit Ruby Gem 3.8.0
481
+ Content-Type:
482
+ - application/json
483
+ Authorization:
484
+ - token GITHUB_OAUTH_TOKEN
485
+ Accept-Encoding:
486
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
487
+ response:
488
+ status:
489
+ code: 201
490
+ message: Created
491
+ headers:
492
+ Server:
493
+ - GitHub.com
494
+ Date:
495
+ - Thu, 02 Apr 2015 15:04:16 GMT
496
+ Content-Type:
497
+ - application/json; charset=utf-8
498
+ Content-Length:
499
+ - '1568'
500
+ Status:
501
+ - 201 Created
502
+ X-Ratelimit-Limit:
503
+ - '5000'
504
+ X-Ratelimit-Remaining:
505
+ - '4991'
506
+ X-Ratelimit-Reset:
507
+ - '1427990308'
508
+ Cache-Control:
509
+ - private, max-age=60, s-maxage=60
510
+ Etag:
511
+ - '"355ba5118be90517e99087beeae4bcbc"'
512
+ X-Oauth-Scopes:
513
+ - repo
514
+ X-Accepted-Oauth-Scopes:
515
+ - ''
516
+ Location:
517
+ - https://api.github.com/repos/GITHUB_REPO/releases/1120003
518
+ Vary:
519
+ - Accept, Authorization, Cookie, X-GitHub-OTP
520
+ - Accept-Encoding
521
+ X-Github-Media-Type:
522
+ - github.v3; format=json
523
+ X-Xss-Protection:
524
+ - 1; mode=block
525
+ X-Frame-Options:
526
+ - deny
527
+ Content-Security-Policy:
528
+ - default-src 'none'
529
+ Access-Control-Allow-Credentials:
530
+ - 'true'
531
+ Access-Control-Expose-Headers:
532
+ - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
533
+ X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
534
+ Access-Control-Allow-Origin:
535
+ - "*"
536
+ X-Github-Request-Id:
537
+ - 97EDEE7E:3801:149D33B:551D5A6F
538
+ Strict-Transport-Security:
539
+ - max-age=31536000; includeSubdomains; preload
540
+ X-Content-Type-Options:
541
+ - nosniff
542
+ X-Served-By:
543
+ - 4c8b2d4732c413f4b9aefe394bd65569
544
+ body:
545
+ encoding: UTF-8
546
+ string: '{"url":"https://api.github.com/repos/GITHUB_REPO/releases/1120003","assets_url":"https://api.github.com/repos/GITHUB_REPO/releases/1120003/assets","upload_url":"https://uploads.github.com/repos/GITHUB_REPO/releases/1120003/assets{?name}","html_url":"https://github.com/GITHUB_REPO/releases/tag/2.0.2","id":1120003,"tag_name":"2.0.2","target_commitish":"master","name":null,"draft":false,"author":{"login":"alaibe","id":491074,"avatar_url":"https://avatars.githubusercontent.com/u/491074?v=3","gravatar_id":"","url":"https://api.github.com/users/alaibe","html_url":"https://github.com/alaibe","followers_url":"https://api.github.com/users/alaibe/followers","following_url":"https://api.github.com/users/alaibe/following{/other_user}","gists_url":"https://api.github.com/users/alaibe/gists{/gist_id}","starred_url":"https://api.github.com/users/alaibe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alaibe/subscriptions","organizations_url":"https://api.github.com/users/alaibe/orgs","repos_url":"https://api.github.com/users/alaibe/repos","events_url":"https://api.github.com/users/alaibe/events{/privacy}","received_events_url":"https://api.github.com/users/alaibe/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2015-04-02T15:04:15Z","published_at":"2015-04-02T15:04:16Z","assets":[],"tarball_url":"https://api.github.com/repos/GITHUB_REPO/tarball/2.0.2","zipball_url":"https://api.github.com/repos/GITHUB_REPO/zipball/2.0.2","body":"Release
547
+ generated by amanuensis."}'
548
+ http_version:
549
+ recorded_at: Thu, 02 Apr 2015 15:06:38 GMT
550
+ recorded_with: VCR 2.9.3