gitlab_awesome_release 0.1.0.beta4 → 0.1.0.beta5
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/CHANGELOG.md +6 -1
- data/gitlab_awesome_release.gemspec +1 -0
- data/lib/gitlab_awesome_release/cli.rb +53 -25
- data/lib/gitlab_awesome_release/project.rb +10 -1
- data/lib/gitlab_awesome_release/version.rb +1 -1
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 79dcca8a59190f69caa1c4fdcf4ccfd6a3128b24
|
4
|
+
data.tar.gz: 065353fae2858639d9fa75ced13213f5bdc8f7e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d5c011aa2d599c46f02e6b667ff766559c96001ead5ccf7ea7bdf1253d25e887afe396fc7d4159718936f6cfa6b712ac99b3e680ffe7ecd7f5b3ffc4d3c8562
|
7
|
+
data.tar.gz: 2085fceb89ed4b4f6e1231cf8479193eb84497dcc3f55d30d73c5d4825e9928e7086b370d1cd89ff7bf7f871acb43d0bdb1f468728c042dc11bb5890b986ece3
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
## Unreleased
|
2
|
-
[full changelog](https://gitlab.com/sue445/gitlab_awesome_release/compare/v0.1.0.
|
2
|
+
[full changelog](https://gitlab.com/sue445/gitlab_awesome_release/compare/v0.1.0.beta4...HEAD)
|
3
3
|
|
4
4
|
|
5
|
+
## v0.1.0.beta4
|
6
|
+
[full changelog](https://gitlab.com/sue445/gitlab_awesome_release/compare/v0.1.0.beta3...v0.1.0.beta4)
|
7
|
+
|
8
|
+
* Use .env.gitlab and ~/.env.gitlab instead of .env [!8](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/8) *@sue445*
|
9
|
+
|
5
10
|
## v0.1.0.beta3
|
6
11
|
[full changelog](https://gitlab.com/sue445/gitlab_awesome_release/compare/v0.1.0.beta2...v0.1.0.beta3)
|
7
12
|
|
@@ -30,6 +30,7 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_development_dependency "pry-byebug"
|
31
31
|
spec.add_development_dependency "rake", "~> 10.0"
|
32
32
|
spec.add_development_dependency "rspec"
|
33
|
+
spec.add_development_dependency "rspec-temp_dir"
|
33
34
|
spec.add_development_dependency "simplecov"
|
34
35
|
spec.add_development_dependency "webmock"
|
35
36
|
spec.add_development_dependency "yard"
|
@@ -5,8 +5,8 @@ require "dotenv"
|
|
5
5
|
module GitlabAwesomeRelease
|
6
6
|
class CLI < Thor
|
7
7
|
DEFAULT_VERSION_FORMAT = "^v?[\\d.]+"
|
8
|
-
|
9
8
|
GITLAB_ENV_FILES = %w(.env.gitlab ~/.env.gitlab)
|
9
|
+
LOG_LEVEL_DESCRIPTION = "Log level (debug|info|warn|error|fatal|unknown)"
|
10
10
|
|
11
11
|
desc "version", "Show gitlab_awesome_release version"
|
12
12
|
def version
|
@@ -15,38 +15,21 @@ module GitlabAwesomeRelease
|
|
15
15
|
|
16
16
|
desc "create_note", "generate changelog"
|
17
17
|
option :filename
|
18
|
-
option :
|
19
|
-
option :
|
18
|
+
option :from_tag
|
19
|
+
option :to_tag
|
20
20
|
option :gitlab_api_endpoint
|
21
21
|
option :gitlab_api_private_token
|
22
22
|
option :gitlab_project_name
|
23
|
-
option :allow_tag_format, desc: "Regular expression of tag format", default:
|
24
|
-
option :log_level, desc:
|
23
|
+
option :allow_tag_format, desc: "Regular expression of tag format", default: DEFAULT_VERSION_FORMAT
|
24
|
+
option :log_level, desc: LOG_LEVEL_DESCRIPTION, default: "info"
|
25
25
|
def create_note
|
26
26
|
Dotenv.load(*GITLAB_ENV_FILES)
|
27
27
|
|
28
|
-
|
29
|
-
gitlab_api_private_token = option_or_env!(:gitlab_api_private_token)
|
30
|
-
gitlab_project_name = option_or_env!(:gitlab_project_name)
|
31
|
-
allow_tag_format = option_or_env(:allow_tag_format, DEFAULT_VERSION_FORMAT)
|
32
|
-
|
33
|
-
@logger = Logger.new(STDOUT)
|
34
|
-
@logger.level = logger_level(option_or_env(:log_level))
|
35
|
-
@logger.formatter = proc{ |severity, datetime, progname, message|
|
36
|
-
"[#{datetime}] #{message}\n"
|
37
|
-
}
|
38
|
-
|
39
|
-
project = GitlabAwesomeRelease::Project.new(
|
40
|
-
api_endpoint: gitlab_api_endpoint,
|
41
|
-
private_token: gitlab_api_private_token,
|
42
|
-
project_name: gitlab_project_name,
|
43
|
-
allow_tag_format: /#{allow_tag_format}/,
|
44
|
-
logger: @logger,
|
45
|
-
)
|
28
|
+
project = create_project
|
46
29
|
|
47
30
|
tag_names = project.release_tag_names
|
48
|
-
oldest_tag = option_or_env(:
|
49
|
-
newest_tag = option_or_env(:
|
31
|
+
oldest_tag = option_or_env(:from_tag) || tag_names.first
|
32
|
+
newest_tag = option_or_env(:to_tag) || tag_names.last
|
50
33
|
|
51
34
|
changelog = project.generate_change_log(oldest_tag, newest_tag)
|
52
35
|
|
@@ -54,6 +37,30 @@ module GitlabAwesomeRelease
|
|
54
37
|
@logger.info "finish!"
|
55
38
|
end
|
56
39
|
|
40
|
+
desc "marking", "Add version label to MergeRequests"
|
41
|
+
option :from_tag
|
42
|
+
option :to_tag
|
43
|
+
option :label
|
44
|
+
option :gitlab_api_endpoint
|
45
|
+
option :gitlab_api_private_token
|
46
|
+
option :gitlab_project_name
|
47
|
+
option :log_level, desc: LOG_LEVEL_DESCRIPTION, default: "info"
|
48
|
+
def marking
|
49
|
+
Dotenv.load(*GITLAB_ENV_FILES)
|
50
|
+
|
51
|
+
from_tag = option_or_env!(:from_tag)
|
52
|
+
to_tag = option_or_env!(:to_tag)
|
53
|
+
label = option_or_env(:label) || to_tag
|
54
|
+
|
55
|
+
project = create_project
|
56
|
+
|
57
|
+
project.merge_request_iids_between(from_tag, to_tag).each do |iid|
|
58
|
+
mr = project.merge_request(iid)
|
59
|
+
project.add_merge_request_label(mr, label) if mr
|
60
|
+
end
|
61
|
+
@logger.info "finish!"
|
62
|
+
end
|
63
|
+
|
57
64
|
private
|
58
65
|
|
59
66
|
def option_or_env(name, default = nil)
|
@@ -69,6 +76,27 @@ module GitlabAwesomeRelease
|
|
69
76
|
exit!
|
70
77
|
end
|
71
78
|
|
79
|
+
def create_project
|
80
|
+
gitlab_api_endpoint = option_or_env!(:gitlab_api_endpoint)
|
81
|
+
gitlab_api_private_token = option_or_env!(:gitlab_api_private_token)
|
82
|
+
gitlab_project_name = option_or_env!(:gitlab_project_name)
|
83
|
+
allow_tag_format = option_or_env(:allow_tag_format, DEFAULT_VERSION_FORMAT)
|
84
|
+
|
85
|
+
@logger = Logger.new(STDOUT)
|
86
|
+
@logger.level = logger_level(option_or_env(:log_level))
|
87
|
+
@logger.formatter = proc{ |severity, datetime, progname, message|
|
88
|
+
"[#{datetime}] #{message}\n"
|
89
|
+
}
|
90
|
+
|
91
|
+
GitlabAwesomeRelease::Project.new(
|
92
|
+
api_endpoint: gitlab_api_endpoint,
|
93
|
+
private_token: gitlab_api_private_token,
|
94
|
+
project_name: gitlab_project_name,
|
95
|
+
allow_tag_format: /#{allow_tag_format}/,
|
96
|
+
logger: @logger,
|
97
|
+
)
|
98
|
+
end
|
99
|
+
|
72
100
|
def write_changelog(changelog)
|
73
101
|
filename = option_or_env(:filename)
|
74
102
|
if filename
|
@@ -94,13 +94,22 @@ module GitlabAwesomeRelease
|
|
94
94
|
# @param iid [Integer] MergeRequest iid
|
95
95
|
# @return [String] markdown text
|
96
96
|
def merge_request_summary(iid)
|
97
|
-
mr =
|
97
|
+
mr = merge_request(iid)
|
98
98
|
return nil unless mr
|
99
99
|
|
100
100
|
mr_url = "#{web_url}/merge_requests/#{iid}"
|
101
101
|
"* #{mr.title} [!#{iid}](#{mr_url}) *@#{mr.author.username}*"
|
102
102
|
end
|
103
103
|
|
104
|
+
def merge_request(iid)
|
105
|
+
Gitlab.merge_requests(escaped_project_name, iid: iid).first
|
106
|
+
end
|
107
|
+
|
108
|
+
def add_merge_request_label(mr, label)
|
109
|
+
Gitlab.update_merge_request(escaped_project_name, mr.id, labels: label)
|
110
|
+
@logger.info "Add [#{label}] to !#{mr.iid}"
|
111
|
+
end
|
112
|
+
|
104
113
|
private
|
105
114
|
|
106
115
|
def escaped_project_name
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitlab_awesome_release
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.
|
4
|
+
version: 0.1.0.beta5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sue445
|
@@ -122,6 +122,20 @@ dependencies:
|
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rspec-temp_dir
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: simplecov
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|