summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2016-04-18 08:14:40 -0400
committerKamil Trzcinski <ayufan@ayufan.eu>2016-05-04 11:31:35 +0200
commitb0ddbaa07cd780b0ed86aa4e3c24744c6426b1e1 (patch)
treed091bf98b27dd68e9994e3004a4cdec9d39e71ef /lib
parent011a905a821e2ff0cd2d9885ef93764018eb8346 (diff)
downloadgitlab-ce-b0ddbaa07cd780b0ed86aa4e3c24744c6426b1e1.tar.gz
Added docker registry view
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/regex.rb4
-rw-r--r--lib/registry_client.rb38
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