diff options
author | Valery Sizov <valery@gitlab.com> | 2015-02-05 16:57:27 -0800 |
---|---|---|
committer | Valery Sizov <valery@gitlab.com> | 2015-02-05 21:48:21 -0800 |
commit | b3c90dd51418d0c41df4ccd57d9480ea44b35eec (patch) | |
tree | 48135878c66cfdca4a5c1c996cd8e210bf32e157 /lib/gitlab/github_import/client.rb | |
parent | 85c2cb2a1980d494aef198c59e4f3859b2668ba3 (diff) | |
download | gitlab-ce-b3c90dd51418d0c41df4ccd57d9480ea44b35eec.tar.gz |
GitHub importer refactoring
Diffstat (limited to 'lib/gitlab/github_import/client.rb')
-rw-r--r-- | lib/gitlab/github_import/client.rb | 32 |
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 |