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
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
+