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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 05b88f51ae087cebd100f07fb24e5b2a6a11556f
4
- data.tar.gz: e224ae8aab3b783527d409351f6d20d41b62c9f2
3
+ metadata.gz: 61b692edc09da0bfb2658d80692db107056407de
4
+ data.tar.gz: 0fe206495bfdaa17ed1ed6b47eee7c639c69ba85
5
5
  SHA512:
6
- metadata.gz: 2ec7003db64bba1a474aa200c7b1a40f888e134eaf14c7fd10e8dbb25ee30d786f7793ffb11616faf0c58dd44f43901ed23a8d9a2c372a0ce58b9bf4d1acb9dc
7
- data.tar.gz: fd83a60351e1f12224990304dbe8995d538a4018dfc51d231be449fad58b8e19efe7c8963c37c108aca3d79dff9d7944aa6169d2767189fb6eb954647549bfe0
6
+ metadata.gz: 663cb0bc92d55edc245f06e681648231efa7f121e3380ab23df510dcf113459352cdc77a58e9afadf96d33fb818bd5b6185329f4c926b7aa54d79e9c871f1dd3
7
+ data.tar.gz: 48fc22142825f47500326fb74182455dfe23b95a9e61fb7ce43f36ed8ff5c90c8b23ace40705010d2ea444b264e58907401bb0189ce26f6e0c2fea4a8f6124f2
data/Dockerfile CHANGED
@@ -1,21 +1,19 @@
1
- FROM alpine:3.4
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
- ruby=2.3.1-r0 \
6
- ruby-dev=2.3.1-r0 \
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 alpine:3.4
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
- ruby=2.3.1-r0 \
6
- ruby-dev=2.3.1-r0 \
7
- ruby-io-console=2.3.1-r0 \
8
- git \
6
+ make \
7
+ g++ \
9
8
  diffutils \
10
- linux-headers \
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
@@ -2,9 +2,6 @@
2
2
 
3
3
  cd $(dirname $0)/..
4
4
 
5
- REPOSITORY=cowbell/tagfish
6
- VERSION=$(cat lib/tagfish/version.rb | grep VERSION | cut -d'"' -f2)
7
-
8
5
  # Ensure we have no local changes
9
6
  git diff HEAD --exit-code
10
7
 
data/docker-compose.yml CHANGED
@@ -5,9 +5,6 @@ services:
5
5
  build:
6
6
  context: .
7
7
  dockerfile: Dockerfile.dev
8
- environment:
9
- - GEM_HOME=/usr/local/bundle
10
- - GEM_PATH=/usr/lib/ruby/gems/2.3.0:/usr/local/bundle/gems
11
8
  volumes:
12
9
  - .:/work
13
10
  - ruby2.3-bundle-cache:/usr/local/bundle
@@ -1,4 +1,4 @@
1
- require 'tagfish/docker_http_auth'
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
- @http_auth = DockerHttpAuth.for_registry(registry)
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
@@ -1,3 +1,3 @@
1
1
  module Tagfish
2
- VERSION = "1.1.6"
2
+ VERSION = "1.1.7"
3
3
  end
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.0.0"
24
+ spec.add_dependency "clamp", "~> 1.1.0"
25
25
  spec.add_dependency "diffy", "~> 3.0.0"
26
- spec.add_dependency "json", "~> 1.8.0"
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.6
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-09-20 00:00:00.000000000 Z
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.0.0
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.0.0
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