gitlab_release_note_generator 0.1.1.1 → 0.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a7984c8eb8946a40c19ea799f84b34feb69b7d82
4
- data.tar.gz: 07eac4197f2f3cd768a16bf5d093f92a61fb4205
3
+ metadata.gz: a8aa3e72d11866ed08a6fb7befa2ce1cc7f82117
4
+ data.tar.gz: '0363690ddc3239d76bc88859e0c36da1090b932c'
5
5
  SHA512:
6
- metadata.gz: '09eb0873f3816259d12ca6a0d79f635ec48a0f6b68951da8aee848f10dfbf07a3f0201b35bdc572b581b240ca3e1254a7c474e20d0e843e52ee1e46212c5c2bf'
7
- data.tar.gz: 3f0a6c79df4bf90a05385f092e7ebe296848e20e8598abe4cc0a0ee5324ebab377674cb7e3def05f9f1994301be8a9515f1d1dd1da9fe880520cf353b88da0a2
6
+ metadata.gz: 5174d1f07265dd46c6effed81c56f689c2e223cc75ada7f79d930e6e8151587000d81bec538501a591c00dc2a4f39c0cff766d53aed903275a36ae1ecb8a7f67
7
+ data.tar.gz: 8c203c440147802724a5085a48c6210ef2ffdca8c8bfda9cc2f85ef227da434e9e6aef6b19ba4147f0468e13e9a3dc673ad898d7a8776b3094249599d0cf8881
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gitlab_release_note_generator (0.1.1.1)
4
+ gitlab_release_note_generator (0.1.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -3,5 +3,10 @@ require "gitlab_release_note_generator/builder"
3
3
 
4
4
  module GitlabReleaseNoteGenerator
5
5
  class Error < StandardError; end
6
- # Your code goes here...
6
+ builder = GitlabReleaseNoteGenerator::Builder.new
7
+ host_name = ARGV[0]
8
+ private_token = ARGV[1]
9
+ project_id = ARGV[2]
10
+
11
+ builder.main
7
12
  end
@@ -1,34 +1,58 @@
1
1
  require 'faraday'
2
2
  require 'json'
3
3
 
4
- conn = Faraday.new(:url => 'https://gitlab.com/api/v4/projects/16087798') do |faraday|
5
- faraday.headers['PRIVATE-TOKEN'] = 'Mozsks-bdJEAk1C8KJsq'
6
- end
7
-
8
- response = conn.get 'https://gitlab.com/api/v4/projects/16087798/merge_requests'
9
- parsed_json = JSON.parse(response.body)
10
-
11
- # puts parsed_json
12
- merge_request_titles = ""
13
-
14
- for el in parsed_json
15
- merge_request_titles += el["title"] + '\n'
16
- end
4
+ module GitlabReleaseNoteGenerator
5
+ class Builder
6
+ def main
7
+ conn = Faraday.new(:url => 'https://gitlab.com/api/v4/projects/16087798') do |faraday|
8
+ faraday.headers['PRIVATE-TOKEN'] = 'Mozsks-bdJEAk1C8KJsq'
9
+ end
10
+ get_tags(conn)
11
+ end
17
12
 
18
- releaseResponse = conn.post do |req|
19
- req.url 'https://gitlab.com/api/v4/projects/16087798/releases'
20
- req.headers['Content-Type'] = 'application/json'
21
- req.body = '{ "name": "New release2", "tag_name": "v1.1", "description": "Super nice release2"}'
22
- end
13
+ def get_tags(conn)
14
+ response = conn.get 'https://gitlab.com/api/v4/projects/16087798/repository/tags'
15
+ tags_dict = JSON.parse(response.body)
16
+ tag_name = tags_dict[0]["name"]
23
17
 
24
- puts releaseResponse.body
18
+ if tags_dict.count > 1
19
+ get_all_merge_requests_after(conn, tags_dict[1]["commit"]["created_at"], tag_name)
20
+ else
21
+ get_all_merge_request_before(conn, tags_dict[0]["commit"]["created_at"], tag_name)
22
+ end
23
+ end
25
24
 
25
+ def get_all_merge_request_before(conn, datetime, tag)
26
+ response = conn.get "https://gitlab.com/api/v4/projects/16087798/merge_requests?created_before=#{datetime}"
27
+ generate_changelog(conn, response.body, tag)
28
+ end
26
29
 
27
- module GitlabReleaseNoteGenerator
30
+ def get_all_merge_requests_after(conn, datetime, tag)
31
+ response = conn.get "https://gitlab.com/api/v4/projects/16087798/merge_requests?created_after=#{datetime}"
32
+ generate_changelog(conn, response.body, tag)
33
+ end
28
34
 
29
- class Builder
30
- def self.testFunc(someword)
31
- someword
35
+ def generate_changelog(conn, response_body, tag)
36
+ merge_requests = JSON.parse(response_body)
37
+ description = '### Release note (date)\r\n#### Closed merge requests\r\n'
38
+ for merge in merge_requests
39
+ description += "- #{merge["title"]} " + "[#{merge["reference"]}]" + "(#{merge["web_url"]})" + '\r\n'
40
+ end
41
+
42
+ post_new_release(conn, description, tag)
43
+ end
44
+
45
+ def post_new_release(conn, description, tag)
46
+ body = '{ "name": "%s", "tag_name": "%s", "description": "%s"}'
47
+ res_body = body % [tag, tag, description]
48
+ puts res_body
49
+ response = conn.post do |req|
50
+ req.url 'https://gitlab.com/api/v4/projects/16087798/releases'
51
+ req.headers['Content-Type'] = 'application/json'
52
+ req.body = res_body
53
+ end
54
+
55
+ puts response.status, response.body
32
56
  end
33
57
  end
34
58
  end
@@ -1,3 +1,3 @@
1
1
  module GitlabReleaseNoteGenerator
2
- VERSION = "0.1.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
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.1.1
4
+ version: 0.1.2
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-04 00:00:00.000000000 Z
11
+ date: 2020-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler