Seems this part of logic can be cleaned up. Successive `||=` doesn't feel right.

Unless `Octokit::Client.new` actually returns a falsey value, we can use something like:

```ruby
if options[:user] and options[:password]
  @api ||= Octokit::Client.new(:login => options[:user], :password => options[:password])
else
  @api ||= Octokit::Client.new(:access_token => option(:api_key))
end
```
or even
```ruby
@api ||= options[:user] && options[:password] ? Octokit::Client.new(:login => options[:user], :password => options[:password]) : Octokit::Client.new(:access_token => option(:api_key))
```