Pass a options hash to Github::Client
This commit is contained in:
parent
ac1634fac9
commit
782aab1319
9 changed files with 37 additions and 27 deletions
|
@ -2,9 +2,9 @@ module Github
|
|||
class Client
|
||||
attr_reader :connection
|
||||
|
||||
def initialize(token)
|
||||
@connection = Faraday.new(url: 'https://api.github.com') do |faraday|
|
||||
faraday.authorization 'token', token
|
||||
def initialize(options)
|
||||
@connection = Faraday.new(url: options.fetch(:url)) do |faraday|
|
||||
faraday.authorization 'token', options.fetch(:token)
|
||||
faraday.adapter :net_http
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
module Github
|
||||
class Collection
|
||||
attr_reader :options
|
||||
|
||||
def initialize(options)
|
||||
@options = options
|
||||
end
|
||||
|
||||
def fetch(url, query = {})
|
||||
return [] if url.blank?
|
||||
|
||||
|
@ -16,7 +22,7 @@ module Github
|
|||
private
|
||||
|
||||
def client
|
||||
@client ||= Github::Client.new
|
||||
@client ||= Github::Client.new(options)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -27,17 +27,18 @@ module Github
|
|||
self.reset_callbacks :validate
|
||||
end
|
||||
|
||||
attr_reader :project, :repository, :cached_label_ids, :cached_user_ids, :errors
|
||||
attr_reader :project, :repository, :options, :cached_label_ids, :cached_user_ids, :errors
|
||||
|
||||
def initialize(project)
|
||||
def initialize(project, options)
|
||||
@project = project
|
||||
@repository = project.repository
|
||||
@options = options
|
||||
@cached_label_ids = {}
|
||||
@cached_user_ids = {}
|
||||
@errors = []
|
||||
end
|
||||
|
||||
def execute(owner, repo, token)
|
||||
def execute(owner, repo)
|
||||
# Fetch repository
|
||||
begin
|
||||
project.create_repository
|
||||
|
@ -53,7 +54,7 @@ module Github
|
|||
url = "/repos/#{owner}/#{repo}/labels"
|
||||
|
||||
loop do
|
||||
response = Github::Client.new.get(url)
|
||||
response = Github::Client.new(options).get(url)
|
||||
|
||||
response.body.each do |raw|
|
||||
begin
|
||||
|
@ -81,7 +82,7 @@ module Github
|
|||
url = "/repos/#{owner}/#{repo}/milestones"
|
||||
|
||||
loop do
|
||||
response = Github::Client.new.get(url, state: :all)
|
||||
response = Github::Client.new(options).get(url, state: :all)
|
||||
|
||||
response.body.each do |raw|
|
||||
begin
|
||||
|
@ -109,10 +110,10 @@ module Github
|
|||
url = "/repos/#{owner}/#{repo}/pulls"
|
||||
|
||||
loop do
|
||||
response = Github::Client.new.get(url, state: :all, sort: :created, direction: :asc)
|
||||
response = Github::Client.new(options).get(url, state: :all, sort: :created, direction: :asc)
|
||||
|
||||
response.body.each do |raw|
|
||||
pull_request = Github::Representation::PullRequest.new(project, raw)
|
||||
pull_request = Github::Representation::PullRequest.new(project, raw, options)
|
||||
merge_request = MergeRequest.find_or_initialize_by(iid: pull_request.iid, source_project_id: project.id)
|
||||
next unless merge_request.new_record? && pull_request.valid?
|
||||
|
||||
|
@ -160,10 +161,10 @@ module Github
|
|||
url = "/repos/#{owner}/#{repo}/issues"
|
||||
|
||||
loop do
|
||||
response = Github::Client.new.get(url, state: :all, sort: :created, direction: :asc)
|
||||
response = Github::Client.new(options).get(url, state: :all, sort: :created, direction: :asc)
|
||||
|
||||
response.body.each do |raw|
|
||||
representation = Github::Representation::Issue.new(raw)
|
||||
representation = Github::Representation::Issue.new(raw, options)
|
||||
|
||||
begin
|
||||
# Every pull request is an issue, but not every issue
|
||||
|
@ -215,12 +216,12 @@ module Github
|
|||
|
||||
def fetch_comments(noteable, type, url)
|
||||
loop do
|
||||
comments = Github::Client.new.get(url)
|
||||
comments = Github::Client.new(options).get(url)
|
||||
|
||||
ActiveRecord::Base.no_touching do
|
||||
comments.body.each do |raw|
|
||||
begin
|
||||
representation = Github::Representation::Comment.new(raw)
|
||||
representation = Github::Representation::Comment.new(raw, options)
|
||||
|
||||
note = Note.new
|
||||
note.project_id = project.id
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
module Github
|
||||
module Representation
|
||||
class Base
|
||||
def initialize(raw)
|
||||
def initialize(raw, options = {})
|
||||
@raw = raw
|
||||
@options = options
|
||||
end
|
||||
|
||||
def url
|
||||
|
@ -19,7 +20,7 @@ module Github
|
|||
|
||||
private
|
||||
|
||||
attr_reader :raw
|
||||
attr_reader :raw, :options
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -6,7 +6,7 @@ module Github
|
|||
end
|
||||
|
||||
def author
|
||||
@author ||= Github::Representation::User.new(raw['user'])
|
||||
@author ||= Github::Representation::User.new(raw['user'], options)
|
||||
end
|
||||
|
||||
def commit_id
|
||||
|
|
|
@ -20,13 +20,13 @@ module Github
|
|||
end
|
||||
|
||||
def author
|
||||
@author ||= Github::Representation::User.new(raw['user'])
|
||||
@author ||= Github::Representation::User.new(raw['user'], options)
|
||||
end
|
||||
|
||||
def assignee
|
||||
return unless assigned?
|
||||
|
||||
@assignee ||= Github::Representation::User.new(raw['assignee'])
|
||||
@assignee ||= Github::Representation::User.new(raw['assignee'], options)
|
||||
end
|
||||
|
||||
def assigned?
|
||||
|
|
|
@ -6,9 +6,10 @@ module Github
|
|||
delegate :user, :repo, :ref, :sha, to: :source_branch, prefix: true
|
||||
delegate :user, :exists?, :repo, :ref, :sha, :short_sha, to: :target_branch, prefix: true
|
||||
|
||||
def initialize(project, raw)
|
||||
def initialize(project, raw, options)
|
||||
@project = project
|
||||
@raw = raw
|
||||
@options = options
|
||||
end
|
||||
|
||||
def source_project
|
||||
|
|
|
@ -8,7 +8,7 @@ module Github
|
|||
def email
|
||||
return @email if defined?(@email)
|
||||
|
||||
@email = Github::User.new(username).get.fetch('email', nil)
|
||||
@email = Github::User.new(username, options).get.fetch('email', nil)
|
||||
end
|
||||
|
||||
def username
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
module Github
|
||||
class User
|
||||
attr_reader :username
|
||||
attr_reader :username, :options
|
||||
|
||||
def initialize(username)
|
||||
def initialize(username, options)
|
||||
@username = username
|
||||
@options = options
|
||||
end
|
||||
|
||||
def get
|
||||
|
@ -13,7 +14,7 @@ module Github
|
|||
private
|
||||
|
||||
def client
|
||||
@client ||= Github::Client.new
|
||||
@client ||= Github::Client.new(options)
|
||||
end
|
||||
|
||||
def user_url
|
||||
|
|
Loading…
Reference in a new issue