Class: Pra::StashPullSource
Instance Method Summary
collapse
Methods inherited from PullSource
#initialize
Instance Method Details
#get_repo_pull_requests(repository_config) ⇒ Object
20
21
22
23
24
25
26
|
# File 'lib/pra/stash_pull_source.rb', line 20
def get_repo_pull_requests(repository_config)
requests = []
JSON.parse(rest_api_pull_request_resource(repository_config))["values"].each do |request|
requests << Pra::PullRequest.new(title: request["title"], from_reference: request["fromRef"]["id"], to_reference: request["toRef"]["id"], assignee: request["reviewers"].length > 0 ? request["reviewers"].first["user"]["name"] : nil, author: request["author"]["user"]["name"], link: "#{@config['protocol']}://#{@config['host']}#{request['link']['url']}", service_id: 'stash', repository: repository_config["repository_slug"])
end
return requests
end
|
#pull_requests ⇒ Object
8
9
10
11
12
13
14
|
# File 'lib/pra/stash_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
|
#repositories ⇒ Object
16
17
18
|
# File 'lib/pra/stash_pull_source.rb', line 16
def repositories
@config["repositories"]
end
|
#rest_api_pull_request_resource(repository_config) ⇒ Object
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/pra/stash_pull_source.rb', line 36
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.['Content-Type'] = 'application/json'
req.['Accept'] = 'application/json'
end
resp.body
end
|
#rest_api_pull_request_url(repository_config) ⇒ Object
28
29
30
31
32
33
34
|
# File 'lib/pra/stash_pull_source.rb', line 28
def rest_api_pull_request_url(repository_config)
if repository_config.has_key?("user_slug")
"#{@config['protocol']}://#{@config['host']}/rest/api/1.0/users/#{repository_config["user_slug"]}/repos/#{repository_config["repository_slug"]}/pull-requests"
else
"#{@config['protocol']}://#{@config['host']}/rest/api/1.0/projects/#{repository_config["project_slug"]}/repos/#{repository_config["repository_slug"]}/pull-requests"
end
end
|