class Pra::StashPullSource

Public Instance Methods

get_repo_pull_requests(repository_config) click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# File lib/pra/stash_pull_source.rb, line 16
def repositories
  @config["repositories"]
end
rest_api_pull_request_resource(repository_config) click to toggle source
# 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) click to toggle source
# 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