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 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