gitlab-release-tools 0.2.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/andreadelfante/gitlab-release-tools/blob/master/LICENSE)
|
3
|
+
[![Gem](https://img.shields.io/gem/v/gitlab-release-tools.svg?style=flat)](https://rubygems.org/gems/gitlab-release-tools)
|
4
|
+
[![Build Status](https://travis-ci.org/andreadelfante/gitlab-release-tools.svg?branch=master)](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:
|