gemstash 2.2.2 → 2.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +61 -17
  3. data/lib/gemstash/authorization.rb +5 -2
  4. data/lib/gemstash/cli/authorize.rb +42 -1
  5. data/lib/gemstash/cli/setup.rb +2 -2
  6. data/lib/gemstash/cli/start.rb +5 -25
  7. data/lib/gemstash/cli.rb +6 -2
  8. data/lib/gemstash/config.ru +0 -2
  9. data/lib/gemstash/configuration.rb +5 -0
  10. data/lib/gemstash/db/authorization.rb +3 -3
  11. data/lib/gemstash/env.rb +0 -11
  12. data/lib/gemstash/gem_source/upstream_source.rb +15 -0
  13. data/lib/gemstash/logging.rb +14 -2
  14. data/lib/gemstash/man/gemstash-authorize.1 +21 -33
  15. data/lib/gemstash/man/gemstash-authorize.1.txt +20 -16
  16. data/lib/gemstash/man/gemstash-configuration.5 +61 -119
  17. data/lib/gemstash/man/gemstash-configuration.5.txt +58 -65
  18. data/lib/gemstash/man/gemstash-customize.7 +60 -103
  19. data/lib/gemstash/man/gemstash-customize.7.txt +52 -56
  20. data/lib/gemstash/man/gemstash-debugging.7 +11 -31
  21. data/lib/gemstash/man/gemstash-debugging.7.txt +8 -13
  22. data/lib/gemstash/man/gemstash-deploy.7 +15 -39
  23. data/lib/gemstash/man/gemstash-deploy.7.txt +18 -22
  24. data/lib/gemstash/man/gemstash-mirror.7 +10 -31
  25. data/lib/gemstash/man/gemstash-mirror.7.txt +6 -10
  26. data/lib/gemstash/man/gemstash-multiple-sources.7 +72 -44
  27. data/lib/gemstash/man/gemstash-multiple-sources.7.txt +66 -22
  28. data/lib/gemstash/man/gemstash-private-gems.7 +51 -102
  29. data/lib/gemstash/man/gemstash-private-gems.7.txt +35 -39
  30. data/lib/gemstash/man/gemstash-readme.7 +42 -88
  31. data/lib/gemstash/man/gemstash-readme.7.txt +43 -48
  32. data/lib/gemstash/man/gemstash-setup.1 +13 -33
  33. data/lib/gemstash/man/gemstash-setup.1.txt +13 -17
  34. data/lib/gemstash/man/gemstash-start.1 +5 -29
  35. data/lib/gemstash/man/gemstash-start.1.txt +6 -14
  36. data/lib/gemstash/man/gemstash-status.1 +5 -23
  37. data/lib/gemstash/man/gemstash-status.1.txt +6 -10
  38. data/lib/gemstash/man/gemstash-stop.1 +5 -23
  39. data/lib/gemstash/man/gemstash-stop.1.txt +6 -10
  40. data/lib/gemstash/man/gemstash-version.1 +4 -24
  41. data/lib/gemstash/man/gemstash-version.1.txt +3 -7
  42. data/lib/gemstash/migrations/05_authorization_names.rb +10 -0
  43. data/lib/gemstash/upstream.rb +33 -2
  44. data/lib/gemstash/version.rb +1 -1
  45. data/lib/gemstash.rb +1 -0
  46. metadata +35 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 883f183c2cf5a6ca30759bfab7d7c7365690582c638245fe2f41a7c0b9983664
4
- data.tar.gz: a569afac24f8d256b663e01094ca66b5c60692e0496234ddbf4b61c15feac901
3
+ metadata.gz: bd46773c2778aa8664f4972184d669f2c92a6b8c5a2bef94353e86f86f407a4d
4
+ data.tar.gz: 4aa4859b8283f044b335e009ad6264538ff980c1b7c1be8279e3fd084d9cf1f3
5
5
  SHA512:
6
- metadata.gz: 3d51cbb59194b727c963e67fbdadbe013cea2e5edea651c10d0564eb21ee231023d0ca0c3c45f74b0550eee0474a7218b83fd72d51da425557ee375f062fe03d
7
- data.tar.gz: d2dfaa9aed272d9685a96d17429b3e68ba1ac6328f4fc6175ebaff490176dfcecb44658cec69105e9ba8dc41ab5b30fd152035f874bd57d83b60195fc65922ba
6
+ metadata.gz: 5a8754257c4884e036c475621ebd6e2ca80033031494ca4f744ac4683cdabf5fba8c58e9ec9c5221f28d98fa5d4e699d400b7c3a80acb720e4fd939a6ba72671
7
+ data.tar.gz: 42f293520533a0681bbf558209c10748052938664dd51bb598f28e4bf8f52d49a781a0644b1ac4f65d6b76989fb7a2865f230eb5b5b9d50889ca4579ed02f795
data/CHANGELOG.md CHANGED
@@ -1,29 +1,81 @@
1
+ ## 2.7.1 (2023-10-12)
2
+
3
+ ### Fixes
4
+
5
+ - Reinstate NOOP --daemonize and --no-daemonize that warn about them doing nothing. ([#381](https://github.com/rubygems/gemstash/pull/381) [@olleolleolle](https://github.com/olleolleolle))
6
+
7
+ ## 2.7.0 (2023-10-08)
8
+
9
+ ### Fixes
10
+
11
+ - Fix uninitialized constant error when using Redis cache ([#375](https://github.com/rubygems/gemstash/pull/375), [@chris72205](https://github.com/chris72205))
12
+ - Remove --daemonize option, no longer supported by Puma. ([#359](https://github.com/rubygems/gemstash/issues/359) [@olleolleolle](https://github.com/olleolleolle))
13
+
14
+ ## 2.6.0 (2023-09-30)
15
+
16
+ ### Changes
17
+
18
+ - Support `GEMSTASH_CONFIG` environment variable ([#369](https://github.com/rubygems/gemstash/pull/369), [@kyrofa](https://github.com/kyrofa))
19
+
20
+ ## 2.5.0 (2023-09-28)
21
+
22
+ ### Changes
23
+
24
+ - Add support for upstream auth with ENV variables ([#339](https://github.com/rubygems/gemstash/pull/339), [@CiTroNaK](https://github.com/CiTroNaK))
25
+
26
+ ## 2.4.0 (2023-09-27)
27
+
28
+ ### Changes
29
+
30
+ - Support naming and listing authorizations ([#365](https://github.com/rubygems/gemstash/pull/365), [@kyrofa](https://github.com/kyrofa))
31
+
32
+ ## 2.3.2 (2023-09-14)
33
+
34
+ ### Fixes
35
+
36
+ - Require a now-needed file for Puma 6. Thanks, @ktreis! ([#362](https://github.com/rubygems/gemstash/pull/362), [@olleolleolle](https://github.com/olleolleolle))
37
+
38
+ ## 2.3.1 (2023-09-05)
39
+
40
+ ### Fixes
41
+
42
+ - Reinstate Ruby Central in README. ([#353](https://github.com/rubygems/gemstash/pull/353), [@olleolleolle](https://github.com/olleolleolle))
43
+ - Implement Puma 5-required logger method `#sync` ([#355](https://github.com/rubygems/gemstash/pull/355), [@ball-hayden](https://github.com/ball-hayden))
44
+
45
+ ## 2.3.0 (2023-08-30)
46
+
47
+ ### Changes
48
+
49
+ - Support Puma 6. ([#335](https://github.com/rubygems/gemstash/pull/335), [@MSP-Greg](https://github.com/MSP-Greg))
50
+ - Make UpstreamSource intermediate specs from upstream. ([#337](https://github.com/rubygems/gemstash/pull/337), [@tedgarb](https://github.com/tedgarb))
51
+ - Mention RubyCentral. ([#338](https://github.com/rubygems/gemstash/pull/338), [@adarsh](https://github.com/adarsh))
52
+ - Configure Dependabot. ([#341](https://github.com/rubygems/gemstash/pull/341), [@olleolleolle](https://github.com/olleolleolle))
53
+
1
54
  ## 2.2.2 (2023-03-03)
2
55
 
3
56
  ### Changes
4
57
 
5
- - Allow newer versions of the `activesupport` dependency ([#332](https://github.com/rubygems/gemstash/pull/332), [@kyrofa][])
58
+ - Allow newer versions of the `activesupport` dependency ([#332](https://github.com/rubygems/gemstash/pull/332), [@kyrofa](https://github.com/kyrofa))
6
59
 
7
60
  ## 2.2.1 (2023-02-09)
8
61
 
9
62
  ### Bugfixes
10
63
 
11
- - Add permitted classes to a `YAML.load` in cache ([#329](https://github.com/rubygems/gemstash/pull/329), [@SocalNick][])
64
+ - Add permitted classes to a `YAML.load` in cache ([#329](https://github.com/rubygems/gemstash/pull/329), [@SocalNick](https://github.com/SocialNick))
12
65
 
13
66
  ## 2.2.0 (2023-01-27)
14
67
 
15
68
  ### Bugfixes
16
69
 
17
- - Respect auth set in upstream host uri ([#317](https://github.com/rubygems/gemstash/pull/317), [@jebentier][])
18
- - Change the response code for "/versions" from 403 to 404 ([#326](https://github.com/rubygems/gemstash/pull/326), [@hendric-dev][])
70
+ - Respect auth set in upstream host uri ([#317](https://github.com/rubygems/gemstash/pull/317), [@jebentier](https://github.com/jbentier))
71
+ - Change the response code for "/versions" from 403 to 404 ([#326](https://github.com/rubygems/gemstash/pull/326), [@hendric-dev](https://github.com/hendric-dev))
19
72
 
20
73
  ### Changes
21
74
 
22
- - Support Ruby 3 ([#312](https://github.com/rubygems/gemstash/pull/312), [@tonytonyjan][])
23
- - Drop support for EOL Ruby versions 2.4, 2.5, 2.6 ([#328](https://github.com/rubygems/gemstash/pull/328), [@indirect][])
24
- - Update `dalli` dependency ([#324](https://github.com/rubygems/gemstash/pull/324), [@indirect][])
25
-
26
- Also thanks to: [@indirect][] and [@hsbt][] who fixed CI issues and lint warnings.
75
+ - Support Ruby 3 ([#312](https://github.com/rubygems/gemstash/pull/312), [@tonytonyjan](https://github.com/tonytonyjan))
76
+ - Drop support for EOL Ruby versions 2.4, 2.5, 2.6 ([#328](https://github.com/rubygems/gemstash/pull/328), [@indirect](https://github.com/indirect))
77
+ - Update `dalli` dependency ([#324](https://github.com/rubygems/gemstash/pull/324), [@indirect](https://github.com/indirect))
78
+ - Also thanks to: [@indirect][] and [@hsbt][] who fixed CI issues and lint warnings.
27
79
 
28
80
  ## 2.1.0 (2020-02-26)
29
81
 
@@ -262,11 +314,3 @@ Also thanks to: [@indirect][] and [@hsbt][] who fixed CI issues and lint warning
262
314
  - Various fixes 2 ([#47](https://github.com/bundler/gemstash/pull/47), [@smellsblue](https://github.com/smellsblue))
263
315
  - Various fixes 3 ([#49](https://github.com/bundler/gemstash/pull/49), [@smellsblue](https://github.com/smellsblue))
264
316
  - Add Gemtash logo ([#50](https://github.com/bundler/gemstash/pull/50), [@jonathanrieta](https://github.com/jonathanrieta))
265
-
266
- [@SocalNick]: https://github.com/SocalNick
267
- [@hendric-dev]: https://github.com/hendric-dev
268
- [@hsbt]: https://github.com/hsbt
269
- [@indirect]: https://github.com/indirect
270
- [@jebentier]: https://github.com/jebentier
271
- [@kyrofa]: https://github.com/kyrofa
272
- [@tonytonyjan]: https://github.com/tonytonyjan
@@ -13,7 +13,9 @@ module Gemstash
13
13
  extend Gemstash::Logging
14
14
  VALID_PERMISSIONS = %w[push yank fetch].freeze
15
15
 
16
- def self.authorize(auth_key, permissions)
16
+ attr_reader :name
17
+
18
+ def self.authorize(auth_key, permissions, name = nil)
17
19
  raise "Authorization key is required!" if auth_key.to_s.strip.empty?
18
20
  raise "Permissions are required!" if permissions.to_s.empty?
19
21
 
@@ -25,7 +27,7 @@ module Gemstash
25
27
  permissions = permissions.join(",")
26
28
  end
27
29
 
28
- Gemstash::DB::Authorization.insert_or_update(auth_key, permissions)
30
+ Gemstash::DB::Authorization.insert_or_update(auth_key, permissions, name)
29
31
  gemstash_env.cache.invalidate_authorization(auth_key)
30
32
  log.info "Authorization '#{auth_key}' updated with access to '#{permissions}'"
31
33
  end
@@ -62,6 +64,7 @@ module Gemstash
62
64
 
63
65
  def initialize(record)
64
66
  @auth_key = record.auth_key
67
+ @name = record.name
65
68
  @all = record.permissions == "all"
66
69
  @permissions = Set.new(record.permissions.split(","))
67
70
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  require "gemstash"
4
4
  require "securerandom"
5
+ require "terminal-table"
5
6
 
6
7
  module Gemstash
7
8
  class CLI
@@ -12,8 +13,13 @@ module Gemstash
12
13
  prepare
13
14
  setup_logging
14
15
 
16
+ # Catch invalid option combinations
17
+ raise Gemstash::CLI::Error.new(@cli, "--remove and --list cannot both be used") if @cli.options[:remove] && @cli.options[:list]
18
+
15
19
  if @cli.options[:remove]
16
20
  remove_authorization
21
+ elsif @cli.options[:list]
22
+ list_authorizations
17
23
  else
18
24
  save_authorization
19
25
  end
@@ -26,6 +32,8 @@ module Gemstash
26
32
  end
27
33
 
28
34
  def remove_authorization
35
+ raise Gemstash::CLI::Error.new(@cli, "--name cannot be used with --remove") if @cli.options[:remove] && @cli.options[:name]
36
+
29
37
  unless @args.empty?
30
38
  raise Gemstash::CLI::Error.new(@cli, "To remove individual permissions, you do not need --remove
31
39
  Instead just authorize with the new set of permissions")
@@ -43,7 +51,24 @@ Instead just authorize with the new set of permissions")
43
51
  end
44
52
  end
45
53
 
46
- Gemstash::Authorization.authorize(auth_key, permissions)
54
+ begin
55
+ name = @cli.options[:name]
56
+ Gemstash::Authorization.authorize(auth_key, permissions, name)
57
+ rescue Sequel::UniqueConstraintViolation => e
58
+ raise unless name && e.message.include?("authorizations.name")
59
+
60
+ raise Gemstash::CLI::Error.new(@cli, "Authorization with name '#{name}' already exists")
61
+ end
62
+ end
63
+
64
+ def list_authorizations
65
+ raise Gemstash::CLI::Error.new(@cli, "--key and --name cannot both be used with --list") if @cli.options[:name] && @cli.options[:key]
66
+
67
+ rows = map_authorizations(@cli.options[:key], @cli.options[:name]) do |authorization|
68
+ [authorization.name, authorization.auth_key, authorization.permissions]
69
+ end
70
+
71
+ @cli.say Terminal::Table.new :headings => %w[Name Key Permissions], :rows => rows
47
72
  end
48
73
 
49
74
  def auth_key(allow_generate: true)
@@ -66,6 +91,22 @@ Instead just authorize with the new set of permissions")
66
91
  @args
67
92
  end
68
93
  end
94
+
95
+ def map_authorizations(key = nil, name = nil, &block)
96
+ return Gemstash::DB::Authorization.map(&block) unless name || key
97
+
98
+ authorization = if name
99
+ Gemstash::DB::Authorization[name: name].tap do |authorization|
100
+ raise Gemstash::CLI::Error.new(@cli, "No authorization named '#{name}'") unless authorization
101
+ end
102
+ else
103
+ Gemstash::DB::Authorization[auth_key: key].tap do |authorization|
104
+ raise Gemstash::CLI::Error.new(@cli, "No authorization with key '#{key}'") unless authorization
105
+ end
106
+ end
107
+
108
+ [yield(authorization)]
109
+ end
69
110
  end
70
111
  end
71
112
  end
@@ -90,8 +90,8 @@ module Gemstash
90
90
 
91
91
  def ask_redis_details
92
92
  say_current_config(:redis_servers, "Current Redis servers")
93
- servers = @cli.ask "What is the comma-separated list of Redis servers? [localhost:6379]"
94
- servers = "localhost:6379" if servers.empty?
93
+ servers = @cli.ask "What is the comma-separated list of Redis servers? [redis://localhost:6379]"
94
+ servers = "redis://localhost:6379" if servers.empty?
95
95
  @config[:redis_servers] = servers
96
96
  end
97
97
 
@@ -10,47 +10,27 @@ module Gemstash
10
10
  class Start < Gemstash::CLI::Base
11
11
  def run
12
12
  prepare
13
- setup_logging
14
- store_daemonized
15
13
  @cli.say("Starting gemstash!", :green)
14
+ case @cli.options[:daemonize]
15
+ when false then warn "The --no-daemonize option was removed and has no effect."
16
+ when true then warn "The --daemonize option was removed and has no effect."
17
+ end
16
18
  Puma::CLI.new(args, Gemstash::Logging::StreamLogger.puma_events).run
17
19
  end
18
20
 
19
21
  private
20
22
 
21
- def setup_logging
22
- return unless daemonize?
23
-
24
- Gemstash::Logging.setup_logger(gemstash_env.log_file)
25
- end
26
-
27
- def store_daemonized
28
- Gemstash::Env.daemonized = daemonize?
29
- end
30
-
31
- def daemonize?
32
- @cli.options[:daemonize]
33
- end
34
-
35
23
  def puma_config
36
24
  File.expand_path("../puma.rb", __dir__)
37
25
  end
38
26
 
39
27
  def args
40
- config_args + pidfile_args + daemonize_args
28
+ config_args + pidfile_args
41
29
  end
42
30
 
43
31
  def config_args
44
32
  ["--config", puma_config]
45
33
  end
46
-
47
- def daemonize_args
48
- if daemonize?
49
- ["--daemon"]
50
- else
51
- []
52
- end
53
- end
54
34
  end
55
35
  end
56
36
  end
data/lib/gemstash/cli.rb CHANGED
@@ -51,10 +51,14 @@ module Gemstash
51
51
  desc "authorize [PERMISSIONS...]", "Add authorizations to push/yank private gems"
52
52
  method_option :remove, :type => :boolean, :default => false, :desc =>
53
53
  "Remove an authorization key"
54
+ method_option :list, :type => :boolean, :default => false, :desc =>
55
+ "List existing authorization keys"
54
56
  method_option :config_file, :type => :string, :desc =>
55
57
  "Config file to save to"
56
58
  method_option :key, :type => :string, :desc =>
57
59
  "Authorization key to create/update/delete (optional unless deleting)"
60
+ method_option :name, :type => :string, :desc =>
61
+ "Name of the key (optional)"
58
62
  def authorize(*args)
59
63
  Gemstash::CLI::Authorize.new(self, *args).run
60
64
  end
@@ -71,8 +75,8 @@ module Gemstash
71
75
  end
72
76
 
73
77
  desc "start", "Starts your gemstash server"
74
- method_option :daemonize, :type => :boolean, :default => true, :desc =>
75
- "Daemonize the server"
78
+ method_option :daemonize, :type => :boolean, :default => nil, :desc =>
79
+ "No effect - functionality removed, option kept for compatibility"
76
80
  method_option :config_file, :type => :string, :desc =>
77
81
  "Config file to load when starting"
78
82
  def start
@@ -6,8 +6,6 @@ require "puma/commonlogger"
6
6
  use Rack::Deflater
7
7
  use Gemstash::Logging::RackMiddleware
8
8
 
9
- use Puma::CommonLogger, Gemstash::Logging::StreamLogger.for_stdout if Gemstash::Env.daemonized?
10
-
11
9
  use Gemstash::Env::RackMiddleware, Gemstash::Env.current
12
10
  use Gemstash::GemSource::RackMiddleware
13
11
  use Gemstash::Health::RackMiddleware
@@ -75,6 +75,11 @@ module Gemstash
75
75
  private
76
76
 
77
77
  def default_file
78
+ # Support the config file being specified via environment variable
79
+ gemstash_config = ENV["GEMSTASH_CONFIG"]
80
+ return gemstash_config if gemstash_config
81
+
82
+ # If no environment variable is used, fall back to the normal defaults
78
83
  File.exist?("#{DEFAULT_FILE}.erb") ? "#{DEFAULT_FILE}.erb" : DEFAULT_FILE
79
84
  end
80
85
 
@@ -6,14 +6,14 @@ module Gemstash
6
6
  module DB
7
7
  # Sequel model for authorizations table.
8
8
  class Authorization < Sequel::Model
9
- def self.insert_or_update(auth_key, permissions)
9
+ def self.insert_or_update(auth_key, permissions, name = nil)
10
10
  db.transaction do
11
11
  record = self[auth_key: auth_key]
12
12
 
13
13
  if record
14
- record.update(permissions: permissions)
14
+ record.update(permissions: permissions, name: name)
15
15
  else
16
- create(auth_key: auth_key, permissions: permissions)
16
+ create(auth_key: auth_key, permissions: permissions, name: name)
17
17
  end
18
18
  end
19
19
  end
data/lib/gemstash/env.rb CHANGED
@@ -59,17 +59,6 @@ module Gemstash
59
59
  Thread.current[:gemstash_env] = value
60
60
  end
61
61
 
62
- def self.daemonized?
63
- raise "Daemonized hasn't been set yet!" if @daemonized.nil?
64
-
65
- @daemonized
66
- end
67
-
68
- def self.daemonized=(value)
69
- value = false if value.nil?
70
- @daemonized = value
71
- end
72
-
73
62
  def config
74
63
  @config ||= Gemstash::Configuration.new
75
64
  end
@@ -128,6 +128,21 @@ module Gemstash
128
128
  serve_cached(id, :gem)
129
129
  end
130
130
 
131
+ def serve_latest_specs
132
+ http_client = http_client_for(upstream)
133
+ http_client.get("latest_specs.4.8.gz")
134
+ end
135
+
136
+ def serve_prerelease_specs
137
+ http_client = http_client_for(upstream)
138
+ http_client.get("prerelease_specs.4.8.gz")
139
+ end
140
+
141
+ def serve_specs
142
+ http_client = http_client_for(upstream)
143
+ http_client.get("specs.4.8.gz")
144
+ end
145
+
131
146
  private
132
147
 
133
148
  def serve_cached(id, resource_type)
@@ -1,7 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "logger"
4
- require "puma/events"
4
+
5
+ begin
6
+ require "puma/detect"
7
+ require "puma/log_writer" # Puma 6
8
+ rescue LoadError
9
+ require "puma/events"
10
+ end
5
11
 
6
12
  module Gemstash
7
13
  # :nodoc:
@@ -62,7 +68,9 @@ module Gemstash
62
68
  # Logger that looks like a stream, for Puma and Rack to log to.
63
69
  class StreamLogger
64
70
  def self.puma_events
65
- Puma::Events.new(for_stdout, for_stderr)
71
+ # Puma 6 removed logging from Events and placed it in LogWriter
72
+ klass = Puma.const_defined?(:LogWriter) ? Puma::LogWriter : Puma::Events
73
+ klass.new(for_stdout, for_stderr)
66
74
  end
67
75
 
68
76
  def self.for_stdout
@@ -81,6 +89,10 @@ module Gemstash
81
89
 
82
90
  def sync=(_value); end
83
91
 
92
+ def sync
93
+ false
94
+ end
95
+
84
96
  def write(message)
85
97
  Gemstash::Logging.logger.add(@level, message)
86
98
  end
@@ -1,66 +1,54 @@
1
1
  <!-- Automatically generated by Pandoc -->
2
- .\" Automatically generated by Pandoc 3.1
2
+ .\" Automatically generated by Pandoc 3.1.8
3
3
  .\"
4
- .\" Define V font for inline verbatim, using C font in formats
5
- .\" that render this, and otherwise B font.
6
- .ie "\f[CB]x\f[]"x" \{\
7
- . ftr V B
8
- . ftr VI BI
9
- . ftr VB B
10
- . ftr VBI BI
11
- .\}
12
- .el \{\
13
- . ftr V CR
14
- . ftr VI CI
15
- . ftr VB CB
16
- . ftr VBI CBI
17
- .\}
18
4
  .TH "gemstash-authorize" "1" "October 9, 2015" "" ""
19
- .hy
20
5
  .SH Name
21
- .PP
22
6
  gemstash-authorize - Adds or removes authorization to interact with
23
7
  privately stored gems
24
8
  .SH Synopsis
25
- .PP
26
- \f[V]gemstash authorize [permissions] [--remove] [--key SECURE_KEY] [--config-file FILE]\f[R]
9
+ \f[CR]gemstash authorize [permissions] [--remove] [--list] [--key SECURE_KEY] [--name NAME] [--config-file FILE]\f[R]
27
10
  .SH Description
28
- .PP
29
11
  Adds or removes authorization to interact with privately stored gems.
30
12
  .PP
31
13
  Any arguments will be used as specific permissions.
32
- Valid permissions include \f[V]push\f[R], \f[V]yank\f[R], and
33
- \f[V]fetch\f[R].
14
+ Valid permissions include \f[CR]push\f[R], \f[CR]yank\f[R], and
15
+ \f[CR]fetch\f[R].
34
16
  If no permissions are provided, then all permissions will be granted
35
17
  (including any that may be added in future versions of Gemstash).
36
18
  .SS Usage
37
19
  .IP
38
- .nf
39
- \f[C]
20
+ .EX
40
21
  gemstash authorize
41
22
  gemstash authorize push yank
23
+ gemstash authorize push --name my-auth
42
24
  gemstash authorize yank --key <secure-key>
43
25
  gemstash authorize --remove --key <secure-key>
44
- \f[R]
45
- .fi
26
+ gemstash authorize --list
27
+ .EE
46
28
  .SH Options
47
29
  .IP \[bu] 2
48
- \f[V]--config-file FILE\f[R]: Specify the config file to use.
30
+ \f[CR]--config-file FILE\f[R]: Specify the config file to use.
49
31
  If you aren\[cq]t using the default config file at
50
- \f[V]\[ti]/.gemstash/config.yml\f[R] or
51
- \f[V]\[ti]/.gemstash/config.yml.erb\f[R], then you must specify the
32
+ \f[CR]\[ti]/.gemstash/config.yml\f[R] or
33
+ \f[CR]\[ti]/.gemstash/config.yml.erb\f[R], then you must specify the
52
34
  config file via this option.
53
35
  .IP \[bu] 2
54
- \f[V]--key SECURE_KEY\f[R]: Specify the API key to affect.
36
+ \f[CR]--key SECURE_KEY\f[R]: Specify the API key to affect.
55
37
  This should be the actual key value, not a name.
56
- This option is required when using \f[V]--remove\f[R] but is optional
38
+ This option is required when using \f[CR]--remove\f[R] but is optional
57
39
  otherwise.
58
40
  If adding an authorization, using this will either create or update the
59
41
  permissions for the specified API key.
60
42
  If missing, a new API key will always be generated.
61
43
  Note that a key can only have a maximum length of 255 chars.
62
44
  .IP \[bu] 2
63
- \f[V]--remove\f[R]: Remove an authorization rather than add or update
45
+ \f[CR]--name\f[R]: Name of the authorization.
46
+ Purely for ease of identification, not required.
47
+ .IP \[bu] 2
48
+ \f[CR]--remove\f[R]: Remove an authorization rather than add or update
64
49
  one.
65
50
  When removing, permission values are not allowed.
66
- The \f[V]--key <secure-key>\f[R] option is required.
51
+ The \f[CR]--key <secure-key>\f[R] option is required.
52
+ .IP \[bu] 2
53
+ \f[CR]--list\f[R]: List current authorizations.
54
+ Provide \f[CR]--name\f[R] or \f[CR]--key\f[R] to show only one result.
@@ -1,6 +1,4 @@
1
- gemstash-authorize(1) gemstash-authorize(1)
2
-
3
-
1
+ 4mgemstash-authorize24m(1) 4mgemstash-authorize24m(1)
4
2
 
5
3
  <!-- Automatically generated by Pandoc -->
6
4
 
@@ -9,40 +7,46 @@ gemstash-authorize(1) gemstash-authorize(1)
9
7
  privately stored gems
10
8
 
11
9
  1mSynopsis0m
12
- 1mgemstash authorize [permissions] [--remove] [--key SECURE_KEY] [--con-0m
13
- 1mfig-file FILE]0m
10
+ gemstash authorize [permissions] [--remove] [--list] [--key SECURE_KEY]
11
+ [--name NAME] [--config-file FILE]
14
12
 
15
13
  1mDescription0m
16
14
  Adds or removes authorization to interact with privately stored gems.
17
15
 
18
- Any arguments will be used as specific permissions. Valid permissions
19
- include 1mpush22m, 1myank22m, and 1mfetch22m. If no permissions are provided, then
16
+ Any arguments will be used as specific permissions. Valid permissions
17
+ include push, yank, and fetch. If no permissions are provided, then
20
18
  all permissions will be granted (including any that may be added in fu-
21
19
  ture versions of Gemstash).
22
20
 
23
21
  1mUsage0m
24
22
  gemstash authorize
25
23
  gemstash authorize push yank
24
+ gemstash authorize push --name my-auth
26
25
  gemstash authorize yank --key <secure-key>
27
26
  gemstash authorize --remove --key <secure-key>
27
+ gemstash authorize --list
28
28
 
29
29
  1mOptions0m
30
- o 1m--config-file FILE22m: Specify the config file to use. If you aren't
31
- using the default config file at 1m~/.gemstash/config.yml 22mor 1m~/.gem-0m
32
- 1mstash/config.yml.erb22m, then you must specify the config file via this
30
+ o --config-file FILE: Specify the config file to use. If you aren't
31
+ using the default config file at ~/.gemstash/config.yml or ~/.gem-
32
+ stash/config.yml.erb, then you must specify the config file via this
33
33
  option.
34
34
 
35
- o 1m--key SECURE_KEY22m: Specify the API key to affect. This should be the
35
+ o --key SECURE_KEY: Specify the API key to affect. This should be the
36
36
  actual key value, not a name. This option is required when using
37
- 1m--remove 22mbut is optional otherwise. If adding an authorization, us-
37
+ --remove but is optional otherwise. If adding an authorization, us-
38
38
  ing this will either create or update the permissions for the speci-
39
39
  fied API key. If missing, a new API key will always be generated.
40
40
  Note that a key can only have a maximum length of 255 chars.
41
41
 
42
- o 1m--remove22m: Remove an authorization rather than add or update one.
43
- When removing, permission values are not allowed. The 1m--key <secure-0m
44
- 1mkey> 22moption is required.
42
+ o --name: Name of the authorization. Purely for ease of identifica-
43
+ tion, not required.
45
44
 
45
+ o --remove: Remove an authorization rather than add or update one.
46
+ When removing, permission values are not allowed. The --key <secure-
47
+ key> option is required.
46
48
 
49
+ o --list: List current authorizations. Provide --name or --key to show
50
+ only one result.
47
51
 
48
- October 9, 2015 gemstash-authorize(1)
52
+ October 9, 2015 4mgemstash-authorize24m(1)