class Github::Repository
Constants
- InvalidRemoteOrigin
- InvalidRepositoryDirectory
- MissingRemoteOrigin
Attributes
host[R]
name[R]
owner[R]
repository[R]
Public Class Methods
new(dir)
click to toggle source
# File lib/github/repository.rb, line 12 def initialize(dir) @repository = Rugged::Repository.new(dir) origin = @repository.remotes['origin'] raise MissingRemoteOrigin unless origin matches = origin.url.match(/\A(git@|https:\/\/)([^\/:]+)(\/|:)([^\/:]+)\/([^\/]+)\.git\z/) unless matches raise InvalidRemoteOrigin, 'Invalid remote url' end @host, @owner, @name = matches[2], matches[4], matches[5] unless Github::CLI.config.keys.include?(@host) raise InvalidRemoteOrigin, 'Unrecognized git host' end rescue Rugged::RepositoryError raise InvalidRepositoryDirectory end
Public Instance Methods
id()
click to toggle source
# File lib/github/repository.rb, line 31 def id "#{owner}/#{name}" end
issue(number)
click to toggle source
# File lib/github/repository.rb, line 47 def issue(number) client.issues.get( user: owner, repo: name, number: number ) end
issue_comments(number)
click to toggle source
# File lib/github/repository.rb, line 55 def issue_comments(number) client.issues.comments.list( user: owner, repo: name, number: number ) end
issues(state: 'open', sort: 'updated', direction: 'desc', page: 1, per_page: 10)
click to toggle source
# File lib/github/repository.rb, line 35 def issues(state: 'open', sort: 'updated', direction: 'desc', page: 1, per_page: 10) client.issues.list( user: owner, repo: name, state: state, sort: sort, direction: direction, page: page, per_page: per_page ) end
pull_request(number)
click to toggle source
# File lib/github/repository.rb, line 75 def pull_request(number) client.pull_requests.get( user: owner, repo: name, number: number ) end
pull_request_comments(number)
click to toggle source
# File lib/github/repository.rb, line 99 def pull_request_comments(number) client.pull_requests.comments( user: owner, repo: name, number: number ) end
pull_request_commits(number)
click to toggle source
# File lib/github/repository.rb, line 83 def pull_request_commits(number) client.pull_requests.commits( user: owner, repo: name, number: number ) end
pull_request_files(number)
click to toggle source
# File lib/github/repository.rb, line 91 def pull_request_files(number) client.pull_requests.files( user: owner, repo: name, number: number ) end
pull_requests(state: 'open', sort: 'updated', direction: 'desc', page: 1, per_page: 10)
click to toggle source
# File lib/github/repository.rb, line 63 def pull_requests(state: 'open', sort: 'updated', direction: 'desc', page: 1, per_page: 10) client.pull_requests.list( user: owner, repo: name, state: state, sort: sort, direction: direction, page: page, per_page: per_page ) end
Private Instance Methods
client()
click to toggle source
# File lib/github/repository.rb, line 111 def client @client ||= Github.new do |c| c.oauth_token = Github::CLI.config[host]['access_token'] c.endpoint = "https://#{host}/api/v3/" if host != 'github.com' end end