Class: GithubReleaseParty
- Inherits:
-
Object
- Object
- GithubReleaseParty
show all
- Defined in:
- lib/github-release-party.rb,
lib/github-release-party/version.rb
Defined Under Namespace
Classes: GitHub, HTTPResponse
Constant Summary
collapse
- VERSION =
"0.4.5"
Class Method Summary
collapse
Class Method Details
.check_env! ⇒ Object
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
# File 'lib/github-release-party.rb', line 60
def self.check_env!
unless ENV["GITHUB_RELEASE_TOKEN"]
abort "Configure GITHUB_RELEASE_TOKEN to create GitHub releases. See https://github.com/stefansundin/github-release-party#setup"
end
unless repo
abort "Can't find the GitHub repository. Please use the remote 'origin'."
end
r = GitHub.get("/user")
if r.success?
puts "Creating GitHub release with user #{r.json["login"]}."
else
puts "Error authenticating with GitHub. Your token may have expired."
puts r.body
abort
end
end
|
.create(tag_name, message) ⇒ Object
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
# File 'lib/github-release-party.rb', line 36
def self.create(tag_name, message)
body = {
tag_name: tag_name,
name: tag_name,
body: message,
}
r = GitHub.post("/repos/#{repo}/releases", body.to_json)
if r.success?
puts "GitHub release #{tag_name} created!"
else
puts error(r)
puts
puts "Body sent: #{body.to_json}"
puts
puts "Failed to create a GitHub release!"
puts "Create it manually here: https://github.com/#{repo}/releases/new?tag=#{tag_name}"
puts "Tag version: #{tag_name}"
puts "Release title: #{tag_name}"
puts "Message:"
puts message
end
end
|
.error(r) ⇒ Object
83
84
85
|
# File 'lib/github-release-party.rb', line 83
def self.error(r)
"#{r.request_uri}: #{r.code}: #{r.body}\nHeaders: #{r..to_json}"
end
|
.releases ⇒ Object
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/github-release-party.rb', line 6
def self.releases
releases = []
page = 1
while true
r = GitHub.get("/repos/#{repo}/releases?page=#{page}")
unless r.success?
puts "Error occurred when fetching releases:"
puts error(r)
abort
end
break if r.json.length == 0
releases = releases + r.json
page += 1
end
return releases
end
|
.repo ⇒ Object
77
78
79
|
# File 'lib/github-release-party.rb', line 77
def self.repo
@repo ||= `git remote -v`.scan(/^origin\t.*github\.com[:\/](.+)\.git /).uniq.flatten.first
end
|
.update(release_id, name, message) ⇒ Object
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/github-release-party.rb', line 23
def self.update(release_id, name, message)
r = GitHub.patch("/repos/#{repo}/releases/#{release_id}", {
name: name,
body: message,
}.to_json)
if r.success?
puts "GitHub release #{name} updated!"
else
puts "Failed to update GitHub release #{name}!"
puts error(r)
end
end
|