gemstash 2.2.2 → 2.7.1

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.
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