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