gitlab-release-tools 0.2.0 → 1.0.0
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/.env.gitlab +1 -1
- data/.travis.yml +5 -2
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +14 -12
- data/README.md +26 -6
- data/Rakefile +5 -0
- data/exe/gitlab-release-tools +2 -1
- data/gitlab-release-tools.gemspec +3 -2
- data/lib/gitlab/release/api_client.rb +3 -5
- data/lib/gitlab/release/changelog/entries.rb +46 -11
- data/lib/gitlab/release/changelog/entry.rb +22 -4
- data/lib/gitlab/release/changelog/generator.rb +34 -26
- data/lib/gitlab/release/manager.rb +22 -11
- data/lib/gitlab/release/version.rb +1 -1
- metadata +19 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e31f5cb41ec6a8a0512162473f092a20c9c6c033bb03cdc7768c98bed72a78a6
|
4
|
+
data.tar.gz: 3ca9e40c679f14a00d6ca6c711f559f17205a2707417a0999496d9756189d8ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68957e07b20608018f3cb018f0fcb1a4a06f52cb6a855b6e5996f10760bbc876284f023d324eb8049b28a988396e440d88a83ed7485b39aa8b2090f042429fb2
|
7
|
+
data.tar.gz: 55847bebbb6d94a3c9203fd0b298fa24ed253e8e6bf6b47d39e4beac1cc03f327a543eaaa13b33d0cf6047bab05bae810d9e076cdc5bcfc6653e8484d14d350e
|
data/.env.gitlab
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
GITLAB_BASE_URL=http://gitlab.com/api/v4
|
2
|
-
PRIVATE_TOKEN=
|
2
|
+
PRIVATE_TOKEN=
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
ADDED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
gitlab-release-tools (0.
|
4
|
+
gitlab-release-tools (1.0.0)
|
5
5
|
gitlab (~> 4.12.0)
|
6
6
|
|
7
7
|
GEM
|
@@ -26,19 +26,19 @@ GEM
|
|
26
26
|
multi_xml (0.6.0)
|
27
27
|
public_suffix (4.0.1)
|
28
28
|
rake (10.5.0)
|
29
|
-
rspec (3.
|
30
|
-
rspec-core (~> 3.
|
31
|
-
rspec-expectations (~> 3.
|
32
|
-
rspec-mocks (~> 3.
|
33
|
-
rspec-core (3.
|
34
|
-
rspec-support (~> 3.
|
35
|
-
rspec-expectations (3.
|
29
|
+
rspec (3.9.0)
|
30
|
+
rspec-core (~> 3.9.0)
|
31
|
+
rspec-expectations (~> 3.9.0)
|
32
|
+
rspec-mocks (~> 3.9.0)
|
33
|
+
rspec-core (3.9.0)
|
34
|
+
rspec-support (~> 3.9.0)
|
35
|
+
rspec-expectations (3.9.0)
|
36
36
|
diff-lcs (>= 1.2.0, < 2.0)
|
37
|
-
rspec-support (~> 3.
|
38
|
-
rspec-mocks (3.
|
37
|
+
rspec-support (~> 3.9.0)
|
38
|
+
rspec-mocks (3.9.0)
|
39
39
|
diff-lcs (>= 1.2.0, < 2.0)
|
40
|
-
rspec-support (~> 3.
|
41
|
-
rspec-support (3.
|
40
|
+
rspec-support (~> 3.9.0)
|
41
|
+
rspec-support (3.9.0)
|
42
42
|
safe_yaml (1.0.5)
|
43
43
|
terminal-table (1.8.0)
|
44
44
|
unicode-display_width (~> 1.1, >= 1.1.1)
|
@@ -47,6 +47,7 @@ GEM
|
|
47
47
|
addressable (>= 2.3.6)
|
48
48
|
crack (>= 0.3.2)
|
49
49
|
hashdiff (>= 0.4.0, < 2.0.0)
|
50
|
+
yard (0.9.20)
|
50
51
|
|
51
52
|
PLATFORMS
|
52
53
|
ruby
|
@@ -59,6 +60,7 @@ DEPENDENCIES
|
|
59
60
|
rake (~> 10.0)
|
60
61
|
rspec (~> 3.0)
|
61
62
|
webmock
|
63
|
+
yard
|
62
64
|
|
63
65
|
BUNDLED WITH
|
64
66
|
2.0.2
|
data/README.md
CHANGED
@@ -1,4 +1,7 @@
|
|
1
1
|
# gitlab-release-tools
|
2
|
+
[](https://github.com/andreadelfante/gitlab-release-tools/blob/master/LICENSE)
|
3
|
+
[](https://rubygems.org/gems/gitlab-release-tools)
|
4
|
+
[](https://travis-ci.org/andreadelfante/gitlab-release-tools)
|
2
5
|
|
3
6
|
## Installation
|
4
7
|
|
@@ -10,21 +13,38 @@ gem 'gitlab-release-tools'
|
|
10
13
|
|
11
14
|
And then execute:
|
12
15
|
|
13
|
-
$ bundle
|
16
|
+
$ bundle install
|
14
17
|
|
15
18
|
Or install it yourself as:
|
16
19
|
|
17
|
-
$ gem install gitlab-
|
20
|
+
$ gem install gitlab-release-tools
|
18
21
|
|
19
22
|
## Usage
|
20
23
|
|
21
|
-
|
24
|
+
```ruby
|
25
|
+
endpoint = 'endpoint' # or value from ENV for CI/CD
|
26
|
+
private_token = 'private_token' # or value from ENV for CI/CD
|
27
|
+
project_id = 50 # or value from ENV for CI/CD
|
28
|
+
version = '1.0'
|
29
|
+
|
30
|
+
generator = Gitlab::Release::Changelog::Generator.new(endpoint: endpoint, private_token: private_token)
|
31
|
+
changelog = generator.changelog(version, project_id: project_id)
|
32
|
+
# print(changelog) for a simple changelog list
|
33
|
+
# print(changelog.to_s_with_reference) for a changelog list with mrs/issues references
|
34
|
+
|
35
|
+
manager = Gitlab::Release::Manager.new(endpoint: endpoint, private_token: private_token)
|
36
|
+
manager.define_tag(version, changelog.to_s_with_reference)
|
37
|
+
manager.close_milestones(version)
|
38
|
+
```
|
22
39
|
|
23
|
-
|
40
|
+
Check out the [documentation](./doc/index.html) for more.
|
24
41
|
|
25
|
-
|
42
|
+
## Development
|
26
43
|
|
27
|
-
|
44
|
+
1. Install this gem onto your local machine, `bundle exec rake install`.
|
45
|
+
2. Copy `.env.example` and rename with `.env`.
|
46
|
+
3. Define Gitlab base url and generate a private token.
|
47
|
+
4. You are ready to go!
|
28
48
|
|
29
49
|
## Contributing
|
30
50
|
|
data/Rakefile
CHANGED
data/exe/gitlab-release-tools
CHANGED
@@ -8,7 +8,8 @@ Dotenv.load('../.env')
|
|
8
8
|
endpoint = ENV["GITLAB_BASE_URL"]
|
9
9
|
private_token = ENV["PRIVATE_TOKEN"]
|
10
10
|
|
11
|
-
generator = Gitlab::Release::Changelog::Generator.new(endpoint,
|
11
|
+
generator = Gitlab::Release::Changelog::Generator.new(endpoint: endpoint,
|
12
|
+
private_token: private_token)
|
12
13
|
|
13
14
|
changelog = generator.changelog("1.1", project_id: 50)
|
14
15
|
print(changelog)
|
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
|
|
17
17
|
if spec.respond_to?(:metadata)
|
18
18
|
spec.metadata["homepage_uri"] = spec.homepage
|
19
19
|
spec.metadata["source_code_uri"] = "https://github.com/andreadelfante/gitlab-release-tools"
|
20
|
-
|
20
|
+
spec.metadata["changelog_uri"] = "https://github.com/andreadelfante/gitlab-release-tools/blob/master/CHANGELOG.md##{Gitlab::Release::VERSION}"
|
21
21
|
else
|
22
22
|
raise "RubyGems 2.0 or newer is required to protect against " \
|
23
23
|
"public gem pushes."
|
@@ -29,7 +29,7 @@ Gem::Specification.new do |spec|
|
|
29
29
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
30
30
|
end
|
31
31
|
spec.bindir = "exe"
|
32
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
32
|
+
#spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
33
33
|
spec.require_paths = ["lib"]
|
34
34
|
|
35
35
|
spec.add_runtime_dependency "gitlab", "~> 4.12.0"
|
@@ -39,4 +39,5 @@ Gem::Specification.new do |spec|
|
|
39
39
|
spec.add_development_dependency "rspec", "~> 3.0"
|
40
40
|
spec.add_development_dependency "dotenv"
|
41
41
|
spec.add_development_dependency 'webmock'
|
42
|
+
spec.add_development_dependency 'yard'
|
42
43
|
end
|
@@ -3,12 +3,10 @@ require 'gitlab'
|
|
3
3
|
module Gitlab
|
4
4
|
module Release
|
5
5
|
class ApiClient
|
6
|
-
|
7
|
-
# @param [String] private_token user's private token or OAuth2 access token, default: ENV['GITLAB_API_PRIVATE_TOKEN']
|
8
|
-
def initialize(endpoint, private_token)
|
6
|
+
def initialize(options = {})
|
9
7
|
@client = Gitlab.client(
|
10
|
-
endpoint: endpoint,
|
11
|
-
private_token: private_token
|
8
|
+
endpoint: options[:endpoint],
|
9
|
+
private_token: options[:private_token]
|
12
10
|
)
|
13
11
|
end
|
14
12
|
|
@@ -1,38 +1,73 @@
|
|
1
1
|
module Gitlab
|
2
2
|
module Release
|
3
3
|
module Changelog
|
4
|
+
##
|
5
|
+
# This class is a collection wrapper of changelog items, useful to generate easily changelog as String.
|
6
|
+
#
|
4
7
|
class Entries
|
5
8
|
def initialize
|
6
9
|
# @type [Array] elements
|
7
10
|
@elements = []
|
8
11
|
end
|
9
12
|
|
13
|
+
##
|
14
|
+
# Add a new Entry element.
|
15
|
+
#
|
10
16
|
# @param [Entry] element
|
17
|
+
#
|
11
18
|
def push(element)
|
12
19
|
@elements.push(element)
|
13
20
|
end
|
14
21
|
|
22
|
+
##
|
23
|
+
# Print the changelog without any reference.
|
24
|
+
#
|
25
|
+
# @return [String]
|
26
|
+
#
|
15
27
|
def to_s
|
16
|
-
|
28
|
+
internal_to_s_with_reference(false)
|
17
29
|
end
|
18
30
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
31
|
+
##
|
32
|
+
# Print the changelog with relative reference.
|
33
|
+
#
|
34
|
+
# @return [String]
|
35
|
+
#
|
36
|
+
def to_s_with_reference
|
37
|
+
internal_to_s_with_reference(true)
|
23
38
|
end
|
24
39
|
|
25
|
-
|
26
|
-
#
|
27
|
-
#
|
28
|
-
|
40
|
+
##
|
41
|
+
# Write the changelog content as String in a file.
|
42
|
+
#
|
43
|
+
# @param [String] path Required. path The file path. You can specify a series of file paths with regex.
|
44
|
+
# @param [Boolean] appending Optional. Append the changelog contents at the bottom of the file. Default: false
|
45
|
+
# @param [Boolean] with_reference Optional. Generate the changelog with MRs and Issues reference. Default true
|
46
|
+
#
|
47
|
+
def write_in_file(path, appending = false, with_reference = true)
|
29
48
|
# @type [String] changelog_string
|
30
|
-
changelog_string =
|
49
|
+
changelog_string = internal_to_s_with_reference(with_reference)
|
50
|
+
|
51
|
+
searched_paths = Dir.glob(path)
|
52
|
+
if !searched_paths.empty?
|
53
|
+
searched_paths.each do |single_path|
|
54
|
+
internal_write_on_file(single_path, changelog_string, appending)
|
55
|
+
end
|
56
|
+
else
|
57
|
+
internal_write_on_file(path, changelog_string, appending)
|
58
|
+
end
|
59
|
+
end
|
31
60
|
|
61
|
+
private def internal_write_on_file(path, content, appending)
|
32
62
|
File.open(path, appending ? "a" : "w+") do |file|
|
33
|
-
file.puts(
|
63
|
+
file.puts(content)
|
34
64
|
end
|
35
65
|
end
|
66
|
+
|
67
|
+
private def internal_to_s_with_reference(with_reference)
|
68
|
+
@elements.map { |element| element.to_s_for_changelog(with_reference) }
|
69
|
+
.join("\n")
|
70
|
+
end
|
36
71
|
end
|
37
72
|
end
|
38
73
|
end
|
@@ -1,6 +1,9 @@
|
|
1
1
|
module Gitlab
|
2
2
|
module Release
|
3
3
|
module Changelog
|
4
|
+
##
|
5
|
+
# This class represents a single changelog element.
|
6
|
+
#
|
4
7
|
class Entry
|
5
8
|
attr_reader :title, :id
|
6
9
|
|
@@ -11,20 +14,35 @@ module Gitlab
|
|
11
14
|
@title = title
|
12
15
|
end
|
13
16
|
|
14
|
-
|
15
|
-
|
17
|
+
def to_s
|
18
|
+
"Changelog::Entry { id: #{id}, title: '#{title}' }"
|
19
|
+
end
|
20
|
+
|
21
|
+
##
|
22
|
+
# Print this entry with or without reference.
|
23
|
+
#
|
24
|
+
# @param [Boolean] with_reference Required. Generate the changelog with MRs and Issues reference.
|
25
|
+
# @return [String]
|
26
|
+
#
|
27
|
+
def to_s_for_changelog(with_reference)
|
16
28
|
"- #{title}"
|
17
29
|
end
|
18
30
|
end
|
19
31
|
|
32
|
+
##
|
33
|
+
# This class represents a single Merge Request.
|
34
|
+
#
|
20
35
|
class MergeRequest < Entry
|
21
|
-
def
|
36
|
+
def to_s_for_changelog(with_reference)
|
22
37
|
with_reference ? "- #{title} !#{id}" : super
|
23
38
|
end
|
24
39
|
end
|
25
40
|
|
41
|
+
##
|
42
|
+
# This class represents a single Issue.
|
43
|
+
#
|
26
44
|
class Issue < Entry
|
27
|
-
def
|
45
|
+
def to_s_for_changelog(with_reference)
|
28
46
|
with_reference ? "- #{title} ##{id}" : super
|
29
47
|
end
|
30
48
|
end
|
@@ -6,31 +6,40 @@ require 'gitlab/release/version'
|
|
6
6
|
module Gitlab
|
7
7
|
module Release
|
8
8
|
module Changelog
|
9
|
+
##
|
10
|
+
# This class generates the changelog entries
|
11
|
+
#
|
9
12
|
class Generator < ApiClient
|
10
|
-
|
11
|
-
# @
|
12
|
-
# @
|
13
|
-
# @
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
13
|
+
##
|
14
|
+
# @option [String] endpoint Optional. The API endpoint URL. Default: ENV['GITLAB_API_ENDPOINT'] and falls back to ENV['CI_API_V4_URL']
|
15
|
+
# @option [String] private_token Optional. User's private token or OAuth2 access token. Default: ENV['GITLAB_API_PRIVATE_TOKEN']
|
16
|
+
# @option [Integer] max_loops_merge_requests Optional. The limit of the loop to fetch merge requests. Default: 2000
|
17
|
+
# @option [Integer] max_loop_issues Optional. The limit of the loop to fetch issues. Default: 2000
|
18
|
+
#
|
19
|
+
def initialize(options = {})
|
20
|
+
@max_loops_merge_requests = options[:max_loops_merge_requests] || 2000
|
21
|
+
@max_loop_issues = options[:max_loop_issues] || 2000
|
22
|
+
super(options)
|
18
23
|
end
|
19
24
|
|
20
|
-
|
21
|
-
#
|
22
|
-
#
|
23
|
-
# @param [
|
24
|
-
# @
|
25
|
-
# @
|
26
|
-
# @
|
25
|
+
##
|
26
|
+
# Generate the changelog.
|
27
|
+
#
|
28
|
+
# @param [String] version_name Required. The name of the version. (ex: 1.0)
|
29
|
+
# @option [String or Integer] project_id Optional. The id of this project, given from GitLab. Default ENV["CI_PROJECT_ID"]
|
30
|
+
# @option [Boolean] include_mrs Optional. Should the generator include merge requests? Default: true
|
31
|
+
# @option [Boolean] include_issues Optional. Should the generator include issues? Default false
|
32
|
+
# @option [Array[String]] filtering_labels Optional. A general list of labels to filter items. Default: []
|
33
|
+
# @option [Array[String]] filtering_mrs_labels Optional. A specific list of labels to filter merge requests. Default: []
|
34
|
+
# @option [Array[String]] filtering_issues_labels Optional. A specific list of labels to filter issues. Default: []
|
27
35
|
# @return [Entries]
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
36
|
+
#
|
37
|
+
def changelog(version_name, options = {})
|
38
|
+
project_id = options[:project_id] || ENV["CI_PROJECT_ID"]
|
39
|
+
include_mrs = options[:include_mrs] || true
|
40
|
+
include_issues = options[:include_issues] || false
|
41
|
+
filtering_mrs_labels = options[:filtering_mrs_labels] || options[:filtering_labels] || []
|
42
|
+
filtering_issue_labels = options[:filtering_issues_labels] || options[:filtering_labels] || []
|
34
43
|
|
35
44
|
entries = Entries.new
|
36
45
|
if include_mrs
|
@@ -51,7 +60,7 @@ module Gitlab
|
|
51
60
|
# @param [Entries] entries
|
52
61
|
# @param [String or Integer] project_id
|
53
62
|
# @param [String] version_name
|
54
|
-
# @param Array[String] filtering_labels
|
63
|
+
# @param [Array[String]] filtering_labels
|
55
64
|
private def changelog_from_merge_requests(entries, project_id, version_name, filtering_labels)
|
56
65
|
select_milestones(project_id, version_name).each do |milestone|
|
57
66
|
i = 1
|
@@ -74,7 +83,7 @@ module Gitlab
|
|
74
83
|
|
75
84
|
# @param [Gitlab::ObjectifiedHash] mr
|
76
85
|
# @param [Array[String]] filtering_labels
|
77
|
-
# @return [
|
86
|
+
# @return [Boolean]
|
78
87
|
private def check_mr(mr, filtering_labels)
|
79
88
|
mr.state == 'merged' and (filtering_labels - mr.labels).empty?
|
80
89
|
end
|
@@ -82,8 +91,7 @@ module Gitlab
|
|
82
91
|
# @param [Entries] entries
|
83
92
|
# @param [String or Integer] project_id
|
84
93
|
# @param [String] version_name
|
85
|
-
# @param [
|
86
|
-
# @param Array[String] filtering_labels
|
94
|
+
# @param [Array[String]] filtering_labels
|
87
95
|
private def changelog_from_issues(entries, project_id, version_name, filtering_labels)
|
88
96
|
select_milestones(project_id, version_name).each do |milestone|
|
89
97
|
i = 1
|
@@ -106,7 +114,7 @@ module Gitlab
|
|
106
114
|
|
107
115
|
# @param [Gitlab::ObjectifiedHash] issue
|
108
116
|
# @param [Array[String]] filtering_labels
|
109
|
-
# @return [
|
117
|
+
# @return [Boolean]
|
110
118
|
private def check_issue(issue, filtering_labels)
|
111
119
|
issue.state == 'closed' and (filtering_labels - issue.labels).empty?
|
112
120
|
end
|
@@ -2,22 +2,33 @@ require 'gitlab/release/api_client'
|
|
2
2
|
|
3
3
|
module Gitlab
|
4
4
|
module Release
|
5
|
+
##
|
6
|
+
# This class contains some tools to finish a release.
|
7
|
+
#
|
5
8
|
class Manager < ApiClient
|
6
|
-
|
7
|
-
#
|
8
|
-
#
|
9
|
-
# @param [String]
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
##
|
10
|
+
# Create a new tag in the Repo.
|
11
|
+
#
|
12
|
+
# @param [String] tag_name Required. The name of the tag. (ex: 1.0)
|
13
|
+
# @param [String] changelog Optional. The release notes related to the tag.
|
14
|
+
# @option [String or Integer] project_id Optional. The id of this project, given from GitLab. Default ENV["CI_PROJECT_ID"]
|
15
|
+
# @option [String] ref Optional. The commit SHA. Default ENV["CI_COMMIT_SHA"]
|
16
|
+
#
|
17
|
+
def define_tag(tag_name, changelog, options = {})
|
18
|
+
project_id = options[:project_id] || ENV["CI_PROJECT_ID"]
|
19
|
+
ref = options[:ref] || ENV["CI_COMMIT_SHA"]
|
13
20
|
|
14
21
|
@client.create_tag(project_id, tag_name, ref, '', changelog)
|
15
22
|
end
|
16
23
|
|
17
|
-
|
18
|
-
#
|
19
|
-
|
20
|
-
|
24
|
+
##
|
25
|
+
# Close all the milestones containing the version name.
|
26
|
+
#
|
27
|
+
# @param [String] version_name Required. The name of the version. (ex: 1.0)
|
28
|
+
# @option [String or Integer] project_id Optional. The id of this project, given from GitLab. Default ENV["CI_PROJECT_ID"]
|
29
|
+
#
|
30
|
+
def close_milestones(version_name, options = {})
|
31
|
+
project_id = options[:project_id] || ENV["CI_PROJECT_ID"]
|
21
32
|
|
22
33
|
select_milestones(project_id, version_name).each do |milestone|
|
23
34
|
@client.edit_milestone(project_id, milestone.id, state_event: 'close')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitlab-release-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrea Del Fante
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-11-
|
11
|
+
date: 2019-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gitlab
|
@@ -94,11 +94,24 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: yard
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
description: Automation gitlab release tools from MR and issues for your new versions.
|
98
112
|
email:
|
99
113
|
- andreadelfante94@gmail.com
|
100
|
-
executables:
|
101
|
-
- gitlab-release-tools
|
114
|
+
executables: []
|
102
115
|
extensions: []
|
103
116
|
extra_rdoc_files: []
|
104
117
|
files:
|
@@ -108,6 +121,7 @@ files:
|
|
108
121
|
- ".rakeTasks"
|
109
122
|
- ".rspec"
|
110
123
|
- ".travis.yml"
|
124
|
+
- CHANGELOG.md
|
111
125
|
- Gemfile
|
112
126
|
- Gemfile.lock
|
113
127
|
- LICENSE
|
@@ -129,6 +143,7 @@ licenses:
|
|
129
143
|
metadata:
|
130
144
|
homepage_uri: https://github.com/andreadelfante/gitlab-release-tools
|
131
145
|
source_code_uri: https://github.com/andreadelfante/gitlab-release-tools
|
146
|
+
changelog_uri: https://github.com/andreadelfante/gitlab-release-tools/blob/master/CHANGELOG.md#1.0.0
|
132
147
|
post_install_message:
|
133
148
|
rdoc_options: []
|
134
149
|
require_paths:
|