gitlab_mr_release 0.2.0 → 0.3.0.beta1
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/.travis.yml +2 -3
- data/CHANGELOG.md +8 -3
- data/Gemfile +5 -0
- data/README.md +11 -5
- data/lib/gitlab_mr_release/cli.rb +45 -7
- data/lib/gitlab_mr_release/project.rb +2 -1
- data/lib/gitlab_mr_release/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dfd1bd012a6623b07ec88422301e7a903bd27e52
|
4
|
+
data.tar.gz: c210cb149e78a9633a35a6e99a4a88f2058bc40f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0f883786063a983f7d1e822fa40845835a19b00b71439835ee34c60049f1639e8523fd7928abf06aaa8d2e55a8397b3bd537eb491d1a7bfca5f32b9876e62c6
|
7
|
+
data.tar.gz: f9babb8178923687b0f47b7d5ca066f5efc0bdd04d25b84e86fd2d9450103095c3ce702f40c6ac07a0bfca086c1d5cc6426b425c7c60dd99e7a4ced9d21ecf0a
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,14 +1,19 @@
|
|
1
1
|
## Unreleased
|
2
|
-
[full changelog](http://github.com/sue445/
|
2
|
+
[full changelog](http://github.com/sue445/gitlab_mr_release/compare/v0.2.0...master)
|
3
|
+
|
4
|
+
* Support MR labels
|
5
|
+
* https://github.com/sue445/gitlab_mr_release/pull/13
|
6
|
+
* Support default params in .env.gitlab
|
7
|
+
* https://github.com/sue445/gitlab_mr_release/pull/14
|
3
8
|
|
4
9
|
## v0.2.0
|
5
|
-
[full changelog](http://github.com/sue445/
|
10
|
+
[full changelog](http://github.com/sue445/gitlab_mr_release/compare/v0.1.1...v0.2.0)
|
6
11
|
|
7
12
|
* Support `DEFAULT_TITLE` with erb
|
8
13
|
* https://github.com/sue445/gitlab_mr_release/pull/11
|
9
14
|
|
10
15
|
## v0.1.1
|
11
|
-
[full changelog](http://github.com/sue445/
|
16
|
+
[full changelog](http://github.com/sue445/gitlab_mr_release/compare/v0.1.0...v0.1.1)
|
12
17
|
|
13
18
|
* Enable ERB trim_mode `"-"` (i.g. `<%-` , `-%>`) and tweak default template #10
|
14
19
|
* https://github.com/sue445/gitlab_mr_release/pull/10
|
data/Gemfile
CHANGED
@@ -2,3 +2,8 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in gitlab_mr_release.gemspec
|
4
4
|
gemspec
|
5
|
+
|
6
|
+
if Gem::Version.create(RUBY_VERSION) < Gem::Version.create("2.2.2")
|
7
|
+
# NOTE: activesupport 5.x supports only ruby 2.2.2+
|
8
|
+
gem "activesupport", "< 5.0.0"
|
9
|
+
end
|
data/README.md
CHANGED
@@ -32,9 +32,11 @@ $ gitlab_mr_release init
|
|
32
32
|
create gitlab_mr_release.md.erb
|
33
33
|
```
|
34
34
|
|
35
|
+
see [lib/templates/](lib/templates/)
|
36
|
+
|
35
37
|
### create
|
36
38
|
```sh
|
37
|
-
$ gitlab_mr_release create --source=develop --target=master
|
39
|
+
$ gitlab_mr_release create --source=develop --target=master --labels=release
|
38
40
|
MergeRequest is created
|
39
41
|
|
40
42
|
[Title] Release develop -> master
|
@@ -56,12 +58,13 @@ detail
|
|
56
58
|
```sh
|
57
59
|
$ gitlab_mr_release help create
|
58
60
|
Usage:
|
59
|
-
gitlab_mr_release create
|
61
|
+
gitlab_mr_release create
|
60
62
|
|
61
63
|
Options:
|
62
|
-
-s, --source=SOURCE # Source branch (e.g. develop)
|
63
|
-
-t, --target=TARGET # Target branch (e.g. master)
|
64
|
-
[--title=TITLE]
|
64
|
+
-s, [--source=SOURCE] # Source branch (e.g. develop)
|
65
|
+
-t, [--target=TARGET] # Target branch (e.g. master)
|
66
|
+
[--title=TITLE] # MergeRequest title (default. 'Release :source -> :target')
|
67
|
+
-l, [--labels=LABELS] # Labels for MR as a comma-separated list (e.g. 'label1,label2')
|
65
68
|
|
66
69
|
Create merge requrst
|
67
70
|
```
|
@@ -84,6 +87,9 @@ current `.env.gitlab`
|
|
84
87
|
```
|
85
88
|
GITLAB_PROJECT_NAME=group/name
|
86
89
|
TEMPLATE_FILE=gitlab_mr_release.md.erb
|
90
|
+
DEFAULT_SOURCE_BRANCH=develop
|
91
|
+
DEFAULT_TARGET_BRANCH=master
|
92
|
+
DEFAULT_LABELS=release
|
87
93
|
```
|
88
94
|
|
89
95
|
If defined both `~/.env.gitlab` and current `.env.gitlab`, current `.env.gitlab` is priority
|
@@ -26,9 +26,10 @@ module GitlabMrRelease
|
|
26
26
|
end
|
27
27
|
|
28
28
|
desc "create", "Create merge requrst"
|
29
|
-
option :source, aliases: "-s",
|
30
|
-
option :target, aliases: "-t",
|
29
|
+
option :source, aliases: "-s", desc: "Source branch (e.g. develop)"
|
30
|
+
option :target, aliases: "-t", desc: "Target branch (e.g. master)"
|
31
31
|
option :title, desc: "MergeRequest title (default. 'Release :source -> :target')"
|
32
|
+
option :labels, aliases: "-l", desc: "Labels for MR as a comma-separated list (e.g. 'label1,label2')"
|
32
33
|
def create
|
33
34
|
Dotenv.load(*GITLAB_ENV_FILES)
|
34
35
|
|
@@ -36,6 +37,9 @@ module GitlabMrRelease
|
|
36
37
|
assert_env("GITLAB_API_PRIVATE_TOKEN")
|
37
38
|
assert_env("GITLAB_PROJECT_NAME")
|
38
39
|
|
40
|
+
assert_option_or_env(:source, "DEFAULT_SOURCE_BRANCH")
|
41
|
+
assert_option_or_env(:target, "DEFAULT_TARGET_BRANCH")
|
42
|
+
|
39
43
|
template = File.read(template_file)
|
40
44
|
|
41
45
|
project = GitlabMrRelease::Project.new(
|
@@ -45,8 +49,9 @@ module GitlabMrRelease
|
|
45
49
|
)
|
46
50
|
|
47
51
|
mr = project.create_merge_request(
|
48
|
-
source_branch:
|
49
|
-
target_branch:
|
52
|
+
source_branch: source_branch,
|
53
|
+
target_branch: target_branch,
|
54
|
+
labels: labels,
|
50
55
|
title: generate_title,
|
51
56
|
template: template,
|
52
57
|
)
|
@@ -70,7 +75,14 @@ MergeRequest is created
|
|
70
75
|
private
|
71
76
|
|
72
77
|
def assert_env(name)
|
73
|
-
|
78
|
+
if !ENV[name] || ENV[name].empty?
|
79
|
+
puts "Error: Environment variable #{name} is required"
|
80
|
+
exit!
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def assert_option_or_env(option_name, env_name)
|
85
|
+
option_or_env!(option_name, env_name)
|
74
86
|
end
|
75
87
|
|
76
88
|
def generate_title
|
@@ -78,8 +90,8 @@ MergeRequest is created
|
|
78
90
|
|
79
91
|
generate_default_title(
|
80
92
|
title_template: ENV["DEFAULT_TITLE"],
|
81
|
-
source_branch:
|
82
|
-
target_branch:
|
93
|
+
source_branch: source_branch,
|
94
|
+
target_branch: target_branch,
|
83
95
|
)
|
84
96
|
end
|
85
97
|
|
@@ -91,5 +103,31 @@ MergeRequest is created
|
|
91
103
|
def template_file
|
92
104
|
ENV["TEMPLATE_FILE"] || "#{__dir__}/../templates/gitlab_mr_release.md.erb"
|
93
105
|
end
|
106
|
+
|
107
|
+
def source_branch
|
108
|
+
option_or_env(:source, "DEFAULT_SOURCE_BRANCH")
|
109
|
+
end
|
110
|
+
|
111
|
+
def target_branch
|
112
|
+
option_or_env(:target, "DEFAULT_TARGET_BRANCH")
|
113
|
+
end
|
114
|
+
|
115
|
+
def labels
|
116
|
+
option_or_env(:labels, "DEFAULT_LABELS")
|
117
|
+
end
|
118
|
+
|
119
|
+
def option_or_env(option_name, env_name, default = nil)
|
120
|
+
return options[option_name] if options[option_name] && !options[option_name].empty?
|
121
|
+
return ENV[env_name] if ENV[env_name] && !ENV[env_name].empty?
|
122
|
+
default
|
123
|
+
end
|
124
|
+
|
125
|
+
def option_or_env!(option_name, env_name)
|
126
|
+
value = option_or_env(option_name, env_name)
|
127
|
+
return value if value
|
128
|
+
|
129
|
+
puts "Error: --#{option_name} or #{env_name} is either required!"
|
130
|
+
exit!
|
131
|
+
end
|
94
132
|
end
|
95
133
|
end
|
@@ -41,12 +41,13 @@ module GitlabMrRelease
|
|
41
41
|
ERB.new(template, nil, "-").result(binding).strip
|
42
42
|
end
|
43
43
|
|
44
|
-
def create_merge_request(source_branch:, target_branch:, title:, template:)
|
44
|
+
def create_merge_request(source_branch:, target_branch:, title:, template:, labels:)
|
45
45
|
iids = merge_request_iids_between(target_branch, source_branch)
|
46
46
|
options = {
|
47
47
|
source_branch: source_branch,
|
48
48
|
target_branch: target_branch,
|
49
49
|
description: generate_description(iids, template),
|
50
|
+
labels: labels,
|
50
51
|
}
|
51
52
|
Gitlab.create_merge_request(escaped_project_name, title, options)
|
52
53
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitlab_mr_release
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sue445
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-08-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dotenv
|
@@ -208,12 +208,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
208
208
|
version: '0'
|
209
209
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
210
210
|
requirements:
|
211
|
-
- - "
|
211
|
+
- - ">"
|
212
212
|
- !ruby/object:Gem::Version
|
213
|
-
version:
|
213
|
+
version: 1.3.1
|
214
214
|
requirements: []
|
215
215
|
rubyforge_project:
|
216
|
-
rubygems_version: 2.
|
216
|
+
rubygems_version: 2.5.1
|
217
217
|
signing_key:
|
218
218
|
specification_version: 4
|
219
219
|
summary: Release MergeRequest generator for GitLab
|