summaryrefslogtreecommitdiff
path: root/lib/gitlab/github_import/client.rb
diff options
context:
space:
mode:
authorValery Sizov <valery@gitlab.com>2015-02-05 16:57:27 -0800
committerValery Sizov <valery@gitlab.com>2015-02-05 21:48:21 -0800
commitb3c90dd51418d0c41df4ccd57d9480ea44b35eec (patch)
tree48135878c66cfdca4a5c1c996cd8e210bf32e157 /lib/gitlab/github_import/client.rb
parent85c2cb2a1980d494aef198c59e4f3859b2668ba3 (diff)
downloadgitlab-ce-b3c90dd51418d0c41df4ccd57d9480ea44b35eec.tar.gz
GitHub importer refactoring
Diffstat (limited to 'lib/gitlab/github_import/client.rb')
-rw-r--r--lib/gitlab/github_import/client.rb32
1 files changed, 30 insertions, 2 deletions
diff --git a/lib/gitlab/github_import/client.rb b/lib/gitlab/github_import/client.rb
index cf43d36c6c3..c9904fe8779 100644
--- a/lib/gitlab/github_import/client.rb
+++ b/lib/gitlab/github_import/client.rb
@@ -1,14 +1,42 @@
module Gitlab
module GithubImport
class Client
- attr_reader :client
+ attr_reader :client, :api
- def initialize
+ def initialize(access_token)
@client = ::OAuth2::Client.new(
config.app_id,
config.app_secret,
github_options
)
+
+ if access_token
+ ::Octokit.auto_paginate = true
+ @api = ::Octokit::Client.new(access_token: access_token)
+ end
+ end
+
+ def authorize_url(redirect_uri)
+ client.auth_code.authorize_url({
+ redirect_uri: redirect_uri,
+ scope: "repo, user, user:email"
+ })
+ end
+
+ def get_token(code)
+ client.auth_code.get_token(code).token
+ end
+
+ def method_missing(method, *args, &block)
+ if api.respond_to?(method)
+ api.send(method, *args, &block)
+ else
+ super(method, *args, &block)
+ end
+ end
+
+ def respond_to?(method)
+ api.respond_to?(method) || super
end
private