gemstash 1.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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[]