gitlab_awesome_release 0.1.0.beta4 → 0.1.0.beta5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4321a1ddcd333baf04ef1a04801a708615032e71
4
- data.tar.gz: 4ff58ff17f64e70a5229db5c1ab772d355b6dab3
3
+ metadata.gz: 79dcca8a59190f69caa1c4fdcf4ccfd6a3128b24
4
+ data.tar.gz: 065353fae2858639d9fa75ced13213f5bdc8f7e5
5
5
  SHA512:
6
- metadata.gz: 2e7ebf887200d56c6c58a68bd8b9bf035b5e948fa81a2e5bedcd512760bd8c7c45a17090f6d4c69457d15ca60b21637b74b97e33a9767e3b55bb5208b83da767
7
- data.tar.gz: 9195680883c5ed88b9a28551f377e04f7bb5979d265ead07d5a93cb80e6cf10fff2af9381211d675b5903a2775e5ae27b755230ca6955d3ab050427a4cf2b5ef
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.beta3...HEAD)
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 :from
19
- option :to
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: "^v?[\\d.]+"
24
- option :log_level, desc: "Log level (debug|info|warn|error|fatal|unknown)", default: "info"
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
- gitlab_api_endpoint = option_or_env!(:gitlab_api_endpoint)
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(:from) || tag_names.first
49
- newest_tag = option_or_env(:to) || tag_names.last
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 = Gitlab.merge_requests(escaped_project_name, iid: iid).first
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
@@ -1,3 +1,3 @@
1
1
  module GitlabAwesomeRelease
2
- VERSION = "0.1.0.beta4"
2
+ VERSION = "0.1.0.beta5"
3
3
  end
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.beta4
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