Commit a82109ee authored by Kamil Trzcinski's avatar Kamil Trzcinski

Add .gitkeep

parent ac6992ba
......@@ -9,6 +9,7 @@ module ContainerRegistry
def [](key)
return unless data
data[key]
end
end
......
......@@ -3,13 +3,19 @@ module ContainerRegistry
attr_reader :uri, :client, :path
def initialize(uri, options = {})
@path = options[:path] || uri
@uri = URI.parse(uri)
@uri = uri
@path = options[:path] || default_path
@client = ContainerRegistry::Client.new(uri, options)
end
def [](name)
ContainerRegistry::Repository.new(self, name)
end
private
def default_path
@uri.sub(/^https?:\/\//, '')
end
end
end
......@@ -20,6 +20,7 @@ module ContainerRegistry
def manifest
return @manifest if defined?(@manifest)
@manifest = client.repository_tags(name)
end
......
......@@ -12,6 +12,7 @@ module ContainerRegistry
def manifest
return @manifest if defined?(@manifest)
@manifest = client.repository_manifest(repository.name, name)
end
......@@ -21,33 +22,39 @@ module ContainerRegistry
def [](key)
return unless manifest
manifest[key]
end
def digest
return @digest if defined?(@digest)
@digest = client.repository_tag_digest(repository.name, name)
end
def config_blob
return @config_blob if defined?(@config_blob)
return unless manifest && manifest['config']
@config_blob = ContainerRegistry::Blob.new(repository, manifest['config'])
end
def config
return unless config_blob
@config ||= ContainerRegistry::Config.new(self, config_blob)
end
def created_at
return unless config
@created_at ||= DateTime.rfc3339(config['created'])
end
def layers
return @layers if defined?(@layers)
return unless manifest
@layers = manifest['layers'].map do |layer|
ContainerRegistry::Blob.new(repository, layer)
end
......@@ -55,16 +62,19 @@ module ContainerRegistry
def total_size
return unless layers
layers.map(&:size).sum
end
def delete
return unless digest
client.delete_repository_tag(repository.name, digest)
end
def copy_to(repository)
return unless manifest
layers.each do |blob|
repository.mount_blob(blob)
end
......
require 'spec_helper'
describe ContainerRegistry::Registry do
let(:path) { nil }
let(:registry) { described_class.new('http://example.com', path: path) }
subject { registry }
it { is_expected.to respond_to(:client) }
it { is_expected.to respond_to(:uri) }
it { is_expected.to respond_to(:path) }
it { expect(subject['test']).to_not be_nil }
context '#path' do
subject { registry.path }
context 'path from URL' do
it { is_expected.to eq('example.com') }
end
context 'custom path' do
let(:path) { 'registry.example.com' }
it { is_expected.to eq(path) }
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment