uffizzi-cli 0.11.2 → 0.11.5
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/lib/uffizzi/cli/connect.rb +62 -35
- data/lib/uffizzi/clients/api/api_client.rb +8 -1
- data/lib/uffizzi/clients/api/api_routes.rb +1 -1
- data/lib/uffizzi/services/compose_file_service.rb +1 -1
- data/lib/uffizzi/version.rb +1 -1
- data/man/uffizzi-connect +8 -2
- data/man/uffizzi-connect-ghcr +15 -6
- data/man/uffizzi-connect-ghcr.ronn +19 -11
- data/man/uffizzi-connect.ronn +8 -2
- data/man/uffizzi-disconnect +2 -2
- data/man/uffizzi-disconnect.ronn +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a81fa2bb6f00491f6c59e4c10ea3ce067da1b75b26ff8543e1a08558893058c0
|
4
|
+
data.tar.gz: fec82e0d04c499515f0221740a1a40b51bd5593a35223c0a7723648f20b25a5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82610a6fe745521646e7d7e7c5e0f65a39263ea53987f1e431d0a0d0b69033d015a67bcd48b07e30c5d044f2167c752f307525438ca232044e90c5b60eb0f602
|
7
|
+
data.tar.gz: 67d5b6c3947e01e72c3ec678b6b14a1ccc6b78583d34f46274cdfa1f7692c9632b98728f43bf1ab5e0b3e984313db98e536c5231ddb9d2a07cc8156b8334ca2e
|
data/lib/uffizzi/cli/connect.rb
CHANGED
@@ -20,24 +20,26 @@ module Uffizzi
|
|
20
20
|
desc 'docker-hub', 'Connect to Docker Hub (hub.docker.com)'
|
21
21
|
method_option :skip_raise_existence_error, type: :boolean, default: false,
|
22
22
|
desc: 'Skip raising an error within check the credential'
|
23
|
+
method_option :update_credential_if_exists, type: :boolean, default: false
|
23
24
|
def docker_hub
|
24
25
|
type = Uffizzi.configuration.credential_types[:dockerhub]
|
25
|
-
|
26
|
+
credential_exists = credential_exists?(type)
|
27
|
+
handle_existing_credential_options('docker-hub') if credential_exists
|
26
28
|
|
27
|
-
username = ENV['DOCKERHUB_USERNAME'] || Uffizzi.ui.ask('Username:
|
28
|
-
password = ENV['DOCKERHUB_PASSWORD'] || Uffizzi.ui.ask('Password:
|
29
|
+
username = ENV['DOCKERHUB_USERNAME'] || Uffizzi.ui.ask('Username:')
|
30
|
+
password = ENV['DOCKERHUB_PASSWORD'] || Uffizzi.ui.ask('Password:', echo: false)
|
29
31
|
|
30
32
|
params = {
|
31
33
|
username: username,
|
32
34
|
password: password,
|
33
|
-
type:
|
35
|
+
type: type,
|
34
36
|
}
|
35
37
|
|
36
38
|
server = ConfigFile.read_option(:server)
|
37
|
-
response =
|
39
|
+
response = create_or_update_credential(server, params, create: !credential_exists)
|
38
40
|
|
39
|
-
if
|
40
|
-
print_success_message('
|
41
|
+
if successful?(response)
|
42
|
+
print_success_message('Docker Hub')
|
41
43
|
else
|
42
44
|
ResponseHelper.handle_failed_response(response)
|
43
45
|
end
|
@@ -46,13 +48,15 @@ module Uffizzi
|
|
46
48
|
desc 'acr', 'Connect to Azure Container Registry (azurecr.io)'
|
47
49
|
method_option :skip_raise_existence_error, type: :boolean, default: false,
|
48
50
|
desc: 'Skip raising an error within check the credential'
|
51
|
+
method_option :update_credential_if_exists, type: :boolean, default: false
|
49
52
|
def acr
|
50
53
|
type = Uffizzi.configuration.credential_types[:azure]
|
51
|
-
|
54
|
+
credential_exists = credential_exists?(type)
|
55
|
+
handle_existing_credential_options('acr') if credential_exists
|
52
56
|
|
53
|
-
registry_url = ENV['ACR_REGISTRY_URL'] || Uffizzi.ui.ask('Registry Domain:
|
54
|
-
username = ENV['ACR_USERNAME'] || Uffizzi.ui.ask('Docker ID:
|
55
|
-
password = ENV['ACR_PASSWORD'] || Uffizzi.ui.ask('Password/Access Token:
|
57
|
+
registry_url = ENV['ACR_REGISTRY_URL'] || Uffizzi.ui.ask('Registry Domain:')
|
58
|
+
username = ENV['ACR_USERNAME'] || Uffizzi.ui.ask('Docker ID:')
|
59
|
+
password = ENV['ACR_PASSWORD'] || Uffizzi.ui.ask('Password/Access Token:', echo: false)
|
56
60
|
|
57
61
|
params = {
|
58
62
|
username: username,
|
@@ -62,9 +66,9 @@ module Uffizzi
|
|
62
66
|
}
|
63
67
|
|
64
68
|
server = ConfigFile.read_option(:server)
|
65
|
-
response =
|
69
|
+
response = create_or_update_credential(server, params, create: !credential_exists)
|
66
70
|
|
67
|
-
if
|
71
|
+
if successful?(response)
|
68
72
|
print_success_message('ACR')
|
69
73
|
else
|
70
74
|
ResponseHelper.handle_failed_response(response)
|
@@ -74,13 +78,15 @@ module Uffizzi
|
|
74
78
|
desc 'ecr', 'Connect to Amazon Elastic Container Registry'
|
75
79
|
method_option :skip_raise_existence_error, type: :boolean, default: false,
|
76
80
|
desc: 'Skip raising an error within check the credential'
|
81
|
+
method_option :update_credential_if_exists, type: :boolean, default: false
|
77
82
|
def ecr
|
78
83
|
type = Uffizzi.configuration.credential_types[:amazon]
|
79
|
-
|
84
|
+
credential_exists = credential_exists?(type)
|
85
|
+
handle_existing_credential_options('ecr') if credential_exists
|
80
86
|
|
81
|
-
registry_url = ENV['AWS_REGISTRY_URL'] || Uffizzi.ui.ask('Registry Domain:
|
82
|
-
access_key = ENV['AWS_ACCESS_KEY_ID'] || Uffizzi.ui.ask('Access key ID:
|
83
|
-
secret_access_key = ENV['AWS_SECRET_ACCESS_KEY'] || Uffizzi.ui.ask('Secret access key:
|
87
|
+
registry_url = ENV['AWS_REGISTRY_URL'] || Uffizzi.ui.ask('Registry Domain:')
|
88
|
+
access_key = ENV['AWS_ACCESS_KEY_ID'] || Uffizzi.ui.ask('Access key ID:')
|
89
|
+
secret_access_key = ENV['AWS_SECRET_ACCESS_KEY'] || Uffizzi.ui.ask('Secret access key:', echo: false)
|
84
90
|
|
85
91
|
params = {
|
86
92
|
username: access_key,
|
@@ -90,9 +96,9 @@ module Uffizzi
|
|
90
96
|
}
|
91
97
|
|
92
98
|
server = ConfigFile.read_option(:server)
|
93
|
-
response =
|
99
|
+
response = create_or_update_credential(server, params, create: !credential_exists)
|
94
100
|
|
95
|
-
if
|
101
|
+
if successful?(response)
|
96
102
|
print_success_message('ECR')
|
97
103
|
else
|
98
104
|
ResponseHelper.handle_failed_response(response)
|
@@ -102,9 +108,11 @@ module Uffizzi
|
|
102
108
|
desc 'gcr', 'Connect to Google Container Registry (gcr.io)'
|
103
109
|
method_option :skip_raise_existence_error, type: :boolean, default: false,
|
104
110
|
desc: 'Skip raising an error within check the credential'
|
111
|
+
method_option :update_credential_if_exists, type: :boolean, default: false
|
105
112
|
def gcr(credential_file_path = nil)
|
106
113
|
type = Uffizzi.configuration.credential_types[:google]
|
107
|
-
|
114
|
+
credential_exists = credential_exists?(type)
|
115
|
+
handle_existing_credential_options('gcr') if credential_exists
|
108
116
|
|
109
117
|
credential_content = google_service_account_content(credential_file_path)
|
110
118
|
|
@@ -114,9 +122,9 @@ module Uffizzi
|
|
114
122
|
}
|
115
123
|
|
116
124
|
server = ConfigFile.read_option(:server)
|
117
|
-
response =
|
125
|
+
response = create_or_update_credential(server, params, create: !credential_exists)
|
118
126
|
|
119
|
-
if
|
127
|
+
if successful?(response)
|
120
128
|
print_success_message('GCR')
|
121
129
|
else
|
122
130
|
ResponseHelper.handle_failed_response(response)
|
@@ -126,12 +134,16 @@ module Uffizzi
|
|
126
134
|
desc 'ghcr', 'Connect to GitHub Container Registry (ghcr.io)'
|
127
135
|
method_option :skip_raise_existence_error, type: :boolean, default: false,
|
128
136
|
desc: 'Skip raising an error within check the credential'
|
137
|
+
method_option :update_credential_if_exists, type: :boolean, default: false
|
138
|
+
method_option :username, type: :string, aliases: :u
|
139
|
+
method_option :token, type: :string, aliases: :t
|
129
140
|
def ghcr
|
130
141
|
type = Uffizzi.configuration.credential_types[:github_registry]
|
131
|
-
|
142
|
+
credential_exists = credential_exists?(type)
|
143
|
+
handle_existing_credential_options('ghcr') if credential_exists
|
132
144
|
|
133
|
-
username = ENV['GITHUB_USERNAME'] || Uffizzi.ui.ask('Github Username:
|
134
|
-
password = ENV['GITHUB_ACCESS_TOKEN'] || Uffizzi.ui.ask('Access Token:
|
145
|
+
username = options[:username] || ENV['GITHUB_USERNAME'] || Uffizzi.ui.ask('Github Username:')
|
146
|
+
password = options[:token] || ENV['GITHUB_ACCESS_TOKEN'] || Uffizzi.ui.ask('Access Token:', echo: false)
|
135
147
|
|
136
148
|
params = {
|
137
149
|
username: username,
|
@@ -140,9 +152,9 @@ module Uffizzi
|
|
140
152
|
}
|
141
153
|
|
142
154
|
server = ConfigFile.read_option(:server)
|
143
|
-
response =
|
155
|
+
response = create_or_update_credential(server, params, create: !credential_exists)
|
144
156
|
|
145
|
-
if
|
157
|
+
if successful?(response)
|
146
158
|
print_success_message('GHCR')
|
147
159
|
else
|
148
160
|
ResponseHelper.handle_failed_response(response)
|
@@ -154,31 +166,46 @@ module Uffizzi
|
|
154
166
|
|
155
167
|
private
|
156
168
|
|
169
|
+
def successful?(response)
|
170
|
+
ResponseHelper.created?(response) || ResponseHelper.ok?(response)
|
171
|
+
end
|
172
|
+
|
157
173
|
def prepare_registry_url(registry_url)
|
158
174
|
return registry_url if registry_url.match?(/^(?:http(s)?:\/\/)/)
|
159
175
|
|
160
176
|
"https://#{registry_url}"
|
161
177
|
end
|
162
178
|
|
163
|
-
def print_success_message(
|
164
|
-
Uffizzi.ui.say("Successfully connected to #{
|
179
|
+
def print_success_message(credential_type_slug)
|
180
|
+
Uffizzi.ui.say("Successfully connected to #{credential_type_slug}.")
|
165
181
|
end
|
166
182
|
|
167
|
-
def
|
183
|
+
def credential_exists?(type)
|
168
184
|
server = ConfigFile.read_option(:server)
|
169
185
|
response = check_credential(server, type)
|
170
|
-
|
186
|
+
!ResponseHelper.ok?(response)
|
187
|
+
end
|
188
|
+
|
189
|
+
def handle_existing_credential_options(credential_type_slug)
|
190
|
+
if options.update_credential_if_exists?
|
191
|
+
Uffizzi.ui.say('Updating existing credential.')
|
192
|
+
return
|
193
|
+
end
|
171
194
|
|
172
195
|
if options.skip_raise_existence_error?
|
173
|
-
Uffizzi.ui.say("
|
196
|
+
Uffizzi.ui.say("Credential of type #{credential_type_slug} already exists for this account.")
|
174
197
|
exit(true)
|
175
198
|
else
|
176
|
-
message = "
|
177
|
-
"To remove them, run
|
199
|
+
message = "Credential of type #{credential_type_slug} already exists for this account.\n" \
|
200
|
+
"To remove them, run uffizzi disconnect #{credential_type_slug}."
|
178
201
|
raise Uffizzi::Error.new(message)
|
179
202
|
end
|
180
203
|
end
|
181
204
|
|
205
|
+
def create_or_update_credential(server, params, create: true)
|
206
|
+
create ? create_credential(server, params) : update_credential(server, params, params[:type])
|
207
|
+
end
|
208
|
+
|
182
209
|
def handle_list_credentials_success(response)
|
183
210
|
credentials = response[:body][:credentials]
|
184
211
|
credentials.each do |credential|
|
@@ -202,7 +229,7 @@ module Uffizzi
|
|
202
229
|
def google_service_account_content(credential_file_path = nil)
|
203
230
|
return ENV['GCLOUD_SERVICE_KEY'] if ENV['GCLOUD_SERVICE_KEY']
|
204
231
|
|
205
|
-
|
232
|
+
raise Uffizzi::Error.new("Path to a google service account key file wasn't specified.") if credential_file_path.nil?
|
206
233
|
|
207
234
|
begin
|
208
235
|
credential_content = File.read(credential_file_path)
|
@@ -70,6 +70,13 @@ module ApiClient
|
|
70
70
|
build_response(response)
|
71
71
|
end
|
72
72
|
|
73
|
+
def update_credential(server, params, type)
|
74
|
+
uri = credential_uri(server, type)
|
75
|
+
response = http_client.make_put_request(uri, params)
|
76
|
+
|
77
|
+
build_response(response)
|
78
|
+
end
|
79
|
+
|
73
80
|
def fetch_deployment_services(server, project_slug, deployment_id)
|
74
81
|
uri = preview_services_uri(server, project_slug, deployment_id)
|
75
82
|
response = http_client.make_get_request(uri)
|
@@ -78,7 +85,7 @@ module ApiClient
|
|
78
85
|
end
|
79
86
|
|
80
87
|
def delete_credential(server, credential_type)
|
81
|
-
uri =
|
88
|
+
uri = credential_uri(server, credential_type)
|
82
89
|
response = http_client.make_delete_request(uri)
|
83
90
|
|
84
91
|
build_response(response)
|
@@ -64,7 +64,7 @@ module ApiRoutes
|
|
64
64
|
"#{server}/api/cli/v1/projects/#{project_slug}/deployments/#{deployment_id}/containers"
|
65
65
|
end
|
66
66
|
|
67
|
-
def
|
67
|
+
def credential_uri(server, credential_type)
|
68
68
|
"#{server}/api/cli/v1/account/credentials/#{credential_type}"
|
69
69
|
end
|
70
70
|
|
@@ -92,7 +92,7 @@ class ComposeFileService
|
|
92
92
|
|
93
93
|
def parse_compose_content_to_object(compose_content)
|
94
94
|
begin
|
95
|
-
compose_data = Psych.safe_load(compose_content)
|
95
|
+
compose_data = Psych.safe_load(compose_content, aliases: true)
|
96
96
|
rescue Psych::SyntaxError
|
97
97
|
Uffizzi.ui.say('Invalid compose file')
|
98
98
|
end
|
data/lib/uffizzi/version.rb
CHANGED
data/man/uffizzi-connect
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
.\" generated with Ronn-NG/v0.9.1
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
|
3
|
-
.TH "UFFIZZI\-CONNECT" "" "
|
3
|
+
.TH "UFFIZZI\-CONNECT" "" "July 2022" ""
|
4
4
|
.SH "NAME"
|
5
5
|
\fBuffizzi\-connect\fR \- grant a Uffizzi user account access to external services
|
6
6
|
.SH "SYNOPSIS"
|
@@ -30,8 +30,14 @@ ecr
|
|
30
30
|
gcr
|
31
31
|
Connect to Google Container Registry (gcr\.io)\.
|
32
32
|
|
33
|
-
|
33
|
+
ghcr
|
34
34
|
Connect to GitHub Container Registry (ghcr\.io)\.
|
35
35
|
.fi
|
36
|
+
.SH "FLAGS"
|
37
|
+
.nf
|
38
|
+
\-\-skip\-raise\-existence\-error If credential exist, do not raise an exception, just print a message
|
39
|
+
|
40
|
+
\-\-update\-credential\-if\-exists Update credential if it exists
|
41
|
+
.fi
|
36
42
|
.P
|
37
43
|
Run \'uffizzi connect COMMAND \-\-help\' for more information on a command\.
|
data/man/uffizzi-connect-ghcr
CHANGED
@@ -1,16 +1,20 @@
|
|
1
1
|
.\" generated with Ronn-NG/v0.9.1
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
|
3
|
-
.TH "UFFIZZI\-CONNECT\-
|
3
|
+
.TH "UFFIZZI\-CONNECT\-GHCR" "" "July 2022" ""
|
4
4
|
.SH "NAME"
|
5
|
-
\fBuffizzi\-connect\-
|
5
|
+
\fBuffizzi\-connect\-ghcr\fR \- grant a Uffizzi user account access to a private GitHub Container Registry (GHCR)
|
6
6
|
.SH "SYNOPSIS"
|
7
7
|
.nf
|
8
|
-
uffizzi connect
|
8
|
+
uffizzi connect ghcr [OPTION]\|\.\|\.\|\.
|
9
9
|
.fi
|
10
10
|
.SH "DESCRIPTION"
|
11
11
|
.nf
|
12
12
|
Given valid credentials, grants a Uffizzi user account access
|
13
|
-
to a private GitHub Container Registry
|
13
|
+
to a private GitHub Container Registry\.
|
14
|
+
|
15
|
+
Credentials can be provided interactively or non\-interactively
|
16
|
+
via command options or environment variables:
|
17
|
+
GITHUB_USERNAME, GITHUB_ACCESS_TOKEN
|
14
18
|
|
15
19
|
This command can fail for the following reasons:
|
16
20
|
\- The active user does not have permission to connect
|
@@ -24,12 +28,17 @@ For detailed instructions on configuring webhooks to send push
|
|
24
28
|
notifications to Uffizzi, see
|
25
29
|
https://docs\.uffizzi\.com/guides/container\-registry\-integrations
|
26
30
|
.fi
|
31
|
+
.SH "OPTIONS"
|
32
|
+
.nf
|
33
|
+
\-u, \-\-username GitHub username
|
34
|
+
\-t, \-\-token Personal access token from GitHub
|
35
|
+
.fi
|
27
36
|
.SH "EXAMPLES"
|
28
37
|
.nf
|
29
38
|
The following command will prompt the user to enter GHCR
|
30
39
|
credentials, including GitHub account name and
|
31
|
-
personal access
|
40
|
+
personal access token (PAT):
|
32
41
|
|
33
|
-
|
42
|
+
uffizzi connect ghcr
|
34
43
|
.fi
|
35
44
|
|
@@ -1,15 +1,19 @@
|
|
1
|
-
uffizzi-connect-
|
1
|
+
uffizzi-connect-ghcr - grant a Uffizzi user account access to a private GitHub Container Registry (GHCR)
|
2
2
|
================================================================
|
3
3
|
|
4
4
|
## SYNOPSIS
|
5
|
-
uffizzi connect
|
5
|
+
uffizzi connect ghcr [OPTION]...
|
6
6
|
|
7
7
|
## DESCRIPTION
|
8
|
-
Given valid credentials, grants a Uffizzi user account access
|
9
|
-
to a private GitHub Container Registry
|
8
|
+
Given valid credentials, grants a Uffizzi user account access
|
9
|
+
to a private GitHub Container Registry.
|
10
|
+
|
11
|
+
Credentials can be provided interactively or non-interactively
|
12
|
+
via command options or environment variables:
|
13
|
+
GITHUB_USERNAME, GITHUB_ACCESS_TOKEN
|
10
14
|
|
11
15
|
This command can fail for the following reasons:
|
12
|
-
- The active user does not have permission to connect
|
16
|
+
- The active user does not have permission to connect
|
13
17
|
external services.
|
14
18
|
- The given credentials are invalid.
|
15
19
|
|
@@ -17,12 +21,16 @@ uffizzi-connect-ecr - grant a Uffizzi user account access to a private GitHub Co
|
|
17
21
|
https://github.com/UffizziCloud/uffizzi_cli
|
18
22
|
|
19
23
|
For detailed instructions on configuring webhooks to send push
|
20
|
-
notifications to Uffizzi, see
|
24
|
+
notifications to Uffizzi, see
|
21
25
|
https://docs.uffizzi.com/guides/container-registry-integrations
|
22
26
|
|
27
|
+
## OPTIONS
|
28
|
+
-u, --username GitHub username
|
29
|
+
-t, --token Personal access token from GitHub
|
30
|
+
|
23
31
|
## EXAMPLES
|
24
|
-
The following command will prompt the user to enter GHCR
|
25
|
-
credentials, including GitHub account name and
|
26
|
-
personal access
|
27
|
-
|
28
|
-
|
32
|
+
The following command will prompt the user to enter GHCR
|
33
|
+
credentials, including GitHub account name and
|
34
|
+
personal access token (PAT):
|
35
|
+
|
36
|
+
uffizzi connect ghcr
|
data/man/uffizzi-connect.ronn
CHANGED
@@ -24,8 +24,14 @@ uffizzi-connect - grant a Uffizzi user account access to external services
|
|
24
24
|
|
25
25
|
gcr
|
26
26
|
Connect to Google Container Registry (gcr.io).
|
27
|
-
|
28
|
-
|
27
|
+
|
28
|
+
ghcr
|
29
29
|
Connect to GitHub Container Registry (ghcr.io).
|
30
30
|
|
31
|
+
|
32
|
+
## FLAGS
|
33
|
+
--skip-raise-existence-error If credential exist, do not raise an exception, just print a message
|
34
|
+
|
35
|
+
--update-credential-if-exists Update credential if it exists
|
36
|
+
|
31
37
|
Run 'uffizzi connect COMMAND --help' for more information on a command.
|
data/man/uffizzi-disconnect
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
.\" generated with Ronn-NG/v0.9.1
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
|
3
|
-
.TH "UFFIZZI\-DISCONNECT" "" "
|
3
|
+
.TH "UFFIZZI\-DISCONNECT" "" "July 2022" ""
|
4
4
|
.SH "NAME"
|
5
5
|
\fBuffizzi\-disconnect\fR \- revoke a Uffizzi user account access to external services
|
6
6
|
.SH "SYNOPSIS"
|
@@ -30,7 +30,7 @@ ecr
|
|
30
30
|
gcr
|
31
31
|
Disonnect from Google Container Registry (gcr\.io)\.
|
32
32
|
|
33
|
-
|
33
|
+
ghcr
|
34
34
|
Disonnect from GitHub Container Registry (ghcr\.io)\.
|
35
35
|
.fi
|
36
36
|
.P
|
data/man/uffizzi-disconnect.ronn
CHANGED
@@ -24,8 +24,8 @@ uffizzi-disconnect - revoke a Uffizzi user account access to external services
|
|
24
24
|
|
25
25
|
gcr
|
26
26
|
Disonnect from Google Container Registry (gcr.io).
|
27
|
-
|
28
|
-
|
27
|
+
|
28
|
+
ghcr
|
29
29
|
Disonnect from GitHub Container Registry (ghcr.io).
|
30
30
|
|
31
31
|
Run 'uffizzi disconnect COMMAND --help' for more information on a command.
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uffizzi-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Thurman
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-
|
12
|
+
date: 2022-08-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: awesome_print
|