packagecloud-ruby 1.0.5 → 1.0.6
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.
- 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
|