diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-04-18 08:14:40 -0400 |
---|---|---|
committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-05-04 11:31:35 +0200 |
commit | b0ddbaa07cd780b0ed86aa4e3c24744c6426b1e1 (patch) | |
tree | d091bf98b27dd68e9994e3004a4cdec9d39e71ef /lib | |
parent | 011a905a821e2ff0cd2d9885ef93764018eb8346 (diff) | |
download | gitlab-ce-b0ddbaa07cd780b0ed86aa4e3c24744c6426b1e1.tar.gz |
Added docker registry view
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/regex.rb | 4 | ||||
-rw-r--r-- | lib/registry_client.rb | 38 |
2 files changed, 42 insertions, 0 deletions
diff --git a/lib/gitlab/regex.rb b/lib/gitlab/regex.rb index ace906a6f59..9b8f416ddfa 100644 --- a/lib/gitlab/regex.rb +++ b/lib/gitlab/regex.rb @@ -96,5 +96,9 @@ module Gitlab (?<![\/.]) (?# rule #6-7) }x.freeze end + + def image_reference_regex + git_reference_regex + end end end diff --git a/lib/registry_client.rb b/lib/registry_client.rb new file mode 100644 index 00000000000..87518a7b39c --- /dev/null +++ b/lib/registry_client.rb @@ -0,0 +1,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 |