Class: Pra::StashPullSource

Inherits:
PullSource show all
Defined in:
lib/pra/stash_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/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_requestsObject



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

#repositoriesObject



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.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
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