gemstash 1.1.0 → 2.0.0

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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -0
  3. data/lib/gemstash.rb +0 -1
  4. data/lib/gemstash/authorization.rb +1 -5
  5. data/lib/gemstash/cli.rb +4 -4
  6. data/lib/gemstash/cli/authorize.rb +4 -2
  7. data/lib/gemstash/cli/base.rb +5 -4
  8. data/lib/gemstash/cli/setup.rb +2 -2
  9. data/lib/gemstash/cli/status.rb +1 -1
  10. data/lib/gemstash/cli/stop.rb +1 -1
  11. data/lib/gemstash/configuration.rb +3 -2
  12. data/lib/gemstash/gem_pusher.rb +7 -0
  13. data/lib/gemstash/gem_source/private_source.rb +0 -4
  14. data/lib/gemstash/gem_source/upstream_source.rb +0 -4
  15. data/lib/gemstash/health.rb +3 -3
  16. data/lib/gemstash/logging.rb +2 -4
  17. data/lib/gemstash/man/gemstash-authorize.1.txt +53 -33
  18. data/lib/gemstash/man/gemstash-configuration.5.txt +10 -141
  19. data/lib/gemstash/man/gemstash-customize.7.txt +66 -175
  20. data/lib/gemstash/man/gemstash-debugging.7.txt +54 -17
  21. data/lib/gemstash/man/gemstash-deploy.7.txt +51 -44
  22. data/lib/gemstash/man/gemstash-mirror.7.txt +53 -20
  23. data/lib/gemstash/man/gemstash-multiple-sources.7.txt +48 -53
  24. data/lib/gemstash/man/gemstash-private-gems.7.txt +15 -117
  25. data/lib/gemstash/man/gemstash-readme.7.txt +10 -126
  26. data/lib/gemstash/man/gemstash-setup.1.txt +54 -28
  27. data/lib/gemstash/man/gemstash-start.1.txt +56 -16
  28. data/lib/gemstash/man/gemstash-status.1.txt +57 -13
  29. data/lib/gemstash/man/gemstash-stop.1.txt +57 -13
  30. data/lib/gemstash/man/gemstash-version.1.txt +57 -12
  31. data/lib/gemstash/migrations/01_gem_dependencies.rb +2 -2
  32. data/lib/gemstash/migrations/03_cached_gems.rb +1 -1
  33. data/lib/gemstash/migrations/04_health_tests.rb +8 -0
  34. data/lib/gemstash/puma.rb +1 -1
  35. data/lib/gemstash/storage.rb +1 -0
  36. data/lib/gemstash/upstream.rb +2 -2
  37. data/lib/gemstash/version.rb +1 -1
  38. data/lib/gemstash/web.rb +5 -4
  39. metadata +20 -28
  40. data/lib/gemstash/gem_unyanker.rb +0 -67
  41. data/lib/gemstash/man/gemstash-authorize.1 +0 -51
  42. data/lib/gemstash/man/gemstash-configuration.5 +0 -215
  43. data/lib/gemstash/man/gemstash-customize.7 +0 -280
  44. data/lib/gemstash/man/gemstash-debugging.7 +0 -34
  45. data/lib/gemstash/man/gemstash-deploy.7 +0 -72
  46. data/lib/gemstash/man/gemstash-mirror.7 +0 -40
  47. data/lib/gemstash/man/gemstash-multiple-sources.7 +0 -89
  48. data/lib/gemstash/man/gemstash-private-gems.7 +0 -244
  49. data/lib/gemstash/man/gemstash-readme.7 +0 -234
  50. data/lib/gemstash/man/gemstash-setup.1 +0 -43
  51. data/lib/gemstash/man/gemstash-start.1 +0 -26
  52. data/lib/gemstash/man/gemstash-status.1 +0 -20
  53. data/lib/gemstash/man/gemstash-stop.1 +0 -20
  54. data/lib/gemstash/man/gemstash-version.1 +0 -22
@@ -2,5 +2,5 @@ require "gemstash"
2
2
 
3
3
  threads 0, Gemstash::Env.current.config[:puma_threads].to_i
4
4
  bind Gemstash::Env.current.config[:bind].to_s
5
- workers 1
5
+ workers Gemstash::Env.current.config[:puma_workers].to_i unless RUBY_PLATFORM == "java"
6
6
  rackup Gemstash::Env.current.rackup
@@ -117,6 +117,7 @@ module Gemstash
117
117
  digest = Digest::MD5.hexdigest(@name)
118
118
  child_folder = "#{safe_name}-#{digest}"
119
119
  @folder = File.join(@base_path, *trie_parents, child_folder)
120
+ @properties = nil
120
121
  end
121
122
 
122
123
  # When +key+ is nil, this will test if this resource exists with any
@@ -11,9 +11,9 @@ module Gemstash
11
11
  def_delegators :@uri, :scheme, :host, :user, :password, :to_s
12
12
 
13
13
  def initialize(upstream, user_agent: nil)
14
- @uri = URI(URI.decode(upstream.to_s))
14
+ @uri = URI(CGI.unescape(upstream.to_s))
15
15
  @user_agent = user_agent
16
- raise "URL '#{@uri}' is not valid!" unless @uri.to_s =~ URI.regexp
16
+ raise "URL '#{@uri}' is not valid!" unless @uri.to_s =~ URI::DEFAULT_PARSER.make_regexp
17
17
  end
18
18
 
19
19
  def url(path = nil, params = nil)
@@ -1,4 +1,4 @@
1
1
  #:nodoc:
2
2
  module Gemstash
3
- VERSION = "1.1.0".freeze
3
+ VERSION = "2.0.0".freeze
4
4
  end
@@ -26,6 +26,11 @@ module Gemstash
26
26
  body JSON.dump("error" => "Not found", "code" => 404)
27
27
  end
28
28
 
29
+ error GemPusher::ExistingVersionError do
30
+ status 422
31
+ body JSON.dump("error" => "Version already exists", "code" => 422)
32
+ end
33
+
29
34
  get "/" do
30
35
  @gem_source.serve_root
31
36
  end
@@ -46,10 +51,6 @@ module Gemstash
46
51
  @gem_source.serve_yank
47
52
  end
48
53
 
49
- put "/api/v1/gems/unyank" do
50
- @gem_source.serve_unyank
51
- end
52
-
53
54
  post "/api/v1/add_spec.json" do
54
55
  @gem_source.serve_add_spec_json
55
56
  end
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: 1.1.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andre Arko
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-31 00:00:00.000000000 Z
11
+ date: 2018-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -92,14 +92,14 @@ dependencies:
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: '2.14'
95
+ version: '3.10'
96
96
  type: :runtime
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '2.14'
102
+ version: '3.10'
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: server_health_check-rack
105
105
  requirement: !ruby/object:Gem::Requirement
@@ -120,42 +120,48 @@ dependencies:
120
120
  requirements:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
- version: '4.26'
123
+ version: '5.0'
124
124
  type: :runtime
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
- version: '4.26'
130
+ version: '5.0'
131
131
  - !ruby/object:Gem::Dependency
132
132
  name: sinatra
133
133
  requirement: !ruby/object:Gem::Requirement
134
134
  requirements:
135
- - - "~>"
135
+ - - ">="
136
136
  - !ruby/object:Gem::Version
137
137
  version: '1.4'
138
+ - - "<"
139
+ - !ruby/object:Gem::Version
140
+ version: '3.0'
138
141
  type: :runtime
139
142
  prerelease: false
140
143
  version_requirements: !ruby/object:Gem::Requirement
141
144
  requirements:
142
- - - "~>"
145
+ - - ">="
143
146
  - !ruby/object:Gem::Version
144
147
  version: '1.4'
148
+ - - "<"
149
+ - !ruby/object:Gem::Version
150
+ version: '3.0'
145
151
  - !ruby/object:Gem::Dependency
146
152
  name: thor
147
153
  requirement: !ruby/object:Gem::Requirement
148
154
  requirements:
149
155
  - - "~>"
150
156
  - !ruby/object:Gem::Version
151
- version: '0.19'
157
+ version: '0.20'
152
158
  type: :runtime
153
159
  prerelease: false
154
160
  version_requirements: !ruby/object:Gem::Requirement
155
161
  requirements:
156
162
  - - "~>"
157
163
  - !ruby/object:Gem::Version
158
- version: '0.19'
164
+ version: '0.20'
159
165
  - !ruby/object:Gem::Dependency
160
166
  name: sqlite3
161
167
  requirement: !ruby/object:Gem::Requirement
@@ -274,14 +280,14 @@ dependencies:
274
280
  requirements:
275
281
  - - '='
276
282
  - !ruby/object:Gem::Version
277
- version: 0.35.1
283
+ version: '0.49'
278
284
  type: :development
279
285
  prerelease: false
280
286
  version_requirements: !ruby/object:Gem::Requirement
281
287
  requirements:
282
288
  - - '='
283
289
  - !ruby/object:Gem::Version
284
- version: 0.35.1
290
+ version: '0.49'
285
291
  description: Gemstash acts as a local RubyGems server, caching copies of gems from
286
292
  RubyGems.org automatically, and eventually letting you push your own private gems
287
293
  as well.
@@ -325,42 +331,28 @@ files:
325
331
  - lib/gemstash/gem_source/private_source.rb
326
332
  - lib/gemstash/gem_source/rack_middleware.rb
327
333
  - lib/gemstash/gem_source/upstream_source.rb
328
- - lib/gemstash/gem_unyanker.rb
329
334
  - lib/gemstash/gem_yanker.rb
330
335
  - lib/gemstash/health.rb
331
336
  - lib/gemstash/http_client.rb
332
337
  - lib/gemstash/logging.rb
333
- - lib/gemstash/man/gemstash-authorize.1
334
338
  - lib/gemstash/man/gemstash-authorize.1.txt
335
- - lib/gemstash/man/gemstash-configuration.5
336
339
  - lib/gemstash/man/gemstash-configuration.5.txt
337
- - lib/gemstash/man/gemstash-customize.7
338
340
  - lib/gemstash/man/gemstash-customize.7.txt
339
- - lib/gemstash/man/gemstash-debugging.7
340
341
  - lib/gemstash/man/gemstash-debugging.7.txt
341
- - lib/gemstash/man/gemstash-deploy.7
342
342
  - lib/gemstash/man/gemstash-deploy.7.txt
343
- - lib/gemstash/man/gemstash-mirror.7
344
343
  - lib/gemstash/man/gemstash-mirror.7.txt
345
- - lib/gemstash/man/gemstash-multiple-sources.7
346
344
  - lib/gemstash/man/gemstash-multiple-sources.7.txt
347
- - lib/gemstash/man/gemstash-private-gems.7
348
345
  - lib/gemstash/man/gemstash-private-gems.7.txt
349
- - lib/gemstash/man/gemstash-readme.7
350
346
  - lib/gemstash/man/gemstash-readme.7.txt
351
- - lib/gemstash/man/gemstash-setup.1
352
347
  - lib/gemstash/man/gemstash-setup.1.txt
353
- - lib/gemstash/man/gemstash-start.1
354
348
  - lib/gemstash/man/gemstash-start.1.txt
355
- - lib/gemstash/man/gemstash-status.1
356
349
  - lib/gemstash/man/gemstash-status.1.txt
357
- - lib/gemstash/man/gemstash-stop.1
358
350
  - lib/gemstash/man/gemstash-stop.1.txt
359
- - lib/gemstash/man/gemstash-version.1
360
351
  - lib/gemstash/man/gemstash-version.1.txt
361
352
  - lib/gemstash/migrations/01_gem_dependencies.rb
362
353
  - lib/gemstash/migrations/02_authorizations.rb
363
354
  - lib/gemstash/migrations/03_cached_gems.rb
355
+ - lib/gemstash/migrations/04_health_tests.rb
364
356
  - lib/gemstash/puma.rb
365
357
  - lib/gemstash/rack_env_rewriter.rb
366
358
  - lib/gemstash/specs_builder.rb
@@ -388,7 +380,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
388
380
  version: '0'
389
381
  requirements: []
390
382
  rubyforge_project:
391
- rubygems_version: 2.6.12
383
+ rubygems_version: 2.7.6
392
384
  signing_key:
393
385
  specification_version: 4
394
386
  summary: A place to stash gems you'll need
@@ -1,67 +0,0 @@
1
- require "gemstash"
2
-
3
- module Gemstash
4
- # Class that supports unyanking a gem from the private repository of gems.
5
- class GemUnyanker
6
- include Gemstash::Env::Helper
7
-
8
- # This error is thrown when unyanking a non-existing gem name.
9
- class UnknownGemError < StandardError
10
- end
11
-
12
- # This error is thrown when unyanking a non-existing gem version.
13
- class UnknownVersionError < StandardError
14
- end
15
-
16
- # This error is thrown when unyanking a non-yanked gem version.
17
- class NotYankedVersionError < StandardError
18
- end
19
-
20
- def self.serve(app)
21
- gem_name = app.params[:gem_name]
22
- slug = Gemstash::DB::Version.slug(app.params)
23
- new(app.auth, gem_name, slug).serve
24
- end
25
-
26
- def initialize(auth, gem_name, slug)
27
- @auth = auth
28
- @gem_name = gem_name
29
- @slug = slug
30
- end
31
-
32
- def serve
33
- check_auth
34
- update_database
35
- invalidate_cache
36
- end
37
-
38
- private
39
-
40
- def storage
41
- @storage ||= Gemstash::Storage.for("private").for("gems")
42
- end
43
-
44
- def full_name
45
- @full_name ||= "#{@gem_name}-#{@slug}"
46
- end
47
-
48
- def check_auth
49
- @auth.check("unyank")
50
- end
51
-
52
- def update_database
53
- gemstash_env.db.transaction do
54
- raise UnknownGemError, "Cannot unyank an unknown gem!" unless Gemstash::DB::Rubygem[name: @gem_name]
55
- version = Gemstash::DB::Version.find_by_full_name(full_name)
56
- raise UnknownVersionError, "Cannot unyank an unknown version!" unless version
57
- raise NotYankedVersionError, "Cannot unyank a non-yanked version!" if version.indexed
58
- version.reindex
59
- storage.resource(version.storage_id).update_properties(indexed: true)
60
- end
61
- end
62
-
63
- def invalidate_cache
64
- gemstash_env.cache.invalidate_gem("private", @gem_name)
65
- end
66
- end
67
- end
@@ -1,51 +0,0 @@
1
- .\" Automatically generated by Pandoc 1.19.2.1
2
- .\"
3
- .TH "gemstash\-authorize" "1" "October 9, 2015" "" ""
4
- .hy
5
- .SH NAME
6
- .PP
7
- gemstash\-authorize \- Adds or removes authorization to interact with
8
- privately stored gems
9
- .SH SYNOPSIS
10
- .PP
11
- \f[C]gemstash\ authorize\ [permissions]\ [\-\-remove]\ [\-\-key\ SECURE_KEY]\ [\-\-config\-file\ FILE]\f[]
12
- .SH DESCRIPTION
13
- .PP
14
- Adds or removes authorization to interact with privately stored gems.
15
- .PP
16
- Any arguments will be used as specific permissions.
17
- Valid permissions include \f[C]push\f[], \f[C]yank\f[], \f[C]unyank\f[],
18
- and \f[C]fetch\f[].
19
- If no permissions are provided, then all permissions will be granted
20
- (including any that may be added in future versions of Gemstash).
21
- .SS USAGE
22
- .IP
23
- .nf
24
- \f[C]
25
- gemstash\ authorize
26
- gemstash\ authorize\ push\ yank
27
- gemstash\ authorize\ yank\ unyank\ \-\-key\ <secure\-key>
28
- gemstash\ authorize\ \-\-remove\ \-\-key\ <secure\-key>
29
- \f[]
30
- .fi
31
- .SH OPTIONS
32
- .IP \[bu] 2
33
- \f[C]\-\-config\-file\ FILE\f[]: Specify the config file to use.
34
- If you aren\[aq]t using the default config file at
35
- \f[C]~/.gemstash/config.yml\f[] or
36
- \f[C]~/.gemstash/config.yml.erb\f[] (gemstash help customize.7), then
37
- you must specify the config file via this option.
38
- .IP \[bu] 2
39
- \f[C]\-\-key\ SECURE_KEY\f[]: Specify the API key to affect.
40
- This should be the actual key value, not a name.
41
- This option is required when using \f[C]\-\-remove\f[] but is optional
42
- otherwise.
43
- If adding an authorization, using this will either create or update the
44
- permissions for the specified API key.
45
- If missing, a new API key will always be generated.
46
- Note that a key can only have a maximum length of 255 chars.
47
- .IP \[bu] 2
48
- \f[C]\-\-remove\f[]: Remove an authorization rather than add or update
49
- one.
50
- When removing, permission values are not allowed.
51
- The \f[C]\-\-key\ <secure\-key>\f[] option is required.
@@ -1,215 +0,0 @@
1
- .\" Automatically generated by Pandoc 1.19.2.1
2
- .\"
3
- .TH "gemstash\-configuration" "5" "October 13, 2015" "" ""
4
- .hy
5
- .SH NAME
6
- .PP
7
- gemstash\-configuration
8
- .SH SYNOPSIS
9
- .IP
10
- .nf
11
- \f[C]
12
- #\ ~/.gemstash/config.yml
13
- \-\-\-
14
- :base_path:\ "/var/gemstash"
15
- :cache_type:\ memcached
16
- :memcached_servers:\ localhost:11211
17
- :db_adapter:\ postgres
18
- :db_url:\ postgres:///gemstash
19
- :db_connection_options:
20
- \ \ :test:\ true
21
- \ \ :pool_timeout:\ 2
22
- :rubygems_url:\ https://my.gem\-source.local
23
- :puma_threads:\ 32
24
- :bind:\ tcp://0.0.0.0:4242
25
- :protected_fetch:\ true
26
- :fetch_timeout:\ 10
27
- :log_file:\ gemstash.log
28
- \f[]
29
- .fi
30
- .SH BASE PATH
31
- .PP
32
- \f[C]:base_path\f[]
33
- .PP
34
- Specifies where to store local files like the server log, cached gem
35
- files, and the database (when using SQLite).
36
- If the default is being used, the directory will be created if it does
37
- not exist.
38
- Any other directory needs to be created ahead of time and be writable to
39
- the Gemstash server process.
40
- Specifying the \f[C]:base_path\f[] via
41
- \f[C]gemstash\ setup\f[] (gemstash help setup.1) will create the
42
- directory for you.
43
- .SS DEFAULT VALUE
44
- .PP
45
- \f[C]~/.gemstash\f[]
46
- .SS VALID VALUES
47
- .PP
48
- Any valid path
49
- .SH CACHE TYPE
50
- .PP
51
- \f[C]:cache_type\f[]
52
- .PP
53
- Specifies how to cache values other than gem files (such as gem
54
- dependencies).
55
- \f[C]memory\f[] will use an in memory cache while \f[C]memcached\f[]
56
- will point to 1 or more Memcached servers.
57
- Use the \f[C]:memcached_servers\f[] configuration key for specifying
58
- where the Memcached server(s) are.
59
- .SS DEFAULT VALUE
60
- .PP
61
- \f[C]memory\f[]
62
- .SS VALID VALUES
63
- .PP
64
- \f[C]memory\f[], \f[C]memcached\f[]
65
- .SH MEMCACHED SERVERS
66
- .PP
67
- \f[C]:memcached_servers\f[]
68
- .PP
69
- Specifies the Memcached servers to connect to when using
70
- \f[C]memcached\f[] for the \f[C]:cache_type\f[].
71
- Only used when \f[C]memcached\f[] is used for \f[C]:cache_type\f[].
72
- .SS DEFAULT VALUE
73
- .PP
74
- \f[C]localhost:11211\f[]
75
- .SS VALID VALUES
76
- .PP
77
- A comma delimited list of Memcached servers
78
- .SH DB ADAPTER
79
- .PP
80
- \f[C]:db_adapter\f[]
81
- .PP
82
- Specifies what database adapter to use.
83
- When \f[C]sqlite3\f[] is used, the database will be located at
84
- \f[C]gemstash.db\f[] within the directory specified by
85
- \f[C]:base_path\f[].
86
- The database will automatically be created when using \f[C]sqlite3\f[].
87
- When \f[C]postgres\f[], \f[C]mysql\f[], or \f[C]mysql2\f[] is used, the
88
- database to connect to must be specified in the \f[C]:db_url\f[]
89
- configuration key.
90
- The database must already be created when using anything other than
91
- \f[C]sqlite3\f[].
92
- .SS DEFAULT VALUE
93
- .PP
94
- \f[C]sqlite3\f[]
95
- .SS VALID VALUES
96
- .PP
97
- \f[C]sqlite3\f[], \f[C]postgres\f[], \f[C]mysql\f[], \f[C]mysql2\f[]
98
- .SH DB URL
99
- .PP
100
- \f[C]:db_url\f[]
101
- .PP
102
- Specifies the database to connect to when using \f[C]postgres\f[],
103
- \f[C]mysql\f[], or \f[C]mysql2\f[] for the \f[C]:db_adapter\f[].
104
- Only used when the \f[C]:db_adapter\f[] is not \f[C]sqlite3\f[].
105
- .SS DEFAULT VALUE
106
- .PP
107
- None
108
- .SS VALID VALUES
109
- .PP
110
- A valid database URL for the Sequel gem (http://sequel.jeremyevans.net/)
111
- .SH DB CONNECTION OPTIONS
112
- .PP
113
- \f[C]:db_connection_options\f[]
114
- .PP
115
- Specifies additional \f[C]Sequel.connect\f[] options to use.
116
- Note that any options here are merged in with the default options, so
117
- you need not specify the \f[C]max_connections\f[] if you customize this
118
- option.
119
- .SS DEFAULT VALUE
120
- .PP
121
- \f[C]{\ max_connections:\ 1\ }\f[] for \f[C]sqlite3\f[] adapter,
122
- \f[C]{\ max_connections:\ config[:puma_threads]\ +\ 1\ }\f[] for any
123
- other adapter.
124
- .SS VALID VALUES
125
- .PP
126
- A valid connection options Hash for the
127
- Sequel.connect (http://sequel.jeremyevans.net/rdoc/files/doc/opening_databases_rdoc.html#label-General+connection+options)
128
- method.
129
- .SH RUBYGEMS URL
130
- .PP
131
- \f[C]:rubygems_url\f[]
132
- .PP
133
- Specifies the default gem source URL.
134
- When any API endpoint is called without a \f[C]/private\f[] or
135
- \f[C]/upstream/<url>\f[] prefix, this URL will be used to fetch the
136
- result.
137
- This value can be safely changed even if there are already gems stashed
138
- for the previous value.
139
- .SS DEFAULT VALUE
140
- .PP
141
- \f[C]https://rubygems.org\f[]
142
- .SS VALID VALUES
143
- .PP
144
- A valid gem source URL
145
- .SH PUMA THREADS
146
- .PP
147
- \f[C]:puma_threads\f[]
148
- .PP
149
- Specifies the number of threads used for the Gemstash server.
150
- .SS DEFAULT VALUE
151
- .PP
152
- \f[C]16\f[]
153
- .SS VALID VALUES
154
- .PP
155
- Integer value with a minimum of \f[C]1\f[]
156
- .SH BIND ADDRESS
157
- .PP
158
- \f[C]:bind\f[]
159
- .PP
160
- Specifies the binding used to start the Gemstash server.
161
- Keep in mind the user starting Gemstash needs to have access to bind in
162
- this manner.
163
- For example, if you use a port below 1024, you will need to run Gemstash
164
- as the root user.
165
- .SS DEFAULT VALUE
166
- .PP
167
- \f[C]tcp://0.0.0.0:9292\f[]
168
- .SS VALID VALUES
169
- .PP
170
- Any valid binding that is supported by
171
- Puma (https://github.com/puma/puma#binding-tcp--sockets)
172
- .SH PROTECTED FETCH
173
- .PP
174
- \f[C]:protected_fetch\f[]
175
- .PP
176
- Tells Gemstash to authenticate via an API key before allowing the
177
- fetching of private gems and specs.
178
- The default behavior is to allow unauthenticated download of private
179
- gems and specs.
180
- .SS DEFAULT VALUE
181
- .PP
182
- \f[C]false\f[]
183
- .SS VALID VALUES
184
- .PP
185
- Boolean values \f[C]true\f[] or \f[C]false\f[]
186
- .SH FETCH TIMEOUT
187
- .PP
188
- \f[C]:fetch_timeout\f[]
189
- .PP
190
- The timeout setting for fetching gems.
191
- Fetching gems over a slow connection may cause timeout errors.
192
- If you experience timeout errors, you may want to increase this value.
193
- The default is \f[C]20\f[] seconds.
194
- .SS DEFAULT VALUE
195
- .PP
196
- \f[C]20\f[]
197
- .SS VALID VALUES
198
- .PP
199
- Integer value with a minimum of \f[C]1\f[]
200
- .SH LOG FILE
201
- .PP
202
- \f[C]:log_file\f[]
203
- .PP
204
- Indicates the name of the file to use for logging.
205
- The file will be placed in the base
206
- path (gemstash help configuration.5).
207
- .SS DEFAULT VALUE
208
- .PP
209
- \f[C]server.log\f[]
210
- .SS VALID VALUES
211
- .PP
212
- Any valid file name, or \f[C]:stdout\f[] to log to \f[C]$stdout\f[]
213
- .PP
214
- \f[I]Note: Using \f[C]:stdout\f[] for the \f[C]:log_file\f[] requires
215
- running with \f[C]\-\-no\-daemonize\f[] (gemstash help start.1).\f[]