Class: GitHubPr::Poster

Inherits:
Object
  • Object
show all
Defined in:
lib/github-pr/poster.rb

Instance Method Summary collapse

Constructor Details

#initialize(token) ⇒ Poster

Returns a new instance of Poster.



5
6
7
# File 'lib/github-pr/poster.rb', line 5

def initialize(token)
	@token = token
end

Instance Method Details

#cut_scheme_and_host(url) ⇒ Object

github.com/user/reponame cutting path user/reponame



28
29
30
# File 'lib/github-pr/poster.rb', line 28

def cut_scheme_and_host(url)
	URI::parse(url).path[1..-1]
end

#post(options) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/github-pr/poster.rb', line 9

def post(options)
	client = Octokit::Client.new(:access_token => @token.get())
	begin
		postPrivate(client, options)
	rescue Octokit::Unauthorized
		client = Octokit::Client.new(:access_token => @token.get(regenerate: true))
		postPrivate(client, options)
	end
end

#postPrivate(client, options) ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/github-pr/poster.rb', line 18

def postPrivate(client, options)
	pull_request = client.create_pull_request(cut_scheme_and_host(repo_url()), 
		options[:base],
		options[:feature], 
		options[:title], nil)
	client.post("/repos/#{repo}/issues/#{pull_request['number']}/assignees", 
		assignees: [options[:assign]])
end

#repo_urlObject



31
32
33
# File 'lib/github-pr/poster.rb', line 31

def repo_url
	`git config --get remote.origin.url`.chomp
end