packagecloud-ruby 1.0.5 → 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/packagecloud/client.rb +15 -0
- data/lib/packagecloud/version.rb +1 -1
- data/spec/packagecloud_server.rb +28 -3
- data/spec/packagecloud_spec.rb +16 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2148e57f1cc8a933e11fd6a165ec358e7b636e1d
|
4
|
+
data.tar.gz: 9eb9d537f060a8e1dddc4121888f483717c71ec4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5225b9c40fd64b83f60197f5236fe800858822654a3aff444de315bca238a98b8de2d55d17951b9f4bc195c731fe5b0ebd6e82514c22d33d8ca1537fcbf24493
|
7
|
+
data.tar.gz: a1f407ebe174facf91bd96b7cc76f634f4e66d461f7abcda2395105f0e50b4a86351439cd8aa94a5444aa460a7569f22140f322b612d6452c1858410298cca4c
|
data/lib/packagecloud/client.rb
CHANGED
@@ -188,6 +188,21 @@ module Packagecloud
|
|
188
188
|
parsed_json_result(response)
|
189
189
|
end
|
190
190
|
|
191
|
+
def delete_read_token(repo, master_token_id, read_token_id)
|
192
|
+
assert_valid_repo_name(repo)
|
193
|
+
url = "/api/v1/repos/#{username}/#{repo}/master_tokens/#{master_token_id}/read_tokens/#{read_token_id}"
|
194
|
+
response = delete(url)
|
195
|
+
Result.new.tap do |result|
|
196
|
+
result.succeeded = (response.status == 204)
|
197
|
+
end
|
198
|
+
end
|
199
|
+
|
200
|
+
def list_read_tokens(repo, master_token_id)
|
201
|
+
assert_valid_repo_name(repo)
|
202
|
+
response = get("/api/v1/repos/#{username}/#{repo}/master_tokens/#{master_token_id}/read_tokens.json")
|
203
|
+
parsed_json_result(response)
|
204
|
+
end
|
205
|
+
|
191
206
|
private
|
192
207
|
def assert_valid_repo_name(repo)
|
193
208
|
if repo.include?("/")
|
data/lib/packagecloud/version.rb
CHANGED
data/spec/packagecloud_server.rb
CHANGED
@@ -7,6 +7,7 @@ class PackagecloudServer < WEBrick::HTTPServlet::AbstractServlet
|
|
7
7
|
GEM_VERSION = "{\"major\":\"0\",\"minor\":\"2\",\"patch\":\"1\"}"
|
8
8
|
REPO = '{"name": "test_repo","created_at": "2014-08-30T03:51:37.000Z","url": "https://packagecloud.io/joedamato/test_repo","last_push_human": "about 2 months ago","package_count_human": "4 packages","private": true,"fqname": "joedamato/test_repo"}'
|
9
9
|
REPOS = "[#{REPO}]"
|
10
|
+
READ_TOKENS = '{"read_tokens":[{"id":"1","name":"testread","value":"notreal"}]}'
|
10
11
|
|
11
12
|
def json_response(request, response, body)
|
12
13
|
response.status = 200
|
@@ -48,10 +49,21 @@ class PackagecloudServer < WEBrick::HTTPServlet::AbstractServlet
|
|
48
49
|
|
49
50
|
$request, $response = request, response
|
50
51
|
end
|
52
|
+
|
53
|
+
def nocontent_response(request, response)
|
54
|
+
response.status = 204
|
55
|
+
response['Content-Type'] = 'text/plain'
|
56
|
+
response.body = ''
|
57
|
+
$request, $response = request, response
|
58
|
+
end
|
59
|
+
|
60
|
+
def can_acess?(request)
|
61
|
+
request["Authorization"] == "Basic dGVzdF90b2tlbjo="
|
62
|
+
end
|
63
|
+
|
51
64
|
def route(request, response)
|
52
|
-
|
53
|
-
|
54
|
-
end
|
65
|
+
return forbidden_response(request, response) unless can_acess?(request)
|
66
|
+
|
55
67
|
path = request.path
|
56
68
|
case path
|
57
69
|
when "/api/v1/distributions.json"
|
@@ -70,6 +82,8 @@ class PackagecloudServer < WEBrick::HTTPServlet::AbstractServlet
|
|
70
82
|
plain_response(request, response, PACKAGE_CONTENTS)
|
71
83
|
when "/api/v1/gem_version.json"
|
72
84
|
json_response(request, response, GEM_VERSION)
|
85
|
+
when "/api/v1/repos/joedamato/test_repo/master_tokens/test_master_token/read_tokens.json"
|
86
|
+
json_response(request, response, READ_TOKENS)
|
73
87
|
else
|
74
88
|
default_response(request, response)
|
75
89
|
$request, $response = request, response
|
@@ -84,4 +98,15 @@ class PackagecloudServer < WEBrick::HTTPServlet::AbstractServlet
|
|
84
98
|
route(request, response)
|
85
99
|
end
|
86
100
|
|
101
|
+
def do_DELETE(request, response)
|
102
|
+
return forbidden_response(request, response) unless can_acess?(request)
|
103
|
+
|
104
|
+
path = request.path
|
105
|
+
case path
|
106
|
+
when "/api/v1/repos/joedamato/test_repo/master_tokens/test_master_token/read_tokens/1"
|
107
|
+
nocontent_response(request, response)
|
108
|
+
else
|
109
|
+
default_response(request, response)
|
110
|
+
end
|
111
|
+
end
|
87
112
|
end
|
data/spec/packagecloud_spec.rb
CHANGED
@@ -212,6 +212,22 @@ describe Packagecloud do
|
|
212
212
|
}.to raise_error(UnauthenticatedException)
|
213
213
|
end
|
214
214
|
|
215
|
+
it "deletes read token" do
|
216
|
+
result = @client.delete_read_token("test_repo", "test_master_token", 1)
|
217
|
+
expect(result.succeeded).to be_truthy
|
218
|
+
end
|
219
|
+
|
220
|
+
it "fails to delete invalid read token" do
|
221
|
+
result = @client.delete_read_token("test_repo", "test_master_token", 2323)
|
222
|
+
expect(result.succeeded).to be_falsey
|
223
|
+
end
|
224
|
+
|
225
|
+
it "lists read tokens" do
|
226
|
+
result = @client.list_read_tokens("test_repo", "test_master_token")
|
227
|
+
expect(result.succeeded).to be_truthy
|
228
|
+
expect(result.response["read_tokens"].first).to eq({"id" => "1", "name" => "testread", "value" => "notreal" })
|
229
|
+
end
|
230
|
+
|
215
231
|
context "timeouts" do
|
216
232
|
it "should have defaults" do
|
217
233
|
credentials = Credentials.new("joedamato", "test_token")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: packagecloud-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joe Damato
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: excon
|