Class: Groundskeeper::GitHub

Inherits:
Object
  • Object
show all
Defined in:
lib/groundskeeper/git_hub.rb

Overview

Wraps an interface to GitHub.

Defined Under Namespace

Classes: Executable

Constant Summary collapse

COMMAND =
"open"
URL_BASE =
"https://github.com/"

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opener:, username:, repository_name:) ⇒ GitHub

Returns a new instance of GitHub.



26
27
28
29
30
# File 'lib/groundskeeper/git_hub.rb', line 26

def initialize(opener:, username:, repository_name:)
  @opener = opener
  @username = username
  @repository_name = repository_name
end

Instance Attribute Details

#opener ⇒ Object (readonly)

Returns the value of attribute opener.



6
7
8
# File 'lib/groundskeeper/git_hub.rb', line 6

def opener
  @opener
end

#repository_name ⇒ Object (readonly)

Returns the value of attribute repository_name.



6
7
8
# File 'lib/groundskeeper/git_hub.rb', line 6

def repository_name
  @repository_name
end

#username ⇒ Object (readonly)

Returns the value of attribute username.



6
7
8
# File 'lib/groundskeeper/git_hub.rb', line 6

def username
  @username
end

Class Method Details

.build(username:, repository_name:) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/groundskeeper/git_hub.rb', line 18

def self.build(username:, repository_name:)
  new(
    opener: Executable.new,
    username: username,
    repository_name: repository_name
  )
end

Instance Method Details

#open_pull_request_page(branch_name) ⇒ Object



32
33
34
35
36
37
# File 'lib/groundskeeper/git_hub.rb', line 32

def open_pull_request_page(branch_name)
  url = "#{URL_BASE}#{username}/#{repository_name}/compare/" \
        "#{branch_name}?expand=1"

  opener.execute(url)
end