blob: 87518a7b39cf6f392f7a10e527b611011695b336 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
require 'HTTParty'
class RegistryClient
attr_accessor :uri
def initialize(uri)
@uri = uri
end
def tags(name)
response = HTTParty.get("#{uri}/v2/#{name}/tags/list")
response.parsed_response['tags']
end
def tag(name, reference)
response = HTTParty.get("#{uri}/v2/#{name}/manifests/#{reference}")
JSON.parse(response)
end
def tag_digest(name, reference)
response = HTTParty.head("#{uri}/v2/#{name}/manifests/#{reference}")
response.headers['docker-content-digest'].split(':')
end
def delete_tag(name, reference)
response = HTTParty.delete("#{uri}/v2/#{name}/manifests/#{reference}")
response.parsed_response
end
def blob_size(name, digest)
response = HTTParty.head("#{uri}/v2/#{name}/blobs/#{digest}")
response.headers.content_length
end
def delete_blob(name, digest)
HTTParty.delete("#{uri}/v2/#{name}/blobs/#{digest}")
end
end
|