tagfish 1.1.6 → 1.1.7
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/Dockerfile +6 -8
- data/Dockerfile.dev +6 -11
- data/auto/dev-environment +2 -0
- data/auto/release +0 -3
- data/docker-compose.yml +0 -3
- data/lib/tagfish/api_call.rb +10 -2
- data/lib/tagfish/credential_store.rb +9 -0
- data/lib/tagfish/version.rb +1 -1
- data/tagfish.gemspec +4 -2
- metadata +12 -7
- data/lib/tagfish/docker_http_auth.rb +0 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 61b692edc09da0bfb2658d80692db107056407de
|
4
|
+
data.tar.gz: 0fe206495bfdaa17ed1ed6b47eee7c639c69ba85
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 663cb0bc92d55edc245f06e681648231efa7f121e3380ab23df510dcf113459352cdc77a58e9afadf96d33fb818bd5b6185329f4c926b7aa54d79e9c871f1dd3
|
7
|
+
data.tar.gz: 48fc22142825f47500326fb74182455dfe23b95a9e61fb7ce43f36ed8ff5c90c8b23ace40705010d2ea444b264e58907401bb0189ce26f6e0c2fea4a8f6124f2
|
data/Dockerfile
CHANGED
@@ -1,21 +1,19 @@
|
|
1
|
-
FROM
|
1
|
+
FROM ruby:2.3.1-alpine@sha256:8d5ca285f1a24ed333aad70cfa54157f77ff130f810c91d5664e98a093d751bc
|
2
|
+
|
2
3
|
MAINTAINER Clement Labbe <clement.labbe@rea-group.com>
|
3
4
|
|
4
5
|
RUN apk add --update \
|
5
|
-
|
6
|
-
|
7
|
-
ruby-io-console=2.3.1-r0 \
|
6
|
+
make \
|
7
|
+
g++ \
|
8
8
|
diffutils \
|
9
|
-
linux-headers \
|
10
|
-
build-base \
|
11
9
|
ca-certificates && \
|
12
10
|
rm /var/cache/apk/* && \
|
13
11
|
rm -rf /usr/share/ri
|
14
12
|
|
15
|
-
RUN echo -e 'gem: --no-rdoc --no-ri' > /etc/gemrc
|
16
|
-
|
17
13
|
COPY pkg/tagfish-latest.gem /cwd/
|
18
14
|
WORKDIR /cwd
|
15
|
+
|
16
|
+
RUN echo -e 'gem: --no-rdoc --no-ri' > /etc/gemrc
|
19
17
|
RUN gem install tagfish-latest.gem
|
20
18
|
RUN mkdir -p /root/.docker
|
21
19
|
|
data/Dockerfile.dev
CHANGED
@@ -1,20 +1,15 @@
|
|
1
|
-
FROM
|
1
|
+
FROM ruby:2.3.1-alpine@sha256:8d5ca285f1a24ed333aad70cfa54157f77ff130f810c91d5664e98a093d751bc
|
2
|
+
|
2
3
|
MAINTAINER Clement Labbe <clement.labbe@rea-group.com>
|
3
4
|
|
4
5
|
RUN apk add --update \
|
5
|
-
|
6
|
-
|
7
|
-
ruby-io-console=2.3.1-r0 \
|
8
|
-
git \
|
6
|
+
make \
|
7
|
+
g++ \
|
9
8
|
diffutils \
|
10
|
-
|
11
|
-
build-base \
|
9
|
+
git \
|
12
10
|
ca-certificates && \
|
13
11
|
rm /var/cache/apk/* && \
|
14
12
|
rm -rf /usr/share/ri
|
15
13
|
|
16
|
-
RUN echo -e 'gem: --no-rdoc --no-ri' > /etc/gemrc
|
17
|
-
gem update --system && \
|
18
|
-
gem install bundler && \
|
19
|
-
rm -rf /usr/share/ri
|
14
|
+
RUN echo -e 'gem: --no-rdoc --no-ri' > /etc/gemrc
|
20
15
|
|
data/auto/dev-environment
CHANGED
@@ -7,5 +7,7 @@ cd $(dirname $0)/..
|
|
7
7
|
trap "docker-compose down --volumes" 0
|
8
8
|
|
9
9
|
docker volume create --name ruby2.3-bundle-cache > /dev/null
|
10
|
+
|
11
|
+
docker-compose build dev
|
10
12
|
docker-compose run --rm dev sh -c 'bundle check > /dev/null || bundle install'
|
11
13
|
docker-compose run --rm dev bundle exec "${@-sh}"
|
data/auto/release
CHANGED
data/docker-compose.yml
CHANGED
data/lib/tagfish/api_call.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'tagfish/
|
1
|
+
require 'tagfish/credential_store'
|
2
2
|
require 'tagfish/api_error'
|
3
3
|
require 'tagfish/api_response'
|
4
4
|
|
@@ -38,7 +38,15 @@ module Tagfish
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def auth(registry)
|
41
|
-
|
41
|
+
begin
|
42
|
+
file_path = ENV.fetch('DOCKER_CONFIG', '~/.docker/config.json')
|
43
|
+
docker_config_data = JSON.parse(File.read(File.expand_path(file_path)))
|
44
|
+
rescue Exception => e
|
45
|
+
abort("Tried to get username/password but the file #{file_path} does not exist")
|
46
|
+
end
|
47
|
+
|
48
|
+
cs = CredentialStore.new(docker_config_data)
|
49
|
+
@http_auth = cs.credentials_for(registry)
|
42
50
|
end
|
43
51
|
|
44
52
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'tagfish/registry_credentials'
|
2
|
+
require 'base64'
|
2
3
|
|
3
4
|
module Tagfish
|
4
5
|
|
@@ -8,6 +9,7 @@ module Tagfish
|
|
8
9
|
@credentials_by_registry = {}
|
9
10
|
auths = docker_config_data.fetch("auths", {})
|
10
11
|
auths.each do |registry, data|
|
12
|
+
registry = registry_address(registry)
|
11
13
|
encoded_credentials = data.fetch("auth")
|
12
14
|
username, password = Base64.decode64(encoded_credentials).split(":")
|
13
15
|
creds = RegistryCredentials.new(username, password)
|
@@ -16,9 +18,16 @@ module Tagfish
|
|
16
18
|
end
|
17
19
|
|
18
20
|
def credentials_for(registry)
|
21
|
+
registry = registry_address(registry)
|
19
22
|
@credentials_by_registry[registry]
|
20
23
|
end
|
21
24
|
|
25
|
+
private
|
26
|
+
|
27
|
+
def registry_address(registry)
|
28
|
+
registry.sub(%r{^\w+://}, '').sub(%r{/.*}, '')
|
29
|
+
end
|
30
|
+
|
22
31
|
end
|
23
32
|
|
24
33
|
end
|
data/lib/tagfish/version.rb
CHANGED
data/tagfish.gemspec
CHANGED
@@ -21,7 +21,9 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.10"
|
22
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
23
23
|
spec.add_development_dependency "rspec", "~> 3.3.0"
|
24
|
-
spec.add_dependency "clamp", "~> 1.
|
24
|
+
spec.add_dependency "clamp", "~> 1.1.0"
|
25
25
|
spec.add_dependency "diffy", "~> 3.0.0"
|
26
|
-
|
26
|
+
|
27
|
+
# For lack of a better way to say 1.8.*, 1.9.*, 2.0.*
|
28
|
+
spec.add_dependency "json", [ "> 1.8.0", "< 2.1.0" ]
|
27
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tagfish
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Clement Labbe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.
|
61
|
+
version: 1.1.0
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 1.
|
68
|
+
version: 1.1.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: diffy
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,16 +84,22 @@ dependencies:
|
|
84
84
|
name: json
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - ">"
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: 1.8.0
|
90
|
+
- - "<"
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: 2.1.0
|
90
93
|
type: :runtime
|
91
94
|
prerelease: false
|
92
95
|
version_requirements: !ruby/object:Gem::Requirement
|
93
96
|
requirements:
|
94
|
-
- - "
|
97
|
+
- - ">"
|
95
98
|
- !ruby/object:Gem::Version
|
96
99
|
version: 1.8.0
|
100
|
+
- - "<"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: 2.1.0
|
97
103
|
description: Retrieve repository tags, update dockerfiles, and more!
|
98
104
|
email:
|
99
105
|
- clement.labbe@rea-group.com
|
@@ -129,7 +135,6 @@ files:
|
|
129
135
|
- lib/tagfish/cli/tags_command.rb
|
130
136
|
- lib/tagfish/cli/update_command.rb
|
131
137
|
- lib/tagfish/credential_store.rb
|
132
|
-
- lib/tagfish/docker_http_auth.rb
|
133
138
|
- lib/tagfish/docker_registry_client.rb
|
134
139
|
- lib/tagfish/docker_registry_v1_client.rb
|
135
140
|
- lib/tagfish/docker_registry_v2_client.rb
|
@@ -1,31 +0,0 @@
|
|
1
|
-
require 'json'
|
2
|
-
require 'base64'
|
3
|
-
|
4
|
-
module Tagfish
|
5
|
-
|
6
|
-
module DockerHttpAuth
|
7
|
-
|
8
|
-
Credentials = Struct.new(:username, :password)
|
9
|
-
|
10
|
-
def self.for_registry(registry)
|
11
|
-
file_path = '~/.docker/config.json'
|
12
|
-
|
13
|
-
begin
|
14
|
-
config = File.open(File.expand_path(file_path), 'r')
|
15
|
-
rescue Exception => e
|
16
|
-
abort("Tried to get username/password but the file #{file_path} does not exist")
|
17
|
-
end
|
18
|
-
|
19
|
-
json_config = JSON.parse(config.read())
|
20
|
-
config.close()
|
21
|
-
if json_config['auths'].length == 0
|
22
|
-
Credentials.new(nil, nil)
|
23
|
-
else
|
24
|
-
b64_auth = json_config['auths'][registry]['auth']
|
25
|
-
auth = Base64.decode64(b64_auth)
|
26
|
-
Credentials.new(*auth.split(':'))
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
31
|
-
end
|