gemstash 2.2.2 → 2.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +61 -17
  3. data/lib/gemstash/authorization.rb +5 -2
  4. data/lib/gemstash/cli/authorize.rb +42 -1
  5. data/lib/gemstash/cli/setup.rb +2 -2
  6. data/lib/gemstash/cli/start.rb +5 -25
  7. data/lib/gemstash/cli.rb +6 -2
  8. data/lib/gemstash/config.ru +0 -2
  9. data/lib/gemstash/configuration.rb +5 -0
  10. data/lib/gemstash/db/authorization.rb +3 -3
  11. data/lib/gemstash/env.rb +0 -11
  12. data/lib/gemstash/gem_source/upstream_source.rb +15 -0
  13. data/lib/gemstash/logging.rb +14 -2
  14. data/lib/gemstash/man/gemstash-authorize.1 +21 -33
  15. data/lib/gemstash/man/gemstash-authorize.1.txt +20 -16
  16. data/lib/gemstash/man/gemstash-configuration.5 +61 -119
  17. data/lib/gemstash/man/gemstash-configuration.5.txt +58 -65
  18. data/lib/gemstash/man/gemstash-customize.7 +60 -103
  19. data/lib/gemstash/man/gemstash-customize.7.txt +52 -56
  20. data/lib/gemstash/man/gemstash-debugging.7 +11 -31
  21. data/lib/gemstash/man/gemstash-debugging.7.txt +8 -13
  22. data/lib/gemstash/man/gemstash-deploy.7 +15 -39
  23. data/lib/gemstash/man/gemstash-deploy.7.txt +18 -22
  24. data/lib/gemstash/man/gemstash-mirror.7 +10 -31
  25. data/lib/gemstash/man/gemstash-mirror.7.txt +6 -10
  26. data/lib/gemstash/man/gemstash-multiple-sources.7 +72 -44
  27. data/lib/gemstash/man/gemstash-multiple-sources.7.txt +66 -22
  28. data/lib/gemstash/man/gemstash-private-gems.7 +51 -102
  29. data/lib/gemstash/man/gemstash-private-gems.7.txt +35 -39
  30. data/lib/gemstash/man/gemstash-readme.7 +42 -88
  31. data/lib/gemstash/man/gemstash-readme.7.txt +43 -48
  32. data/lib/gemstash/man/gemstash-setup.1 +13 -33
  33. data/lib/gemstash/man/gemstash-setup.1.txt +13 -17
  34. data/lib/gemstash/man/gemstash-start.1 +5 -29
  35. data/lib/gemstash/man/gemstash-start.1.txt +6 -14
  36. data/lib/gemstash/man/gemstash-status.1 +5 -23
  37. data/lib/gemstash/man/gemstash-status.1.txt +6 -10
  38. data/lib/gemstash/man/gemstash-stop.1 +5 -23
  39. data/lib/gemstash/man/gemstash-stop.1.txt +6 -10
  40. data/lib/gemstash/man/gemstash-version.1 +4 -24
  41. data/lib/gemstash/man/gemstash-version.1.txt +3 -7
  42. data/lib/gemstash/migrations/05_authorization_names.rb +10 -0
  43. data/lib/gemstash/upstream.rb +33 -2
  44. data/lib/gemstash/version.rb +1 -1
  45. data/lib/gemstash.rb +1 -0
  46. metadata +35 -14
@@ -1,35 +1,17 @@
1
1
  <!-- Automatically generated by Pandoc -->
2
- .\" Automatically generated by Pandoc 3.1
2
+ .\" Automatically generated by Pandoc 3.1.8
3
3
  .\"
4
- .\" Define V font for inline verbatim, using C font in formats
5
- .\" that render this, and otherwise B font.
6
- .ie "\f[CB]x\f[]"x" \{\
7
- . ftr V B
8
- . ftr VI BI
9
- . ftr VB B
10
- . ftr VBI BI
11
- .\}
12
- .el \{\
13
- . ftr V CR
14
- . ftr VI CI
15
- . ftr VB CB
16
- . ftr VBI CBI
17
- .\}
18
4
  .TH "gemstash-status" "1" "October 28, 2015" "" ""
19
- .hy
20
5
  .SH Name
21
- .PP
22
6
  gemstash-status - Checks status of the Gemstash server
23
7
  .SH Synopsis
24
- .PP
25
- \f[V]gemstash status [--config-file FILE]\f[R]
8
+ \f[CR]gemstash status [--config-file FILE]\f[R]
26
9
  .SH Description
27
- .PP
28
10
  Checks status of the Gemstash server.
29
11
  .SH Options
30
12
  .IP \[bu] 2
31
- \f[V]--config-file FILE\f[R]: Specify the config file to use.
13
+ \f[CR]--config-file FILE\f[R]: Specify the config file to use.
32
14
  If you aren\[cq]t using the default config file at
33
- \f[V]\[ti]/.gemstash/config.yml\f[R] or
34
- \f[V]\[ti]/.gemstash/config.yml.erb\f[R], then you must specify the
15
+ \f[CR]\[ti]/.gemstash/config.yml\f[R] or
16
+ \f[CR]\[ti]/.gemstash/config.yml.erb\f[R], then you must specify the
35
17
  config file via this option.
@@ -1,6 +1,4 @@
1
- gemstash-status(1) gemstash-status(1)
2
-
3
-
1
+ 4mgemstash-status24m(1) 4mgemstash-status24m(1)
4
2
 
5
3
  <!-- Automatically generated by Pandoc -->
6
4
 
@@ -8,17 +6,15 @@ gemstash-status(1) gemstash-status(1)
8
6
  gemstash-status - Checks status of the Gemstash server
9
7
 
10
8
  1mSynopsis0m
11
- 1mgemstash status [--config-file FILE]0m
9
+ gemstash status [--config-file FILE]
12
10
 
13
11
  1mDescription0m
14
12
  Checks status of the Gemstash server.
15
13
 
16
14
  1mOptions0m
17
- o 1m--config-file FILE22m: Specify the config file to use. If you aren't
18
- using the default config file at 1m~/.gemstash/config.yml 22mor 1m~/.gem-0m
19
- 1mstash/config.yml.erb22m, then you must specify the config file via this
15
+ o --config-file FILE: Specify the config file to use. If you aren't
16
+ using the default config file at ~/.gemstash/config.yml or ~/.gem-
17
+ stash/config.yml.erb, then you must specify the config file via this
20
18
  option.
21
19
 
22
-
23
-
24
- October 28, 2015 gemstash-status(1)
20
+ October 28, 2015 4mgemstash-status24m(1)
@@ -1,35 +1,17 @@
1
1
  <!-- Automatically generated by Pandoc -->
2
- .\" Automatically generated by Pandoc 3.1
2
+ .\" Automatically generated by Pandoc 3.1.8
3
3
  .\"
4
- .\" Define V font for inline verbatim, using C font in formats
5
- .\" that render this, and otherwise B font.
6
- .ie "\f[CB]x\f[]"x" \{\
7
- . ftr V B
8
- . ftr VI BI
9
- . ftr VB B
10
- . ftr VBI BI
11
- .\}
12
- .el \{\
13
- . ftr V CR
14
- . ftr VI CI
15
- . ftr VB CB
16
- . ftr VBI CBI
17
- .\}
18
4
  .TH "gemstash-stop" "1" "October 9, 2015" "" ""
19
- .hy
20
5
  .SH Name
21
- .PP
22
6
  gemstash-stop - Stops the Gemstash server
23
7
  .SH Synopsis
24
- .PP
25
- \f[V]gemstash stop [--config-file FILE]\f[R]
8
+ \f[CR]gemstash stop [--config-file FILE]\f[R]
26
9
  .SH Description
27
- .PP
28
10
  Stops the Gemstash server.
29
11
  .SH Options
30
12
  .IP \[bu] 2
31
- \f[V]--config-file FILE\f[R]: Specify the config file to use.
13
+ \f[CR]--config-file FILE\f[R]: Specify the config file to use.
32
14
  If you aren\[cq]t using the default config file at
33
- \f[V]\[ti]/.gemstash/config.yml\f[R] or
34
- \f[V]\[ti]/.gemstash/config.yml.erb\f[R], then you must specify the
15
+ \f[CR]\[ti]/.gemstash/config.yml\f[R] or
16
+ \f[CR]\[ti]/.gemstash/config.yml.erb\f[R], then you must specify the
35
17
  config file via this option.
@@ -1,6 +1,4 @@
1
- gemstash-stop(1) gemstash-stop(1)
2
-
3
-
1
+ 4mgemstash-stop24m(1) 4mgemstash-stop24m(1)
4
2
 
5
3
  <!-- Automatically generated by Pandoc -->
6
4
 
@@ -8,17 +6,15 @@ gemstash-stop(1) gemstash-stop(1)
8
6
  gemstash-stop - Stops the Gemstash server
9
7
 
10
8
  1mSynopsis0m
11
- 1mgemstash stop [--config-file FILE]0m
9
+ gemstash stop [--config-file FILE]
12
10
 
13
11
  1mDescription0m
14
12
  Stops the Gemstash server.
15
13
 
16
14
  1mOptions0m
17
- o 1m--config-file FILE22m: Specify the config file to use. If you aren't
18
- using the default config file at 1m~/.gemstash/config.yml 22mor 1m~/.gem-0m
19
- 1mstash/config.yml.erb22m, then you must specify the config file via this
15
+ o --config-file FILE: Specify the config file to use. If you aren't
16
+ using the default config file at ~/.gemstash/config.yml or ~/.gem-
17
+ stash/config.yml.erb, then you must specify the config file via this
20
18
  option.
21
19
 
22
-
23
-
24
- October 9, 2015 gemstash-stop(1)
20
+ October 9, 2015 4mgemstash-stop24m(1)
@@ -1,37 +1,17 @@
1
1
  <!-- Automatically generated by Pandoc -->
2
- .\" Automatically generated by Pandoc 3.1
2
+ .\" Automatically generated by Pandoc 3.1.8
3
3
  .\"
4
- .\" Define V font for inline verbatim, using C font in formats
5
- .\" that render this, and otherwise B font.
6
- .ie "\f[CB]x\f[]"x" \{\
7
- . ftr V B
8
- . ftr VI BI
9
- . ftr VB B
10
- . ftr VBI BI
11
- .\}
12
- .el \{\
13
- . ftr V CR
14
- . ftr VI CI
15
- . ftr VB CB
16
- . ftr VBI CBI
17
- .\}
18
4
  .TH "gemstash-version" "1" "December 14, 2015" "" ""
19
- .hy
20
5
  .SH Name
21
- .PP
22
6
  gemstash-version - Show what version of Gemstash you are using
23
7
  .SH Synopsis
24
- .PP
25
- \f[V]gemstash version\f[R]
8
+ \f[CR]gemstash version\f[R]
26
9
  .SH Description
27
- .PP
28
10
  Show what version of Gemstash you are using.
29
11
  .SS Usage
30
12
  .IP
31
- .nf
32
- \f[C]
13
+ .EX
33
14
  gemstash version
34
15
  gemstash --version
35
16
  gemstash -v
36
- \f[R]
37
- .fi
17
+ .EE
@@ -1,6 +1,4 @@
1
- gemstash-version(1) gemstash-version(1)
2
-
3
-
1
+ 4mgemstash-version24m(1) 4mgemstash-version24m(1)
4
2
 
5
3
  <!-- Automatically generated by Pandoc -->
6
4
 
@@ -8,7 +6,7 @@ gemstash-version(1) gemstash-version(1)
8
6
  gemstash-version - Show what version of Gemstash you are using
9
7
 
10
8
  1mSynopsis0m
11
- 1mgemstash version0m
9
+ gemstash version
12
10
 
13
11
  1mDescription0m
14
12
  Show what version of Gemstash you are using.
@@ -18,6 +16,4 @@ gemstash-version(1) gemstash-version(1)
18
16
  gemstash --version
19
17
  gemstash -v
20
18
 
21
-
22
-
23
- December 14, 2015 gemstash-version(1)
19
+ December 14, 2015 4mgemstash-version24m(1)
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ Sequel.migration do
4
+ change do
5
+ alter_table :authorizations do
6
+ add_column :name, String, :size => 191
7
+ add_index [:name], :unique => true
8
+ end
9
+ end
10
+ end
@@ -11,10 +11,12 @@ module Gemstash
11
11
 
12
12
  attr_reader :user_agent, :uri
13
13
 
14
- def_delegators :@uri, :scheme, :host, :user, :password, :to_s
14
+ def_delegators :@uri, :scheme, :host, :to_s
15
15
 
16
16
  def initialize(upstream, user_agent: nil)
17
- @uri = URI(CGI.unescape(upstream.to_s))
17
+ url = CGI.unescape(upstream.to_s)
18
+ url = "https://#{url}" unless %r{^https?://}.match?(url)
19
+ @uri = URI(url)
18
20
  @user_agent = user_agent
19
21
  raise "URL '#{@uri}' is not valid!" unless @uri.to_s&.match?(URI::DEFAULT_PARSER.make_regexp)
20
22
  end
@@ -40,12 +42,41 @@ module Gemstash
40
42
  @host_id ||= "#{host}_#{hash}"
41
43
  end
42
44
 
45
+ def user
46
+ env_auth_user || @uri.user
47
+ end
48
+
49
+ def password
50
+ env_auth_pass || @uri.password
51
+ end
52
+
43
53
  private
44
54
 
45
55
  def hash
46
56
  Digest::MD5.hexdigest(to_s)
47
57
  end
48
58
 
59
+ def env_auth_user
60
+ return unless env_auth
61
+
62
+ env_auth.split(":", 2).first
63
+ end
64
+
65
+ def env_auth_pass
66
+ return unless env_auth
67
+ return unless env_auth.include?(":")
68
+
69
+ env_auth.split(":", 2).last
70
+ end
71
+
72
+ def env_auth
73
+ @env_auth ||= ENV["GEMSTASH_#{host_for_env}"]
74
+ end
75
+
76
+ def host_for_env
77
+ host.upcase.gsub(".", "__").gsub("-", "___")
78
+ end
79
+
49
80
  # :nodoc:
50
81
  class GemName
51
82
  def initialize(upstream, gem_name)
@@ -2,5 +2,5 @@
2
2
 
3
3
  # :nodoc:
4
4
  module Gemstash
5
- VERSION = "2.2.2"
5
+ VERSION = "2.7.1"
6
6
  end
data/lib/gemstash.rb CHANGED
@@ -20,6 +20,7 @@ module Gemstash
20
20
  autoload :LruReduxClient, "gemstash/cache"
21
21
  autoload :NotAuthorizedError, "gemstash/authorization"
22
22
  autoload :RackEnvRewriter, "gemstash/rack_env_rewriter"
23
+ autoload :RedisClient, "gemstash/cache"
23
24
  autoload :Resource, "gemstash/storage"
24
25
  autoload :SpecsBuilder, "gemstash/specs_builder"
25
26
  autoload :Storage, "gemstash/storage"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gemstash
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 2.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andre Arko
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-03 00:00:00.000000000 Z
11
+ date: 2023-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -54,30 +54,36 @@ dependencies:
54
54
  name: faraday
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - "~>"
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '1'
60
+ - - "<"
58
61
  - !ruby/object:Gem::Version
59
- version: '0.9'
62
+ version: '3'
60
63
  type: :runtime
61
64
  prerelease: false
62
65
  version_requirements: !ruby/object:Gem::Requirement
63
66
  requirements:
64
- - - "~>"
67
+ - - ">="
65
68
  - !ruby/object:Gem::Version
66
- version: '0.9'
69
+ version: '1'
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: '3'
67
73
  - !ruby/object:Gem::Dependency
68
74
  name: faraday_middleware
69
75
  requirement: !ruby/object:Gem::Requirement
70
76
  requirements:
71
77
  - - "~>"
72
78
  - !ruby/object:Gem::Version
73
- version: '0.10'
79
+ version: '1.0'
74
80
  type: :runtime
75
81
  prerelease: false
76
82
  version_requirements: !ruby/object:Gem::Requirement
77
83
  requirements:
78
84
  - - "~>"
79
85
  - !ruby/object:Gem::Version
80
- version: '0.10'
86
+ version: '1.0'
81
87
  - !ruby/object:Gem::Dependency
82
88
  name: lru_redux
83
89
  requirement: !ruby/object:Gem::Requirement
@@ -112,14 +118,14 @@ dependencies:
112
118
  requirements:
113
119
  - - "~>"
114
120
  - !ruby/object:Gem::Version
115
- version: '4.0'
121
+ version: '6.1'
116
122
  type: :runtime
117
123
  prerelease: false
118
124
  version_requirements: !ruby/object:Gem::Requirement
119
125
  requirements:
120
126
  - - "~>"
121
127
  - !ruby/object:Gem::Version
122
- version: '4.0'
128
+ version: '6.1'
123
129
  - !ruby/object:Gem::Dependency
124
130
  name: sequel
125
131
  requirement: !ruby/object:Gem::Requirement
@@ -157,7 +163,7 @@ dependencies:
157
163
  version: '1.4'
158
164
  - - "<"
159
165
  - !ruby/object:Gem::Version
160
- version: '3.0'
166
+ version: '4.0'
161
167
  type: :runtime
162
168
  prerelease: false
163
169
  version_requirements: !ruby/object:Gem::Requirement
@@ -166,6 +172,20 @@ dependencies:
166
172
  - !ruby/object:Gem::Version
167
173
  version: '1.4'
168
174
  - - "<"
175
+ - !ruby/object:Gem::Version
176
+ version: '4.0'
177
+ - !ruby/object:Gem::Dependency
178
+ name: terminal-table
179
+ requirement: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - "~>"
182
+ - !ruby/object:Gem::Version
183
+ version: '3.0'
184
+ type: :runtime
185
+ prerelease: false
186
+ version_requirements: !ruby/object:Gem::Requirement
187
+ requirements:
188
+ - - "~>"
169
189
  - !ruby/object:Gem::Version
170
190
  version: '3.0'
171
191
  - !ruby/object:Gem::Dependency
@@ -174,14 +194,14 @@ dependencies:
174
194
  requirements:
175
195
  - - "~>"
176
196
  - !ruby/object:Gem::Version
177
- version: '0.20'
197
+ version: '1.0'
178
198
  type: :runtime
179
199
  prerelease: false
180
200
  version_requirements: !ruby/object:Gem::Requirement
181
201
  requirements:
182
202
  - - "~>"
183
203
  - !ruby/object:Gem::Version
184
- version: '0.20'
204
+ version: '1.0'
185
205
  - !ruby/object:Gem::Dependency
186
206
  name: sqlite3
187
207
  requirement: !ruby/object:Gem::Requirement
@@ -275,6 +295,7 @@ files:
275
295
  - lib/gemstash/migrations/02_authorizations.rb
276
296
  - lib/gemstash/migrations/03_cached_gems.rb
277
297
  - lib/gemstash/migrations/04_health_tests.rb
298
+ - lib/gemstash/migrations/05_authorization_names.rb
278
299
  - lib/gemstash/puma.rb
279
300
  - lib/gemstash/rack_env_rewriter.rb
280
301
  - lib/gemstash/specs_builder.rb
@@ -301,7 +322,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
301
322
  - !ruby/object:Gem::Version
302
323
  version: '0'
303
324
  requirements: []
304
- rubygems_version: 3.2.7
325
+ rubygems_version: 3.5.0.dev
305
326
  signing_key:
306
327
  specification_version: 4
307
328
  summary: A place to stash gems you'll need