targit 0.0.6 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/README.md +36 -0
  4. data/bin/targit +20 -7
  5. data/lib/targit.rb +1 -0
  6. data/lib/targit/asset.rb +8 -24
  7. data/lib/targit/client.rb +22 -0
  8. data/lib/targit/release.rb +6 -5
  9. data/lib/targit/version.rb +1 -1
  10. data/spec/examples/alpha +1 -0
  11. data/spec/examples/beta +1 -0
  12. data/spec/fixtures/cassettes/asset_autocreate_release.yml +272 -0
  13. data/spec/fixtures/cassettes/asset_existence_check_fail.yml +206 -0
  14. data/spec/fixtures/cassettes/asset_existence_check_pass.yml +206 -0
  15. data/spec/fixtures/cassettes/asset_metadata_absent.yml +209 -0
  16. data/spec/fixtures/cassettes/asset_metadata_present.yml +670 -0
  17. data/spec/fixtures/cassettes/asset_url_absent.yml +405 -0
  18. data/spec/fixtures/cassettes/asset_url_present.yml +674 -0
  19. data/spec/fixtures/cassettes/asset_without_release.yml +70 -0
  20. data/spec/fixtures/cassettes/block_existing_asset.yml +206 -0
  21. data/spec/fixtures/cassettes/create_new_asset.yml +674 -0
  22. data/spec/fixtures/cassettes/create_new_release.yml +205 -0
  23. data/spec/fixtures/cassettes/current_asset.yml +208 -0
  24. data/spec/fixtures/cassettes/current_io_asset.yml +70 -0
  25. data/spec/fixtures/cassettes/current_releases.yml +70 -0
  26. data/spec/fixtures/cassettes/delete_asset.yml +541 -0
  27. data/spec/fixtures/cassettes/no_release_found.yml +70 -0
  28. data/spec/fixtures/cassettes/release_object.yml +70 -0
  29. data/spec/fixtures/cassettes/replace_existing_asset.yml +867 -0
  30. data/spec/spec_helper.rb +18 -0
  31. data/spec/targit/asset_spec.rb +212 -0
  32. data/spec/targit/release_spec.rb +40 -0
  33. data/spec/targit/version_spec.rb +9 -0
  34. data/spec/targit_spec.rb +17 -0
  35. data/targit.gemspec +2 -0
  36. metadata +78 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 24752f8fd011af5d48ceb185ff311f169d5655a5
4
- data.tar.gz: 5c90b50a48a94b97233015d1412cfa2560001e2b
3
+ metadata.gz: 3c738362732f5691e47a0a7bbff02c48d86e6a7f
4
+ data.tar.gz: 077235b536226b1bc8b8e765decb865f7dd85b46
5
5
  SHA512:
6
- metadata.gz: 579b05dda5c43601949f1519a4d1c6245bc508b303533f5ff4ff1a5222e83d532c81e5433e51222887a441cbcdd64bef0d1a648f9ea453462d6321086da583ca
7
- data.tar.gz: 49b04c11b4cb2afc6d83e9e0fedde1287f0459dfcbd0de5ca6c650a594b109ec4665eaa7afdf6ff9d7d0c9e2da5e643eedef29d5654938fbbb5e9f8a55c9b279
6
+ metadata.gz: bb0de98183a12cba90a3242e222e30e1d9566533ee801f3b4e12b3df96270b1473c5174bdbca7bc728215e8f0d5d638bf7282ce02e3ebb85675594fe3b41a9bb
7
+ data.tar.gz: 9b817e456b1b5f77214946db4ffa238aa4d9826f45cb603b0c6a0c97f27313da1edb1b5dcb148e61df01256a3168c5066464c8ba0f1bed27f5f4142504349228
data/.gitignore CHANGED
@@ -3,3 +3,4 @@ coverage/
3
3
  .coveralls.yml
4
4
  .bundle
5
5
  Gemfile.lock
6
+ spec/.creds
data/README.md CHANGED
@@ -12,6 +12,42 @@ Manages GitHub release assets for pushing binaries and other large files
12
12
 
13
13
  ## Usage
14
14
 
15
+ To upload a file as a release asset:
16
+
17
+ ```
18
+ targit USER/REPO TAG /path/to/file
19
+ ```
20
+
21
+ That will add the given file as a release asset for "TAG" on the given GitHub repo. If you haven't already stored GitHub credentials, it will prompt you for them.
22
+
23
+ To create a release that doesn't already exist, add `-c`:
24
+
25
+ ```
26
+ targit -c dock0/arch v0.1.75 ./new_tarball.tar.gz
27
+ ```
28
+
29
+ Adding `-f` will replace an existing release/asset, if they exist:
30
+
31
+ ```
32
+ targit -f -c dock0/arch v0.1.75 ./newer_tarball.tar.gz
33
+ ```
34
+
35
+ Use `-n NAME` to set the name for the asset (it defaults to the file's name):
36
+
37
+ ```
38
+ targit -n special.tar.gz -f -c dock0/arch v0.1.76 ./custom_tarball.tar.gz
39
+ ```
40
+
41
+ Content can also be provided via stdin:
42
+
43
+ ```
44
+ echo "secrit data" | targit -f -c -n foobar dock0/arch v0.0.test
45
+ ```
46
+
47
+ The release can be created as a prerelease via -p.
48
+
49
+ Using `-a` lets you use an alternate GitHub credential file, other than the default of `~/.octoauth.yml`.
50
+
15
51
  ## Installation
16
52
 
17
53
  gem install targit
data/bin/targit CHANGED
@@ -3,6 +3,12 @@
3
3
  require 'targit'
4
4
  require 'mercenary'
5
5
 
6
+ def upload(file, repo, tag, options)
7
+ asset = Targit.new(file, repo, tag, options)
8
+ asset.upload!
9
+ puts "Successfully created asset! #{asset.url}"
10
+ end
11
+
6
12
  Mercenary.program(:targit) do |p|
7
13
  p.version Targit::VERSION
8
14
  p.description 'Tool for adding GitHub release assets'
@@ -13,15 +19,22 @@ Mercenary.program(:targit) do |p|
13
19
  p.option :create, '-c', '--create', 'Create release if it does not exist'
14
20
  p.option :prerelease, '-p', '--prerelease', 'With -c, create as a dev release'
15
21
  p.option :authfile, '-a FILE', '--authfile FILE', 'Set the auth file for GitHub credentials'
22
+ p.option :name, '-n NAME', '--name NAME', 'Set the name for the release asset'
16
23
  # rubocop:enable Style/LineLength
17
24
 
18
- p.action do |args, options|
19
- repo, tag, file = args
20
- if repo && tag && file
21
- puts "Attempting to upload #{file} on #{tag} of #{repo}"
22
- asset = Targit.new(file, repo, tag, options)
23
- asset.upload!
24
- puts "Successfully created asset! #{asset.url}"
25
+ p.action do |_, options|
26
+ repo, tag = ARGV.shift 2
27
+ if !repo || !tag
28
+ puts p
29
+ elsif !ARGV.empty?
30
+ ARGV.each { |file| fail("#{file} not found") unless File.exist? file }
31
+ ARGV.each do |file|
32
+ puts "Adding #{file} on #{tag} of #{repo}"
33
+ upload file, repo, tag, options
34
+ end
35
+ elsif !STDIN.tty?
36
+ fail('Name required if file is passed via STDIN') unless options[:name]
37
+ upload STDIN, repo, tag, options
25
38
  else
26
39
  puts p
27
40
  end
data/lib/targit.rb CHANGED
@@ -12,5 +12,6 @@ module Targit
12
12
  end
13
13
 
14
14
  require 'targit/version'
15
+ require 'targit/client'
15
16
  require 'targit/asset'
16
17
  require 'targit/release'
data/lib/targit/asset.rb CHANGED
@@ -6,16 +6,18 @@ module Targit
6
6
  ##
7
7
  # Define asset object for a release
8
8
  class Asset
9
+ include Targit::Client
10
+
9
11
  attr_reader :release, :asset, :name, :github_data
10
12
 
11
13
  def initialize(asset, repo, tag, params = {})
12
14
  @options = params
13
- @config = _config
14
- @client = _client
15
+ @options[:client] ||= _client
16
+ @client = @options[:client]
15
17
  @release = _release repo, tag
16
18
  @upload_options = _upload_options
17
19
  @asset = asset
18
- @name = @upload_options[:name] || File.basename(@asset)
20
+ @name = @options[:name] || File.basename(@asset)
19
21
  end
20
22
 
21
23
  def upload!
@@ -40,32 +42,14 @@ module Targit
40
42
  end
41
43
 
42
44
  def url
43
- github_data[:browser_download_url] || fail('Asset URL not found')
45
+ data = github_data
46
+ data ? data[:browser_download_url] : fail('Asset URL not found')
44
47
  end
45
48
 
46
49
  private
47
50
 
48
- def _config
49
- @options[:authfile] ||= Octoauth::DEFAULT_FILE
50
- @options[:autosave] ||= true
51
- Octoauth.new(
52
- note: 'targit',
53
- file: @options[:authfile],
54
- autosave: @options[:autosave]
55
- )
56
- end
57
-
58
- def _client
59
- Octokit::Client.new(
60
- access_token: @config.token,
61
- api_endpoint: @options[:api_endpoint],
62
- web_endpoint: @options[:api_endpoint],
63
- auto_paginate: true
64
- )
65
- end
66
-
67
51
  def _release(repo, tag)
68
- Targit::Release.new(@client, repo, tag, @options)
52
+ Targit::Release.new(repo, tag, @options)
69
53
  end
70
54
 
71
55
  def _upload_options
@@ -0,0 +1,22 @@
1
+ require 'octokit'
2
+ require 'octoauth'
3
+
4
+ module Targit
5
+ ##
6
+ # Helper module to load a GitHub API client object
7
+ module Client
8
+ private
9
+
10
+ def _client
11
+ file = @options[:authfile] || Octoauth::DEFAULT_FILE
12
+ autosave = @options[:autosave] || true
13
+ auth = Octoauth.new note: 'targit', file: file, autosave: autosave
14
+ Octokit::Client.new(
15
+ access_token: auth.token,
16
+ api_endpoint: @options[:api_endpoint],
17
+ web_endpoint: @options[:api_endpoint],
18
+ auto_paginate: true
19
+ )
20
+ end
21
+ end
22
+ end
@@ -2,13 +2,14 @@ module Targit
2
2
  ##
3
3
  # GitHub Release object
4
4
  class Release
5
+ include Targit::Client
6
+
5
7
  attr_reader :data, :repo, :tag
6
8
 
7
- def initialize(client, repo, tag, params = {})
8
- @client = client
9
- @options = params
10
- @repo = repo
11
- @tag = tag
9
+ def initialize(repo, tag, params = {})
10
+ @repo, @tag, @options = repo, tag, params
11
+ @options[:client] ||= _client
12
+ @client = @options[:client]
12
13
  @create_options = _create_options
13
14
  @data = find
14
15
  create if @data.nil? && @options[:create]
@@ -1,5 +1,5 @@
1
1
  ##
2
2
  # Set the version (needed for Mercenary -v)
3
3
  module Targit
4
- VERSION = '0.0.6'
4
+ VERSION = '0.1.0'
5
5
  end
@@ -0,0 +1 @@
1
+ hello world
@@ -0,0 +1 @@
1
+ hello world
@@ -0,0 +1,272 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.github.com/repos/akerl/targit/releases?per_page=100
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.2.0
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - GitHub.com
23
+ Date:
24
+ - Sat, 12 Jul 2014 22:37:07 GMT
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Status:
30
+ - 200 OK
31
+ X-Ratelimit-Limit:
32
+ - '5000'
33
+ X-Ratelimit-Remaining:
34
+ - '4448'
35
+ X-Ratelimit-Reset:
36
+ - '1405206221'
37
+ Cache-Control:
38
+ - private, max-age=60, s-maxage=60
39
+ X-Oauth-Scopes:
40
+ - public_repo
41
+ X-Accepted-Oauth-Scopes:
42
+ - ''
43
+ Vary:
44
+ - Accept, Authorization, Cookie, X-GitHub-OTP
45
+ - Accept-Encoding
46
+ X-Github-Media-Type:
47
+ - github.v3; format=json
48
+ X-Xss-Protection:
49
+ - 1; mode=block
50
+ X-Frame-Options:
51
+ - deny
52
+ Content-Security-Policy:
53
+ - default-src 'none'
54
+ Access-Control-Allow-Credentials:
55
+ - 'true'
56
+ Access-Control-Expose-Headers:
57
+ - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
58
+ X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
59
+ Access-Control-Allow-Origin:
60
+ - "*"
61
+ Strict-Transport-Security:
62
+ - max-age=31536000; includeSubdomains
63
+ X-Content-Type-Options:
64
+ - nosniff
65
+ body:
66
+ encoding: UTF-8
67
+ string: '[{"url":"https://api.github.com/repos/akerl/targit/releases/426208","assets_url":"https://api.github.com/repos/akerl/targit/releases/426208/assets","upload_url":"https://uploads.github.com/repos/akerl/targit/releases/426208/assets{?name}","html_url":"https://github.com/akerl/targit/releases/tag/testing","id":426208,"tag_name":"testing","target_commitish":"master","name":null,"draft":false,"author":{"login":"akerl","id":491209,"avatar_url":"https://avatars.githubusercontent.com/u/491209?","gravatar_id":"819691dc5c197c042ccd16b894545673","url":"https://api.github.com/users/akerl","html_url":"https://github.com/akerl","followers_url":"https://api.github.com/users/akerl/followers","following_url":"https://api.github.com/users/akerl/following{/other_user}","gists_url":"https://api.github.com/users/akerl/gists{/gist_id}","starred_url":"https://api.github.com/users/akerl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akerl/subscriptions","organizations_url":"https://api.github.com/users/akerl/orgs","repos_url":"https://api.github.com/users/akerl/repos","events_url":"https://api.github.com/users/akerl/events{/privacy}","received_events_url":"https://api.github.com/users/akerl/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2014-07-12T20:38:20Z","published_at":"2014-07-12T22:37:06Z","assets":[],"tarball_url":"https://api.github.com/repos/akerl/targit/tarball/testing","zipball_url":"https://api.github.com/repos/akerl/targit/zipball/testing","body":null}]'
68
+ http_version:
69
+ recorded_at: Sat, 12 Jul 2014 22:37:06 GMT
70
+ - request:
71
+ method: get
72
+ uri: https://api.github.com/repos/akerl/targit/releases?per_page=100
73
+ body:
74
+ encoding: US-ASCII
75
+ string: ''
76
+ headers:
77
+ Accept:
78
+ - application/vnd.github.v3+json
79
+ User-Agent:
80
+ - Octokit Ruby Gem 3.2.0
81
+ Accept-Encoding:
82
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
83
+ response:
84
+ status:
85
+ code: 200
86
+ message: OK
87
+ headers:
88
+ Server:
89
+ - GitHub.com
90
+ Date:
91
+ - Sat, 12 Jul 2014 22:37:07 GMT
92
+ Content-Type:
93
+ - application/json; charset=utf-8
94
+ Transfer-Encoding:
95
+ - chunked
96
+ Status:
97
+ - 200 OK
98
+ X-Ratelimit-Limit:
99
+ - '5000'
100
+ X-Ratelimit-Remaining:
101
+ - '4447'
102
+ X-Ratelimit-Reset:
103
+ - '1405206221'
104
+ Cache-Control:
105
+ - private, max-age=60, s-maxage=60
106
+ X-Oauth-Scopes:
107
+ - public_repo
108
+ X-Accepted-Oauth-Scopes:
109
+ - ''
110
+ Vary:
111
+ - Accept, Authorization, Cookie, X-GitHub-OTP
112
+ - Accept-Encoding
113
+ X-Github-Media-Type:
114
+ - github.v3; format=json
115
+ X-Xss-Protection:
116
+ - 1; mode=block
117
+ X-Frame-Options:
118
+ - deny
119
+ Content-Security-Policy:
120
+ - default-src 'none'
121
+ Access-Control-Allow-Credentials:
122
+ - 'true'
123
+ Access-Control-Expose-Headers:
124
+ - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
125
+ X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
126
+ Access-Control-Allow-Origin:
127
+ - "*"
128
+ Strict-Transport-Security:
129
+ - max-age=31536000; includeSubdomains
130
+ X-Content-Type-Options:
131
+ - nosniff
132
+ body:
133
+ encoding: UTF-8
134
+ string: '[{"url":"https://api.github.com/repos/akerl/targit/releases/426208","assets_url":"https://api.github.com/repos/akerl/targit/releases/426208/assets","upload_url":"https://uploads.github.com/repos/akerl/targit/releases/426208/assets{?name}","html_url":"https://github.com/akerl/targit/releases/tag/testing","id":426208,"tag_name":"testing","target_commitish":"master","name":null,"draft":false,"author":{"login":"akerl","id":491209,"avatar_url":"https://avatars.githubusercontent.com/u/491209?","gravatar_id":"819691dc5c197c042ccd16b894545673","url":"https://api.github.com/users/akerl","html_url":"https://github.com/akerl","followers_url":"https://api.github.com/users/akerl/followers","following_url":"https://api.github.com/users/akerl/following{/other_user}","gists_url":"https://api.github.com/users/akerl/gists{/gist_id}","starred_url":"https://api.github.com/users/akerl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akerl/subscriptions","organizations_url":"https://api.github.com/users/akerl/orgs","repos_url":"https://api.github.com/users/akerl/repos","events_url":"https://api.github.com/users/akerl/events{/privacy}","received_events_url":"https://api.github.com/users/akerl/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2014-07-12T20:38:20Z","published_at":"2014-07-12T22:37:06Z","assets":[],"tarball_url":"https://api.github.com/repos/akerl/targit/tarball/testing","zipball_url":"https://api.github.com/repos/akerl/targit/zipball/testing","body":null}]'
135
+ http_version:
136
+ recorded_at: Sat, 12 Jul 2014 22:37:06 GMT
137
+ - request:
138
+ method: post
139
+ uri: https://api.github.com/repos/akerl/targit/releases
140
+ body:
141
+ encoding: UTF-8
142
+ string: '{"tag_name":"more_testing"}'
143
+ headers:
144
+ Accept:
145
+ - application/vnd.github.v3+json
146
+ User-Agent:
147
+ - Octokit Ruby Gem 3.2.0
148
+ Accept-Encoding:
149
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
150
+ response:
151
+ status:
152
+ code: 201
153
+ message: Created
154
+ headers:
155
+ Server:
156
+ - GitHub.com
157
+ Date:
158
+ - Sat, 12 Jul 2014 22:37:07 GMT
159
+ Content-Type:
160
+ - application/json; charset=utf-8
161
+ Status:
162
+ - 201 Created
163
+ X-Ratelimit-Limit:
164
+ - '5000'
165
+ X-Ratelimit-Remaining:
166
+ - '4446'
167
+ X-Ratelimit-Reset:
168
+ - '1405206221'
169
+ Cache-Control:
170
+ - private, max-age=60, s-maxage=60
171
+ X-Oauth-Scopes:
172
+ - public_repo
173
+ X-Accepted-Oauth-Scopes:
174
+ - ''
175
+ Location:
176
+ - https://api.github.com/repos/akerl/targit/releases/426209
177
+ Vary:
178
+ - Accept, Authorization, Cookie, X-GitHub-OTP
179
+ X-Github-Media-Type:
180
+ - github.v3; format=json
181
+ X-Xss-Protection:
182
+ - 1; mode=block
183
+ X-Frame-Options:
184
+ - deny
185
+ Content-Security-Policy:
186
+ - default-src 'none'
187
+ Content-Length:
188
+ - '1549'
189
+ Access-Control-Allow-Credentials:
190
+ - 'true'
191
+ Access-Control-Expose-Headers:
192
+ - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
193
+ X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
194
+ Access-Control-Allow-Origin:
195
+ - "*"
196
+ Strict-Transport-Security:
197
+ - max-age=31536000; includeSubdomains
198
+ X-Content-Type-Options:
199
+ - nosniff
200
+ body:
201
+ encoding: UTF-8
202
+ string: '{"url":"https://api.github.com/repos/akerl/targit/releases/426209","assets_url":"https://api.github.com/repos/akerl/targit/releases/426209/assets","upload_url":"https://uploads.github.com/repos/akerl/targit/releases/426209/assets{?name}","html_url":"https://github.com/akerl/targit/releases/tag/more_testing","id":426209,"tag_name":"more_testing","target_commitish":"master","name":null,"draft":false,"author":{"login":"akerl","id":491209,"avatar_url":"https://avatars.githubusercontent.com/u/491209?","gravatar_id":"819691dc5c197c042ccd16b894545673","url":"https://api.github.com/users/akerl","html_url":"https://github.com/akerl","followers_url":"https://api.github.com/users/akerl/followers","following_url":"https://api.github.com/users/akerl/following{/other_user}","gists_url":"https://api.github.com/users/akerl/gists{/gist_id}","starred_url":"https://api.github.com/users/akerl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akerl/subscriptions","organizations_url":"https://api.github.com/users/akerl/orgs","repos_url":"https://api.github.com/users/akerl/repos","events_url":"https://api.github.com/users/akerl/events{/privacy}","received_events_url":"https://api.github.com/users/akerl/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2014-07-12T20:38:20Z","published_at":"2014-07-12T22:37:07Z","assets":[],"tarball_url":"https://api.github.com/repos/akerl/targit/tarball/more_testing","zipball_url":"https://api.github.com/repos/akerl/targit/zipball/more_testing","body":null}'
203
+ http_version:
204
+ recorded_at: Sat, 12 Jul 2014 22:37:06 GMT
205
+ - request:
206
+ method: get
207
+ uri: https://api.github.com/repos/akerl/targit/releases?per_page=100
208
+ body:
209
+ encoding: US-ASCII
210
+ string: ''
211
+ headers:
212
+ Accept:
213
+ - application/vnd.github.v3+json
214
+ User-Agent:
215
+ - Octokit Ruby Gem 3.2.0
216
+ Accept-Encoding:
217
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
218
+ response:
219
+ status:
220
+ code: 200
221
+ message: OK
222
+ headers:
223
+ Server:
224
+ - GitHub.com
225
+ Date:
226
+ - Sat, 12 Jul 2014 22:37:07 GMT
227
+ Content-Type:
228
+ - application/json; charset=utf-8
229
+ Transfer-Encoding:
230
+ - chunked
231
+ Status:
232
+ - 200 OK
233
+ X-Ratelimit-Limit:
234
+ - '5000'
235
+ X-Ratelimit-Remaining:
236
+ - '4445'
237
+ X-Ratelimit-Reset:
238
+ - '1405206221'
239
+ Cache-Control:
240
+ - private, max-age=60, s-maxage=60
241
+ X-Oauth-Scopes:
242
+ - public_repo
243
+ X-Accepted-Oauth-Scopes:
244
+ - ''
245
+ Vary:
246
+ - Accept, Authorization, Cookie, X-GitHub-OTP
247
+ - Accept-Encoding
248
+ X-Github-Media-Type:
249
+ - github.v3; format=json
250
+ X-Xss-Protection:
251
+ - 1; mode=block
252
+ X-Frame-Options:
253
+ - deny
254
+ Content-Security-Policy:
255
+ - default-src 'none'
256
+ Access-Control-Allow-Credentials:
257
+ - 'true'
258
+ Access-Control-Expose-Headers:
259
+ - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
260
+ X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
261
+ Access-Control-Allow-Origin:
262
+ - "*"
263
+ Strict-Transport-Security:
264
+ - max-age=31536000; includeSubdomains
265
+ X-Content-Type-Options:
266
+ - nosniff
267
+ body:
268
+ encoding: UTF-8
269
+ string: '[{"url":"https://api.github.com/repos/akerl/targit/releases/426209","assets_url":"https://api.github.com/repos/akerl/targit/releases/426209/assets","upload_url":"https://uploads.github.com/repos/akerl/targit/releases/426209/assets{?name}","html_url":"https://github.com/akerl/targit/releases/tag/more_testing","id":426209,"tag_name":"more_testing","target_commitish":"master","name":null,"draft":false,"author":{"login":"akerl","id":491209,"avatar_url":"https://avatars.githubusercontent.com/u/491209?","gravatar_id":"819691dc5c197c042ccd16b894545673","url":"https://api.github.com/users/akerl","html_url":"https://github.com/akerl","followers_url":"https://api.github.com/users/akerl/followers","following_url":"https://api.github.com/users/akerl/following{/other_user}","gists_url":"https://api.github.com/users/akerl/gists{/gist_id}","starred_url":"https://api.github.com/users/akerl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akerl/subscriptions","organizations_url":"https://api.github.com/users/akerl/orgs","repos_url":"https://api.github.com/users/akerl/repos","events_url":"https://api.github.com/users/akerl/events{/privacy}","received_events_url":"https://api.github.com/users/akerl/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2014-07-12T20:38:20Z","published_at":"2014-07-12T22:37:07Z","assets":[],"tarball_url":"https://api.github.com/repos/akerl/targit/tarball/more_testing","zipball_url":"https://api.github.com/repos/akerl/targit/zipball/more_testing","body":null},{"url":"https://api.github.com/repos/akerl/targit/releases/426208","assets_url":"https://api.github.com/repos/akerl/targit/releases/426208/assets","upload_url":"https://uploads.github.com/repos/akerl/targit/releases/426208/assets{?name}","html_url":"https://github.com/akerl/targit/releases/tag/testing","id":426208,"tag_name":"testing","target_commitish":"master","name":null,"draft":false,"author":{"login":"akerl","id":491209,"avatar_url":"https://avatars.githubusercontent.com/u/491209?","gravatar_id":"819691dc5c197c042ccd16b894545673","url":"https://api.github.com/users/akerl","html_url":"https://github.com/akerl","followers_url":"https://api.github.com/users/akerl/followers","following_url":"https://api.github.com/users/akerl/following{/other_user}","gists_url":"https://api.github.com/users/akerl/gists{/gist_id}","starred_url":"https://api.github.com/users/akerl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akerl/subscriptions","organizations_url":"https://api.github.com/users/akerl/orgs","repos_url":"https://api.github.com/users/akerl/repos","events_url":"https://api.github.com/users/akerl/events{/privacy}","received_events_url":"https://api.github.com/users/akerl/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2014-07-12T20:38:20Z","published_at":"2014-07-12T22:37:06Z","assets":[],"tarball_url":"https://api.github.com/repos/akerl/targit/tarball/testing","zipball_url":"https://api.github.com/repos/akerl/targit/zipball/testing","body":null}]'
270
+ http_version:
271
+ recorded_at: Sat, 12 Jul 2014 22:37:06 GMT
272
+ recorded_with: VCR 2.9.2