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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 653074694a6da8d9a0d09699993e21229de4676097e5cc930ffbd6110898a6cf
4
- data.tar.gz: 62e548f1804f1da0d2709fb725186ad8a811f608c8e9d6a5f2567307295136f6
3
+ metadata.gz: 9bab8ddab9daaae6c24fd9c878f367ca1206d275b1d42baacaa990cc5048d62d
4
+ data.tar.gz: '079b116b2cfb74f712a8300f46aa93d75867fbd4e8b74180595bda2ec3ee6c5b'
5
5
  SHA512:
6
- metadata.gz: d378ab9b7674da573af0fd96fd0c22d8070cdc0f0e7e02c9efd4f22cff6723e28892b28067c64ed740ad18f2add456542ff16274a5f6c318840afb3d35eb2737
7
- data.tar.gz: 61d2a82b279c024f9e89d3aa037c967af91a47ae99b4f28da26e93a759cf9e7459d09738385f9715b29191fd92046c56f05cbc01428a0a63977ff01bbc89084b
6
+ metadata.gz: b9d4634083a17c6cca10725523aec385964b42755ade1c43334c7436acf275c3b66c265ed256b2006076b10ae643cd17862bd35be5f622239d9eacd0474180cd
7
+ data.tar.gz: 88fd7c8d2822fab3a50794453c1d7e1ea1e0014b6b80dbe3f15c05af9b4c078a54c16232c988cb3dbc0e3eb877e05177525daa75e8a9ee736e0e2e47ffc4986f
@@ -1,3 +1,37 @@
1
+ ## 2.0.0 (2018-11-18)
2
+
3
+ ### Changes
4
+
5
+ - Breaking change: remove unyank support ([#119](https://github.com/bundler/gemstash/pull/119), [@olleolleolle](https://github.com/olleolleolle))
6
+ - Travis: JRuby 9.1.7.0, gem update --system, format the buildfile ([#138](https://github.com/bundler/gemstash/pull/138), [@olleolleolle](https://github.com/olleolleolle))
7
+ - Travis: 2.4.1, 2.3.4, jruby-9.1.8.0 ([#142](https://github.com/bundler/gemstash/pull/142), [@olleolleolle](https://github.com/olleolleolle))
8
+ - Add a health check ([#146](https://github.com/bundler/gemstash/pull/146), [@smellsblue](https://github.com/smellsblue))
9
+ - Travis: jruby-9.1.12.0 ([#147](https://github.com/bundler/gemstash/pull/147), [@olleolleolle](https://github.com/olleolleolle))
10
+ - Typo fix in changelog tool ([#152](https://github.com/bundler/gemstash/pull/152), [@olleolleolle](https://github.com/olleolleolle))
11
+ - Rake: Turn rake task files into .rake files, auto-loaded ([#153](https://github.com/bundler/gemstash/pull/153), [@olleolleolle](https://github.com/olleolleolle))
12
+ - Travis: JRUBY_OPTS w/o invalid option jruby.cext.enabled ([#156](https://github.com/bundler/gemstash/pull/156), [@olleolleolle](https://github.com/olleolleolle))
13
+ - Suppress deprecation warnings in production code ([#162](https://github.com/bundler/gemstash/pull/162), [@koic](https://github.com/koic))
14
+ - Travis: jruby-9.1.13.0; use dist: "trusty" ([#167](https://github.com/bundler/gemstash/pull/167), [@olleolleolle](https://github.com/olleolleolle))
15
+ - Allow puma_workers configuration ([#168](https://github.com/bundler/gemstash/pull/168), [@HParker](https://github.com/HParker))
16
+ - Update Puma dependency to ~> 3.10 ([#169](https://github.com/bundler/gemstash/pull/169), [@premist](https://github.com/premist))
17
+ - gem: sequel v5.0.0 ([#170](https://github.com/bundler/gemstash/pull/170), [@olleolleolle](https://github.com/olleolleolle))
18
+ - Travis: Avoid jruby warning about MaxPermSize ([#171](https://github.com/bundler/gemstash/pull/171), [@olleolleolle](https://github.com/olleolleolle))
19
+ - Travis: use JRuby, 9.1.17.0 avoid double gem update --system ([#173](https://github.com/bundler/gemstash/pull/173), [@olleolleolle](https://github.com/olleolleolle))
20
+ - Update rubocop to .49 to fix CVE-2017-8418 ([#174](https://github.com/bundler/gemstash/pull/174), [@matthewalbani](https://github.com/matthewalbani))
21
+ - Add Ruby 2.5.1 to Travis build matrix ([#177](https://github.com/bundler/gemstash/pull/177), [@greysteil](https://github.com/greysteil))
22
+ - Skip stale jruby spec ([#178](https://github.com/bundler/gemstash/pull/178), [@bronzdoc](https://github.com/bronzdoc))
23
+ - Update sinatra dependency to >= 1.4, < 3.0 ([#179](https://github.com/bundler/gemstash/pull/179), [@bronzdoc](https://github.com/bronzdoc))
24
+ - gemspec: use Thor 0.20.0 ([#180](https://github.com/bundler/gemstash/pull/180), [@olleolleolle](https://github.com/olleolleolle))
25
+ - Travis: jruby-9.2.0.0 ([#181](https://github.com/bundler/gemstash/pull/181), [@olleolleolle](https://github.com/olleolleolle))
26
+ - do not set puma worker config when running jruby ([#183](https://github.com/bundler/gemstash/pull/183), [@andreaseger](https://github.com/andreaseger))
27
+ - Add health_tests table, and use in Gemstash::Health for idempotency ([#186](https://github.com/bundler/gemstash/pull/186), [@kurtzur](https://github.com/kurtzur))
28
+ - Pushing an existing version of a gem should not overwrite the gem con… ([#190](https://github.com/bundler/gemstash/pull/190), [@bronzdoc](https://github.com/bronzdoc), [@mzruya](https://github.com/mzruya))
29
+ - Fix jruby builds ([#193](https://github.com/bundler/gemstash/pull/193), [@bronzdoc](https://github.com/bronzdoc))
30
+
31
+ ### Features
32
+
33
+ - Allow stdout logging when running --no-daemonize ([#140](https://github.com/bundler/gemstash/pull/140), [@smellsblue](https://github.com/smellsblue))
34
+
1
35
  ## 1.1.0 (2017-07-31)
2
36
 
3
37
  ### Bugfixes
@@ -11,7 +11,6 @@ module Gemstash
11
11
  autoload :GemFetcher, "gemstash/gem_fetcher"
12
12
  autoload :GemPusher, "gemstash/gem_pusher"
13
13
  autoload :GemSource, "gemstash/gem_source"
14
- autoload :GemUnyanker, "gemstash/gem_unyanker"
15
14
  autoload :GemYanker, "gemstash/gem_yanker"
16
15
  autoload :Health, "gemstash/health"
17
16
  autoload :HTTPClient, "gemstash/http_client"
@@ -9,7 +9,7 @@ module Gemstash
9
9
  class Authorization
10
10
  extend Gemstash::Env::Helper
11
11
  extend Gemstash::Logging
12
- VALID_PERMISSIONS = %w(push yank unyank fetch).freeze
12
+ VALID_PERMISSIONS = %w[push yank fetch].freeze
13
13
 
14
14
  def self.authorize(auth_key, permissions)
15
15
  raise "Authorization key is required!" if auth_key.to_s.strip.empty?
@@ -80,10 +80,6 @@ module Gemstash
80
80
  can?("yank")
81
81
  end
82
82
 
83
- def unyank?
84
- can?("unyank")
85
- end
86
-
87
83
  def fetch?
88
84
  can?("fetch")
89
85
  end
@@ -24,10 +24,10 @@ module Gemstash
24
24
  end
25
25
 
26
26
  def self.start(args = ARGV)
27
- help_flags = %w(-h --help)
27
+ help_flags = %w[-h --help]
28
28
 
29
29
  if args.any? {|a| help_flags.include?(a) }
30
- super(%w(help) + args.reject {|a| help_flags.include?(a) })
30
+ super(%w[help] + args.reject {|a| help_flags.include?(a) })
31
31
  else
32
32
  super
33
33
  end
@@ -46,7 +46,7 @@ module Gemstash
46
46
  end
47
47
  end
48
48
 
49
- desc "authorize [PERMISSIONS...]", "Add authorizations to push/yank/unyank private gems"
49
+ desc "authorize [PERMISSIONS...]", "Add authorizations to push/yank private gems"
50
50
  method_option :remove, :type => :boolean, :default => false, :desc =>
51
51
  "Remove an authorization key"
52
52
  method_option :config_file, :type => :string, :desc =>
@@ -95,7 +95,7 @@ module Gemstash
95
95
  def version
96
96
  say "Gemstash version #{Gemstash::VERSION}"
97
97
  end
98
- map %w(-v --version) => :version
98
+ map %w[-v --version] => :version
99
99
 
100
100
  private
101
101
 
@@ -24,8 +24,10 @@ module Gemstash
24
24
  end
25
25
 
26
26
  def remove_authorization
27
- raise Gemstash::CLI::Error.new(@cli, "To remove individual permissions, you do not need --remove
28
- Instead just authorize with the new set of permissions") unless @args.empty?
27
+ unless @args.empty?
28
+ raise Gemstash::CLI::Error.new(@cli, "To remove individual permissions, you do not need --remove
29
+ Instead just authorize with the new set of permissions")
30
+ end
29
31
  Gemstash::Authorization.remove(auth_key(false))
30
32
  end
31
33
 
@@ -21,10 +21,11 @@ module Gemstash
21
21
  end
22
22
 
23
23
  def check_rubygems_version
24
- @cli.say(@cli.set_color("Rubygems version is too old, " \
25
- "please update rubygems by running: " \
26
- "gem update --system", :red)) unless
27
- Gem::Requirement.new(">= 2.4").satisfied_by?(Gem::Version.new(Gem::VERSION))
24
+ unless Gem::Requirement.new(">= 2.4").satisfied_by?(Gem::Version.new(Gem::VERSION))
25
+ @cli.say(@cli.set_color("Rubygems version is too old, " \
26
+ "please update rubygems by running: " \
27
+ "gem update --system", :red))
28
+ end
28
29
  end
29
30
 
30
31
  def store_config
@@ -72,7 +72,7 @@ module Gemstash
72
72
 
73
73
  def ask_cache
74
74
  say_current_config(:cache_type, "Current cache")
75
- @config[:cache_type] = ask_with_default("Cache with what?", %w(memory memcached), "memory")
75
+ @config[:cache_type] = ask_with_default("Cache with what?", %w[memory memcached], "memory")
76
76
  ask_memcached_details if @config[:cache_type] == "memcached"
77
77
  end
78
78
 
@@ -85,7 +85,7 @@ module Gemstash
85
85
 
86
86
  def ask_database
87
87
  say_current_config(:db_adapter, "Current database adapter")
88
- @config[:db_adapter] = ask_with_default("What database adapter?", %w(sqlite3 postgres mysql mysql2), "sqlite3")
88
+ @config[:db_adapter] = ask_with_default("What database adapter?", %w[sqlite3 postgres mysql mysql2], "sqlite3")
89
89
  ask_database_details(@config[:db_adapter]) unless @config[:db_adapter] == "sqlite3"
90
90
  end
91
91
 
@@ -14,7 +14,7 @@ module Gemstash
14
14
  private
15
15
 
16
16
  def args
17
- pidfile_args + %w(status)
17
+ pidfile_args + %w[status]
18
18
  end
19
19
  end
20
20
  end
@@ -15,7 +15,7 @@ module Gemstash
15
15
  private
16
16
 
17
17
  def args
18
- pidfile_args + %w(stop)
18
+ pidfile_args + %w[stop]
19
19
  end
20
20
  end
21
21
  end
@@ -14,7 +14,8 @@ module Gemstash
14
14
  fetch_timeout: 20,
15
15
  # Actual default for db_connection_options is dynamic based on the adapter
16
16
  db_connection_options: {},
17
- puma_threads: 16
17
+ puma_threads: 16,
18
+ puma_workers: 1
18
19
  }.freeze
19
20
 
20
21
  DEFAULT_FILE = File.expand_path("~/.gemstash/config.yml").freeze
@@ -59,7 +60,7 @@ module Gemstash
59
60
  when "sqlite3"
60
61
  { max_connections: 1 }.merge(self[:db_connection_options])
61
62
  when "postgres", "mysql", "mysql2"
62
- { max_connections: self[:puma_threads] + 1 }.merge(self[:db_connection_options])
63
+ { max_connections: (self[:puma_workers] * self[:puma_threads]) + 1 }.merge(self[:db_connection_options])
63
64
  else
64
65
  raise "Unsupported DB adapter: '#{self[:db_adapter]}'"
65
66
  end
@@ -53,6 +53,13 @@ module Gemstash
53
53
  end
54
54
 
55
55
  def store_gem
56
+ resource_exist = storage.resource(full_name).exist?
57
+ resource_is_indexed = storage.resource(full_name).properties[:indexed] if resource_exist
58
+
59
+ if resource_exist && resource_is_indexed
60
+ raise ExistingVersionError, "Cannot push to an existing version!"
61
+ end
62
+
56
63
  storage.resource(full_name).save({ gem: @content }, indexed: true)
57
64
  end
58
65
 
@@ -31,10 +31,6 @@ module Gemstash
31
31
  protected(Gemstash::GemYanker)
32
32
  end
33
33
 
34
- def serve_unyank
35
- protected(Gemstash::GemUnyanker)
36
- end
37
-
38
34
  def serve_add_spec_json
39
35
  halt 403, "Not yet supported"
40
36
  end
@@ -35,10 +35,6 @@ module Gemstash
35
35
  halt 403, "Cannot yank from an upstream server!"
36
36
  end
37
37
 
38
- def serve_unyank
39
- halt 403, "Cannot unyank from an upstream server!"
40
- end
41
-
42
38
  def serve_add_spec_json
43
39
  halt 403, "Cannot add spec to an upstream server!"
44
40
  end
@@ -33,9 +33,9 @@ module Gemstash
33
33
 
34
34
  def self.check_db_write
35
35
  Gemstash::Env.current.db.transaction do
36
- Gemstash::Env.current.db[:rubygems].insert(name: "health_check:fake_gem_name",
37
- created_at: DateTime.now,
38
- updated_at: DateTime.now)
36
+ health_tests = Gemstash::Env.current.db[:health_tests]
37
+ health_tests.truncate
38
+ health_tests.insert(string: "test_string")
39
39
  # We don't want to actually write to the database
40
40
  raise Sequel::Rollback
41
41
  end
@@ -75,11 +75,9 @@ module Gemstash
75
75
  @level = level
76
76
  end
77
77
 
78
- def flush
79
- end
78
+ def flush; end
80
79
 
81
- def sync=(_value)
82
- end
80
+ def sync=(_value); end
83
81
 
84
82
  def write(message)
85
83
  Gemstash::Logging.logger.add(@level, message)
@@ -1,46 +1,66 @@
1
- gemstash-authorize(1) gemstash-authorize(1)
2
1
 
3
2
 
4
3
 
5
- NAME
6
- gemstash-authorize - Adds or removes authorization to interact with
7
- privately stored gems
8
4
 
9
- SYNOPSIS
10
- gemstash authorize [permissions] [--remove] [--key SECURE_KEY] [--con-
11
- fig-file FILE]
12
5
 
13
- DESCRIPTION
14
- Adds or removes authorization to interact with privately stored gems.
15
6
 
16
- Any arguments will be used as specific permissions. Valid permissions
17
- include push, yank, unyank, and fetch. If no permissions are provided,
18
- then all permissions will be granted (including any that may be added
19
- in future versions of Gemstash).
20
7
 
21
- USAGE
22
- gemstash authorize
23
- gemstash authorize push yank
24
- gemstash authorize yank unyank --key <secure-key>
25
- gemstash authorize --remove --key <secure-key>
26
8
 
27
- OPTIONS
28
- o --config-file FILE: Specify the config file to use. If you aren't
29
- using the default config file at ~/.gemstash/config.yml or ~/.gem-
30
- stash/config.yml.erb (gemstash help customize.7), then you must spec-
31
- ify the config file via this option.
32
9
 
33
- o --key SECURE_KEY: Specify the API key to affect. This should be the
34
- actual key value, not a name. This option is required when using
35
- --remove but is optional otherwise. If adding an authorization, us-
36
- ing this will either create or update the permissions for the speci-
37
- fied API key. If missing, a new API key will always be generated.
38
- Note that a key can only have a maximum length of 255 chars.
39
10
 
40
- o --remove: Remove an authorization rather than add or update one.
41
- When removing, permission values are not allowed. The --key <se-
42
- cure-key> option is required.
43
11
 
44
12
 
45
13
 
46
- October 9, 2015 gemstash-authorize(1)
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
@@ -1,197 +1,66 @@
1
- gemstash-configuration(5) gemstash-configuration(5)
2
1
 
3
2
 
4
3
 
5
- NAME
6
- gemstash-configuration
7
4
 
8
- SYNOPSIS
9
- # ~/.gemstash/config.yml
10
- ---
11
- :base_path: "/var/gemstash"
12
- :cache_type: memcached
13
- :memcached_servers: localhost:11211
14
- :db_adapter: postgres
15
- :db_url: postgres:///gemstash
16
- :db_connection_options:
17
- :test: true
18
- :pool_timeout: 2
19
- :rubygems_url: https://my.gem-source.local
20
- :puma_threads: 32
21
- :bind: tcp://0.0.0.0:4242
22
- :protected_fetch: true
23
- :fetch_timeout: 10
24
- :log_file: gemstash.log
25
5
 
26
- BASE PATH
27
- :base_path
28
6
 
29
- Specifies where to store local files like the server log, cached gem
30
- files, and the database (when using SQLite). If the default is being
31
- used, the directory will be created if it does not exist. Any other
32
- directory needs to be created ahead of time and be writable to the Gem-
33
- stash server process. Specifying the :base_path via gemstash setup
34
- (gemstash help setup.1) will create the directory for you.
35
7
 
36
- DEFAULT VALUE
37
- ~/.gemstash
38
8
 
39
- VALID VALUES
40
- Any valid path
41
9
 
42
- CACHE TYPE
43
- :cache_type
44
10
 
45
- Specifies how to cache values other than gem files (such as gem depen-
46
- dencies). memory will use an in memory cache while memcached will
47
- point to 1 or more Memcached servers. Use the :memcached_servers con-
48
- figuration key for specifying where the Memcached server(s) are.
49
11
 
50
- DEFAULT VALUE
51
- memory
52
12
 
53
- VALID VALUES
54
- memory, memcached
55
13
 
56
- MEMCACHED SERVERS
57
- :memcached_servers
58
14
 
59
- Specifies the Memcached servers to connect to when using memcached for
60
- the :cache_type. Only used when memcached is used for :cache_type.
61
15
 
62
- DEFAULT VALUE
63
- localhost:11211
64
16
 
65
- VALID VALUES
66
- A comma delimited list of Memcached servers
67
17
 
68
- DB ADAPTER
69
- :db_adapter
70
18
 
71
- Specifies what database adapter to use. When sqlite3 is used, the
72
- database will be located at gemstash.db within the directory specified
73
- by :base_path. The database will automatically be created when using
74
- sqlite3. When postgres, mysql, or mysql2 is used, the database to con-
75
- nect to must be specified in the :db_url configuration key. The data-
76
- base must already be created when using anything other than sqlite3.
77
19
 
78
- DEFAULT VALUE
79
- sqlite3
80
20
 
81
- VALID VALUES
82
- sqlite3, postgres, mysql, mysql2
83
21
 
84
- DB URL
85
- :db_url
86
22
 
87
- Specifies the database to connect to when using postgres, mysql, or
88
- mysql2 for the :db_adapter. Only used when the :db_adapter is not
89
- sqlite3.
90
23
 
91
- DEFAULT VALUE
92
- None
93
24
 
94
- VALID VALUES
95
- A valid database URL for the Sequel gem (http://sequel.jeremye-
96
- vans.net/)
97
25
 
98
- DB CONNECTION OPTIONS
99
- :db_connection_options
100
26
 
101
- Specifies additional Sequel.connect options to use. Note that any op-
102
- tions here are merged in with the default options, so you need not
103
- specify the max_connections if you customize this option.
104
27
 
105
- DEFAULT VALUE
106
- { max_connections: 1 } for sqlite3 adapter, { max_connections: con-
107
- fig[:puma_threads] + 1 } for any other adapter.
108
28
 
109
- VALID VALUES
110
- A valid connection options Hash for the Sequel.connect (http://se-
111
- quel.jeremyevans.net/rdoc/files/doc/opening_databases_rdoc.html#label-
112
- General+connection+options) method.
113
29
 
114
- RUBYGEMS URL
115
- :rubygems_url
116
30
 
117
- Specifies the default gem source URL. When any API endpoint is called
118
- without a /private or /upstream/<url> prefix, this URL will be used to
119
- fetch the result. This value can be safely changed even if there are
120
- already gems stashed for the previous value.
121
31
 
122
- DEFAULT VALUE
123
- https://rubygems.org
124
32
 
125
- VALID VALUES
126
- A valid gem source URL
127
33
 
128
- PUMA THREADS
129
- :puma_threads
130
34
 
131
- Specifies the number of threads used for the Gemstash server.
132
35
 
133
- DEFAULT VALUE
134
- 16
135
36
 
136
- VALID VALUES
137
- Integer value with a minimum of 1
138
37
 
139
- BIND ADDRESS
140
- :bind
141
38
 
142
- Specifies the binding used to start the Gemstash server. Keep in mind
143
- the user starting Gemstash needs to have access to bind in this manner.
144
- For example, if you use a port below 1024, you will need to run Gem-
145
- stash as the root user.
146
39
 
147
- DEFAULT VALUE
148
- tcp://0.0.0.0:9292
149
40
 
150
- VALID VALUES
151
- Any valid binding that is supported by Puma
152
- (https://github.com/puma/puma#binding-tcp--sockets)
153
41
 
154
- PROTECTED FETCH
155
- :protected_fetch
156
42
 
157
- Tells Gemstash to authenticate via an API key before allowing the
158
- fetching of private gems and specs. The default behavior is to allow
159
- unauthenticated download of private gems and specs.
160
43
 
161
- DEFAULT VALUE
162
- false
163
44
 
164
- VALID VALUES
165
- Boolean values true or false
166
45
 
167
- FETCH TIMEOUT
168
- :fetch_timeout
169
46
 
170
- The timeout setting for fetching gems. Fetching gems over a slow con-
171
- nection may cause timeout errors. If you experience timeout errors,
172
- you may want to increase this value. The default is 20 seconds.
173
47
 
174
- DEFAULT VALUE
175
- 20
176
48
 
177
- VALID VALUES
178
- Integer value with a minimum of 1
179
49
 
180
- LOG FILE
181
- :log_file
182
50
 
183
- Indicates the name of the file to use for logging. The file will be
184
- placed in the base path (gemstash help configuration.5).
185
51
 
186
- DEFAULT VALUE
187
- server.log
188
52
 
189
- VALID VALUES
190
- Any valid file name, or :stdout to log to $stdout
191
53
 
192
- Note: Using :stdout for the :log_file requires running with --no-daemo-
193
- nize (gemstash help start.1).
194
54
 
195
55
 
196
56
 
197
- October 13, 2015 gemstash-configuration(5)
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+