gitlab_release_note_generator 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/gitlab_release_note_generator/builder.rb +72 -18
- data/lib/gitlab_release_note_generator/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65bafcf06b99f9acd0ae50931f9d379c70f982f5
|
4
|
+
data.tar.gz: 61c6662827e15f4e3d58d5ac01769353912ec20f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d82958b0e41f544f5cbf7de4ca984a0da7a88782c9ded9ac72a679b2d442350b76003372eb47c1ee6dc58fb5303b260f9c966f933702338fed21ed181e5cc330
|
7
|
+
data.tar.gz: 9b97a77b75160fb9e77bc3b2223f94b901440678d4fd1314e3a8da4d55bc0485b936518ba44485b86a6b11d52860c86393909457e28553c3177817d1c82d8207
|
data/Gemfile.lock
CHANGED
@@ -20,33 +20,87 @@ module GitlabReleaseNoteGenerator
|
|
20
20
|
tag_name = tags_dict[0]["name"]
|
21
21
|
|
22
22
|
if tags_dict.count > 1
|
23
|
-
get_all_merge_requests_after(conn, tags_dict[1]["commit"]["created_at"]
|
23
|
+
merged_requests = get_all_merge_requests_after(conn, tags_dict[1]["commit"]["created_at"])
|
24
|
+
closed_issues = get_all_issues_after(conn, tags_dict[1]["commit"]["created_at"])
|
25
|
+
generate_changelog(conn, tag_name, merged_requests, closed_issues)
|
24
26
|
else
|
25
|
-
get_all_merge_request_before(conn, tags_dict[0]["commit"]["created_at"]
|
26
|
-
|
27
|
+
merged_requests = get_all_merge_request_before(conn, tags_dict[0]["commit"]["created_at"])
|
28
|
+
closed_issues = get_all_issues_before(conn, tags_dict[0]["commit"]["created_at"])
|
29
|
+
generate_changelog(conn, tag_name, merged_requests, closed_issues)
|
30
|
+
end
|
27
31
|
end
|
28
32
|
|
29
|
-
def get_all_merge_request_before(conn, datetime
|
30
|
-
response = conn.get @@base_url + "/merge_requests?created_before=#{datetime}"
|
31
|
-
|
33
|
+
def get_all_merge_request_before(conn, datetime)
|
34
|
+
response = conn.get @@base_url + "/merge_requests?created_before=#{datetime}?state=merged?scope=all"
|
35
|
+
return response.body
|
32
36
|
end
|
33
37
|
|
34
|
-
def get_all_merge_requests_after(conn, datetime
|
35
|
-
response = conn.get @@base_url + "/merge_requests?created_after=#{datetime}"
|
36
|
-
|
38
|
+
def get_all_merge_requests_after(conn, datetime)
|
39
|
+
response = conn.get @@base_url + "/merge_requests?created_after=#{datetime}?state=merged?scope=all"
|
40
|
+
|
41
|
+
return response.body
|
37
42
|
end
|
38
43
|
|
39
|
-
def
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
44
|
+
def get_all_issues_before(conn, datetime)
|
45
|
+
response = conn.get @@base_url + "/issues?created_before=#{datetime}?state=closed?scope=all"
|
46
|
+
return response.body
|
47
|
+
end
|
48
|
+
|
49
|
+
def get_all_issues_after(conn, datetime)
|
50
|
+
response = conn.get @@base_url + "/issues?created_after=#{datetime}?state=closed?scope=all"
|
51
|
+
return response.body
|
52
|
+
end
|
53
|
+
|
54
|
+
def generate_changelog(conn, tag, merged_requests_response_body, closed_issues_response_body)
|
55
|
+
merged_requests = JSON.parse(merged_requests_response_body)
|
56
|
+
closed_issues = JSON.parse(closed_issues_response_body)
|
57
|
+
description = '### Release note (%s)\r\n'
|
58
|
+
description = description % [getCurrentTime]
|
59
|
+
|
60
|
+
closed_issues_notes = generate_closed_issues_notes(conn, closed_issues)
|
61
|
+
merged_requests_notes = generate_merged_requests_notes(conn, merged_requests)
|
62
|
+
|
63
|
+
if closed_issues_notes.nil? && merged_requests_notes.nil?
|
64
|
+
puts "Didn't find either closed issues or merged requests between last two tags."
|
65
|
+
return
|
66
|
+
end
|
67
|
+
|
68
|
+
if !closed_issues_notes.nil?
|
69
|
+
description += closed_issues_notes
|
70
|
+
end
|
71
|
+
|
72
|
+
if !merged_requests_notes.nil?
|
73
|
+
description += merged_requests_notes
|
74
|
+
end
|
47
75
|
|
48
76
|
post_new_release(conn, description, tag)
|
49
|
-
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def generate_merged_requests_notes(conn, merged_requests)
|
80
|
+
if merged_requests.count == 0
|
81
|
+
return nil
|
82
|
+
end
|
83
|
+
description = '#### Closed merge requests\r\n'
|
84
|
+
for merge in merged_requests
|
85
|
+
description += "- #{merge["title"]} " + "[##{merge["reference"]}]" + "(#{merge["web_url"]})"
|
86
|
+
description += " ([#{merge["author"]["username"]}]" + "(#{merge["author"]["web_url"]}))" + '\r\n'
|
87
|
+
end
|
88
|
+
|
89
|
+
return description
|
90
|
+
end
|
91
|
+
|
92
|
+
def generate_closed_issues_notes(conn, closed_issues)
|
93
|
+
if closed_issues.count == 0
|
94
|
+
return nil
|
95
|
+
end
|
96
|
+
description = '#### Closed issues\r\n'
|
97
|
+
for issue in closed_issues
|
98
|
+
description += "- #{issue["title"]} " + "[##{issue["iid"]}]" + "(#{issue["web_url"]})"
|
99
|
+
description += " ([#{issue["author"]["username"]}]" + "(#{issue["author"]["web_url"]}))" + '\r\n'
|
100
|
+
end
|
101
|
+
|
102
|
+
return description
|
103
|
+
end
|
50
104
|
|
51
105
|
def post_new_release(conn, description, tag)
|
52
106
|
body = '{ "name": "%s", "tag_name": "%s", "description": "%s"}'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitlab_release_note_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ayan
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-01-
|
11
|
+
date: 2020-01-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|