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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +34 -0
- data/lib/gemstash.rb +0 -1
- data/lib/gemstash/authorization.rb +1 -5
- data/lib/gemstash/cli.rb +4 -4
- data/lib/gemstash/cli/authorize.rb +4 -2
- data/lib/gemstash/cli/base.rb +5 -4
- data/lib/gemstash/cli/setup.rb +2 -2
- data/lib/gemstash/cli/status.rb +1 -1
- data/lib/gemstash/cli/stop.rb +1 -1
- data/lib/gemstash/configuration.rb +3 -2
- data/lib/gemstash/gem_pusher.rb +7 -0
- data/lib/gemstash/gem_source/private_source.rb +0 -4
- data/lib/gemstash/gem_source/upstream_source.rb +0 -4
- data/lib/gemstash/health.rb +3 -3
- data/lib/gemstash/logging.rb +2 -4
- data/lib/gemstash/man/gemstash-authorize.1.txt +53 -33
- data/lib/gemstash/man/gemstash-configuration.5.txt +10 -141
- data/lib/gemstash/man/gemstash-customize.7.txt +66 -175
- data/lib/gemstash/man/gemstash-debugging.7.txt +54 -17
- data/lib/gemstash/man/gemstash-deploy.7.txt +51 -44
- data/lib/gemstash/man/gemstash-mirror.7.txt +53 -20
- data/lib/gemstash/man/gemstash-multiple-sources.7.txt +48 -53
- data/lib/gemstash/man/gemstash-private-gems.7.txt +15 -117
- data/lib/gemstash/man/gemstash-readme.7.txt +10 -126
- data/lib/gemstash/man/gemstash-setup.1.txt +54 -28
- data/lib/gemstash/man/gemstash-start.1.txt +56 -16
- data/lib/gemstash/man/gemstash-status.1.txt +57 -13
- data/lib/gemstash/man/gemstash-stop.1.txt +57 -13
- data/lib/gemstash/man/gemstash-version.1.txt +57 -12
- data/lib/gemstash/migrations/01_gem_dependencies.rb +2 -2
- data/lib/gemstash/migrations/03_cached_gems.rb +1 -1
- data/lib/gemstash/migrations/04_health_tests.rb +8 -0
- data/lib/gemstash/puma.rb +1 -1
- data/lib/gemstash/storage.rb +1 -0
- data/lib/gemstash/upstream.rb +2 -2
- data/lib/gemstash/version.rb +1 -1
- data/lib/gemstash/web.rb +5 -4
- metadata +20 -28
- data/lib/gemstash/gem_unyanker.rb +0 -67
- data/lib/gemstash/man/gemstash-authorize.1 +0 -51
- data/lib/gemstash/man/gemstash-configuration.5 +0 -215
- data/lib/gemstash/man/gemstash-customize.7 +0 -280
- data/lib/gemstash/man/gemstash-debugging.7 +0 -34
- data/lib/gemstash/man/gemstash-deploy.7 +0 -72
- data/lib/gemstash/man/gemstash-mirror.7 +0 -40
- data/lib/gemstash/man/gemstash-multiple-sources.7 +0 -89
- data/lib/gemstash/man/gemstash-private-gems.7 +0 -244
- data/lib/gemstash/man/gemstash-readme.7 +0 -234
- data/lib/gemstash/man/gemstash-setup.1 +0 -43
- data/lib/gemstash/man/gemstash-start.1 +0 -26
- data/lib/gemstash/man/gemstash-status.1 +0 -20
- data/lib/gemstash/man/gemstash-stop.1 +0 -20
- data/lib/gemstash/man/gemstash-version.1 +0 -22
data/lib/gemstash/puma.rb
CHANGED
data/lib/gemstash/storage.rb
CHANGED
@@ -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
|
data/lib/gemstash/upstream.rb
CHANGED
@@ -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(
|
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.
|
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)
|
data/lib/gemstash/version.rb
CHANGED
data/lib/gemstash/web.rb
CHANGED
@@ -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:
|
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:
|
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: '
|
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: '
|
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: '
|
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: '
|
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.
|
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.
|
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.
|
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.
|
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
|
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[]
|