class PrLog::GithubRepository
Adapter for Github Api
Public Class Methods
new(name, access_token)
click to toggle source
# File lib/pr_log/github_repository.rb, line 6 def initialize(name, access_token) @name = name @client = Octokit::Client.new(access_token: access_token) end
Public Instance Methods
pull_requests_with_milestone(milestone)
click to toggle source
# File lib/pr_log/github_repository.rb, line 11 def pull_requests_with_milestone(milestone) fail_if_empty(get_issues(milestone_query(milestone))) end
Private Instance Methods
fail_if_empty(result)
click to toggle source
# File lib/pr_log/github_repository.rb, line 21 def fail_if_empty(result) return result if result.any? raise(NoPullRequestsForMilestone, 'No pull requests for milestone') end
get_issues(query)
click to toggle source
# File lib/pr_log/github_repository.rb, line 28 def get_issues(query) @client.search_issues(query, per_page: 1000)['items'].map(&:to_hash) rescue Octokit::UnprocessableEntity raise(GithubRepositoryNotFound, 'Github repository not found') end
milestone_query(milestone)
click to toggle source
# File lib/pr_log/github_repository.rb, line 17 def milestone_query(milestone) "repo:#{@name} type:pr is:merged milestone:#{milestone}" end