Skip to content

Error importing gems for local development #4494

@bradly

Description

@bradly

Trying to import gems locally is throwing an error:

NoMethodError: undefined method `owner' for an instance of User (NoMethodError)
/Users/bradly/code/archive/rubygems.org/app/models/pusher.rb:11:in `initialize'
/Users/bradly/code/archive/rubygems.org/lib/tasks/gemcutter.rake:21:in `new'

In the rake take we pass a new user instance to the Pusher initializer:

cutter = Pusher.new(User.new, File.open(path))

But in the Pusher class we are expecting an api_key and calling owner on it.

def initialize(api_key, body, request: nil)
@api_key = api_key
@owner = api_key.owner

Steps to Reproduce

  1. bundle exec rake "gemcutter:import:process[$gem_install_path]"

Expected Behavior

Gems should be imported

Current Behavior

Error calling .owner on a User instance

Possible Solution

Change the rake task to pass an api key instance instead of a user instance

The following worked but felt a little sketchy. Is there a better solution?

        api_key = ApiKey.first
        api_key.owner ||= User.new
        cutter = Pusher.new(ApiKey.first, File.open(path))

Environment

RubyGems version: latest code frommaster

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions