Class Methods
::
lib/rubygems/commands/owner_command.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/lib/rubygems/commands/owner_command.rb, line 37
def initialize
super "owner", "Manage gem owners of a gem on the push server"
add_proxy_option
add_key_option
add_otp_option
defaults.merge! add: [], remove: []
add_option "-a", "--add NEW_OWNER", "Add an owner by user identifier" do |value, options|
options[:add] << value
end
add_option "-r", "--remove OLD_OWNER", "Remove an owner by user identifier" do |value, options|
options[:remove] << value
end
add_option "-h", "--host HOST",
"Use another gemcutter-compatible host",
" (e.g. https://rubygems.org)" do |value, options|
options[:host] = value
end
end
No documentation available
Instance Methods
lib/rubygems/commands/owner_command.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/lib/rubygems/commands/owner_command.rb, line 87
def add_owners(name, owners)
manage_owners :post, name, owners
end
No documentation available
#
lib/rubygems/commands/owner_command.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/lib/rubygems/commands/owner_command.rb, line 59
def execute
@host = options[:host]
sign_in(scope: get_owner_scope)
name = get_one_gem_name
add_owners name, options[:add]
remove_owners name, options[:remove]
show_owners name
end
No documentation available
lib/rubygems/commands/owner_command.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/lib/rubygems/commands/owner_command.rb, line 117
def get_owner_scope(method: nil)
if method == :post || options.any? && options[:add].any?
:add_owner
elsif method == :delete || options.any? && options[:remove].any?
:remove_owner
end
end
No documentation available
lib/rubygems/commands/owner_command.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/lib/rubygems/commands/owner_command.rb, line 95
def manage_owners(method, name, owners)
owners.each do |owner|
response = send_owner_request(method, name, owner)
action = method == :delete ? "Removing" : "Adding"
with_response response, "#{action} #{owner}"
rescue Gem::WebauthnVerificationError => e
raise e
rescue StandardError
# ignore early exits to allow for completing the iteration of all owners
end
end
No documentation available
lib/rubygems/commands/owner_command.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/lib/rubygems/commands/owner_command.rb, line 91
def remove_owners(name, owners)
manage_owners :delete, name, owners
end
No documentation available
lib/rubygems/commands/owner_command.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/lib/rubygems/commands/owner_command.rb, line 110
def send_owner_request(method, name, owner)
rubygems_api_request method, "api/v1/gems/#{name}/owners", scope: get_owner_scope(method: method) do |request|
request.set_form_data "email" => owner
request.add_field "Authorization", api_key
end
end
No documentation available
lib/rubygems/commands/owner_command.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/lib/rubygems/commands/owner_command.rb, line 70
def show_owners(name)
Gem.load_yaml
response = rubygems_api_request :get, "api/v1/gems/#{name}/owners.yaml" do |request|
request.add_field "Authorization", api_key
end
with_response response do |resp|
owners = Gem::SafeYAML.load clean_text(resp.body)
say "Owners for gem: #{name}"
owners.each do |owner|
say "- #{owner["email"] || owner["handle"] || owner["id"]}"
end
end
end
No documentation available