Class: Pra::GithubPullSource

Inherits:
PullSource show all
Defined in:
lib/pra/github_pull_source.rb

Instance Method Summary collapse

Methods inherited from PullSource

#initialize

Constructor Details

This class inherits a constructor from Pra::PullSource

Instance Method Details

#get_repo_pull_requests(repository_config) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/pra/github_pull_source.rb', line 20

def get_repo_pull_requests(repository_config)
  requests = []
  JSON.parse(rest_api_pull_request_resource(repository_config)).each do |request|
    requests << Pra::PullRequest.new(title: request["title"], from_reference: request["head"]["label"], to_reference: request["base"]["label"], author: request["user"]["login"], assignee: request["assignee"] ? request["assignee"]["login"] : nil, link: request['html_url'], service_id: 'github', repository: repository_config["repository"])
  end
  return requests
end

#pull_requestsObject



8
9
10
11
12
13
14
# File 'lib/pra/github_pull_source.rb', line 8

def pull_requests
  requests = []
  repositories.each do |repo_config|
    requests.concat(get_repo_pull_requests(repo_config))
  end
  return requests
end

#repositoriesObject



16
17
18
# File 'lib/pra/github_pull_source.rb', line 16

def repositories
  @config["repositories"]
end

#rest_api_pull_request_resource(repository_config) ⇒ Object



32
33
34
35
36
37
38
39
40
41
# File 'lib/pra/github_pull_source.rb', line 32

def rest_api_pull_request_resource(repository_config)
  conn = Faraday.new
  conn.basic_auth(@config['username'], @config['password'])
  resp = conn.get do |req|
    req.url rest_api_pull_request_url(repository_config)
    req.headers['Content-Type'] = 'application/json'
    req.headers['Accept'] = 'application/json'
  end
  resp.body
end

#rest_api_pull_request_url(repository_config) ⇒ Object



28
29
30
# File 'lib/pra/github_pull_source.rb', line 28

def rest_api_pull_request_url(repository_config)
  "#{@config['protocol']}://#{@config['host']}/repos/#{repository_config["owner"]}/#{repository_config["repository"]}/pulls"
end