Class: PullRequest::Create::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/pull_request/create/client.rb

Constant Summary collapse

BASE =
'master'
TITLE =
'Request by PullRequest::Create'
BODY =
<<-EOL.gsub(/^\s+/, '').gsub("\n", ' ')
  :hamster::hamster::hamster:
  by
  <a href="https://github.com/packsaddle/ruby-pull_request-create">PullRequest::Create</a>
EOL

Instance Method Summary collapse

Constructor Details

#initialize(repo) ⇒ Client

Returns a new instance of Client.



12
13
14
# File 'lib/pull_request/create/client.rb', line 12

def initialize(repo)
  @repo = repo
end

Instance Method Details

#access_tokenObject



62
63
64
# File 'lib/pull_request/create/client.rb', line 62

def access_token
  ENV['GITHUB_ACCESS_TOKEN']
end

#clientObject



58
59
60
# File 'lib/pull_request/create/client.rb', line 58

def client
  @client ||= ::Octokit::Client.new(access_token: access_token)
end

#create_pull_request(params) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/pull_request/create/client.rb', line 16

def create_pull_request(params)
  logger.debug(params)

  repo = decide_repo(params[:repo])
  base = decide_base(params[:base])
  head = decide_head(params[:head])
  title = decide_title(params[:title])
  body = decide_body(params[:body])
  options = {}
  logger.debug([repo, base, head, title, body, options])
  resource = client.create_pull_request(repo, base, head, title, body, options)
  logger.debug(resource)
  logger.info("state: #{resource.state}")
  logger.info("title: #{resource.title}")
  logger.info("html_url: #{resource.html_url}")
  resource
end

#decide_base(base) ⇒ Object



38
39
40
# File 'lib/pull_request/create/client.rb', line 38

def decide_base(base)
  base || BASE
end

#decide_body(body) ⇒ Object



50
51
52
# File 'lib/pull_request/create/client.rb', line 50

def decide_body(body)
  body || BODY
end

#decide_head(head) ⇒ Object



42
43
44
# File 'lib/pull_request/create/client.rb', line 42

def decide_head(head)
  head || @repo.current_branch
end

#decide_repo(repo) ⇒ Object



34
35
36
# File 'lib/pull_request/create/client.rb', line 34

def decide_repo(repo)
  repo || @repo.slug
end

#decide_title(title) ⇒ Object



46
47
48
# File 'lib/pull_request/create/client.rb', line 46

def decide_title(title)
  title || TITLE
end

#loggerObject



54
55
56
# File 'lib/pull_request/create/client.rb', line 54

def logger
  ::PullRequest::Create.logger
end