targit 0.0.6 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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