Sha256: 0b2498a9fcd5053d8b398bf313f408e73567c70c2b10055493cd5e4fe1d100ad
Contents?: true
Size: 1.71 KB
Versions: 4
Compression:
Stored size: 1.71 KB
Contents
require 'pra/pull_source' require 'pra/pull_request' require 'rest_client' require 'json' module Pra class StashPullSource < Pra::PullSource def pull_requests requests = [] repositories.each do |repo_config| requests.concat(get_repo_pull_requests(repo_config)) end return requests end def repositories @config["repositories"] end def get_repo_pull_requests(repository_config) requests = [] JSON.parse(rest_api_pull_request_resource(repository_config).get)["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 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 def rest_api_pull_request_resource(repository_config) RestClient::Resource.new(rest_api_pull_request_url(repository_config), user: @config['username'], password: @config['password'], content_type: :json, accept: :json) end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
pra-1.5.1 | lib/pra/stash_pull_source.rb |
pra-1.5.0 | lib/pra/stash_pull_source.rb |
pra-1.4.0 | lib/pra/stash_pull_source.rb |
pra-1.3.0 | lib/pra/stash_pull_source.rb |