gitlab_awesome_release 0.1.1 → 1.0.3

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
- SHA1:
3
- metadata.gz: faf0baaeedceda64b9174c9bb51eee530f0318e8
4
- data.tar.gz: 1fc19a40157181302624ba03bf87e52559e1a1bf
2
+ SHA256:
3
+ metadata.gz: cc883b30e29624a6142a294bbc9bb6b34c9b6bc08d0a91ce5447729659ba0bdb
4
+ data.tar.gz: d71375698195d481dcddbd7b380f067d2e45a7957d1e1d23311ca42ff90231a2
5
5
  SHA512:
6
- metadata.gz: 6e45e224237477007cb9cc328f7d7bf3e5ccf95b48b4c30edb49a4fdb98c0c2fe27d1475f483baf40d8c6e743365a3f96ef652c7edc89386e6ad3a8990901199
7
- data.tar.gz: 4ecd3077daca1765e1fb710cdb65b06579cc450e14aa7dcfd488132aa30479f37eafa8c2ef4b6d15b18e47385e18ab65a4516be95aec0749e337e89b2c84e602
6
+ metadata.gz: fa029fc2109fcc670a5d8894d44e1852a8752f038f1bbee981ad6843124cace6712a7301344f394489c5a5c3e213bb19b43b0bea19d54f166c6c07c8ef78255c
7
+ data.tar.gz: 4aede8475c7c84a6a2c8337ada8809489697ae95eb570fa69be274a894a23e6cdb71436fd9bceb1310a2ebc96adec89069670c3173a922d9cc6e1596719e2a9c
data/.env.gitlab.example CHANGED
@@ -1,4 +1,4 @@
1
- GITLAB_API_ENDPOINT=http://example.com/api/v3
1
+ GITLAB_API_ENDPOINT=http://example.com/api/v4
2
2
  GITLAB_API_PRIVATE_TOKEN=XXXXXXXXXXXXXXXXXXX
3
3
  GITLAB_PROJECT_NAME=group/name
4
4
  ALLOW_TAG_FORMAT=^v?[\d.]+
data/.gitignore CHANGED
@@ -8,3 +8,4 @@
8
8
  /spec/reports/
9
9
  /tmp/
10
10
  .env.gitlab
11
+ public/
data/.gitlab-ci.yml CHANGED
@@ -1,13 +1,12 @@
1
1
  stages:
2
2
  - test
3
+ - deploy
3
4
 
4
- .job_template: &job_definition
5
+ .default:
5
6
  variables:
6
- CI: "true"
7
7
  BUNDLE_CACHE: "vendor/bundle/"
8
8
 
9
9
  cache:
10
- untracked: true
11
10
  key: "$CI_BUILD_NAME"
12
11
  paths:
13
12
  - vendor/bundle/
@@ -21,66 +20,80 @@ stages:
21
20
  - tags
22
21
 
23
22
  ruby2.1:rspec:
24
- <<: *job_definition
25
- image: drecom/centos-ruby:2.1.10
23
+ extends: .default
24
+ image: ruby:2.1
26
25
 
27
26
  script:
28
27
  - ./gitlab-ci/rspec.sh
29
28
 
30
- ruby2.1:rubocop:
31
- <<: *job_definition
32
- image: drecom/centos-ruby:2.1.10
29
+ ruby2.2:rspec:
30
+ extends: .default
31
+ image: ruby:2.2
33
32
 
34
33
  script:
35
- - ./gitlab-ci/rubocop.sh
36
-
37
- allow_failure: true
34
+ - ./gitlab-ci/rspec.sh
38
35
 
39
- ruby2.2:rspec:
40
- <<: *job_definition
41
- image: drecom/centos-ruby:2.2.6
36
+ ruby2.3:rspec:
37
+ extends: .default
38
+ image: ruby:2.3
42
39
 
43
40
  script:
44
41
  - ./gitlab-ci/rspec.sh
45
42
 
46
- ruby2.2:rubocop:
47
- <<: *job_definition
48
-
49
- image: drecom/centos-ruby:2.2.6
43
+ ruby2.4:rspec:
44
+ extends: .default
45
+ image: ruby:2.4
50
46
 
51
47
  script:
52
- - ./gitlab-ci/rubocop.sh
53
-
54
- allow_failure: true
48
+ - ./gitlab-ci/rspec.sh
55
49
 
56
- ruby2.3:rspec:
57
- <<: *job_definition
58
- image: drecom/centos-ruby:2.3.3
50
+ ruby2.5:rspec:
51
+ extends: .default
52
+ image: ruby:2.5
59
53
 
60
54
  script:
61
55
  - ./gitlab-ci/rspec.sh
62
56
 
63
- ruby2.3:rubocop:
64
- <<: *job_definition
65
- image: drecom/centos-ruby:2.3.3
57
+ ruby2.6:rspec:
58
+ extends: .default
59
+ image: ruby:2.6
66
60
 
67
61
  script:
68
- - ./gitlab-ci/rubocop.sh
62
+ - ./gitlab-ci/rspec.sh
69
63
 
70
- allow_failure: true
64
+ ruby2.7:rspec:
65
+ extends: .default
66
+ image: ruby:2.7
71
67
 
72
- ruby2.4:rspec:
73
- <<: *job_definition
74
- image: drecom/centos-ruby:2.4.0
68
+ script:
69
+ - ./gitlab-ci/rspec.sh
70
+
71
+ ruby3.0:rspec:
72
+ extends: .default
73
+ image: ruby:3.0
75
74
 
76
75
  script:
77
76
  - ./gitlab-ci/rspec.sh
78
77
 
79
- ruby2.4:rubocop:
80
- <<: *job_definition
81
- image: drecom/centos-ruby:2.4.0
78
+ rubocop:
79
+ extends: .default
80
+ image: ruby
82
81
 
83
82
  script:
84
- - ./gitlab-ci/rubocop.sh
83
+ - bundle exec rubocop
85
84
 
86
85
  allow_failure: true
86
+
87
+ pages:
88
+ extends: .default
89
+ image: ruby
90
+
91
+ stage: deploy
92
+
93
+ script:
94
+ - bundle exec yard
95
+ artifacts:
96
+ paths:
97
+ - public
98
+ only:
99
+ - master
data/.rubocop.yml CHANGED
@@ -4,5 +4,17 @@ inherit_gem:
4
4
  AllCops:
5
5
  TargetRubyVersion: 2.4
6
6
 
7
+ Gemspec/RequiredRubyVersion:
8
+ Enabled: false
9
+
10
+ Layout/AlignHash:
11
+ EnforcedColonStyle: table
12
+
13
+ Layout/ClosingHeredocIndentation:
14
+ Enabled: false
15
+
16
+ Layout/IndentHeredoc:
17
+ Enabled: false
18
+
7
19
  Metrics/ClassLength:
8
20
  Max: 130
data/.yardopts CHANGED
@@ -1,2 +1,3 @@
1
1
  --markup markdown
2
2
  --no-private
3
+ --output-dir public
data/CHANGELOG.md CHANGED
@@ -1,6 +1,59 @@
1
1
  ## Unreleased
2
- [full changelog](https://gitlab.com/sue445/gitlab_awesome_release/compare/v0.1.0...HEAD)
2
+ [full changelog](https://gitlab.com/sue445/gitlab_awesome_release/compare/v1.0.3...master)
3
3
 
4
+ ## v1.0.3
5
+ [full changelog](https://gitlab.com/sue445/gitlab_awesome_release/compare/v1.0.2...v1.0.3)
6
+
7
+ ### Bugfix
8
+ * Bugfixed. 404 Not Found error when contains other repo's merge commit [!43](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/43) *@sue445*
9
+
10
+ ### Others
11
+ * CI against ruby 2.7 [!41](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/41) *@sue445*
12
+ * CI against for Ruby 3.0 [!42](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/42) *@sue445*
13
+
14
+ ## v1.0.2
15
+ [full changelog](https://gitlab.com/sue445/gitlab_awesome_release/compare/v1.0.1...v1.0.2)
16
+
17
+ ### Bugfix
18
+ * Fixed SEGV on ruby 2.6.0 [!39](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/39) *@sue445*
19
+
20
+ ### Others
21
+ * CI against ruby 2.5 [!33](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/33) *@sue445*
22
+ * Setup Dependency Scanning [!34](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/34) *@sue445*
23
+ * Fixed failed CI on ruby < 2.3 [!35](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/35) *@sue445*
24
+ * Fix CI [!36](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/36) *@sue445*
25
+ * Update rubocop [!37](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/37) *@sue445*
26
+ * Relax bundler dependency [!38](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/38) *@sue445*
27
+
28
+ ## v1.0.1
29
+ [full changelog](https://gitlab.com/sue445/gitlab_awesome_release/compare/v1.0.0...v1.0.1)
30
+
31
+ * Deploy yard to GitLab Pages [!29](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/29) *@sue445*
32
+ * Tweak .gitlab-ci.yml [!30](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/30) *@sue445*
33
+ * Support new merge commit format for GitLab v10.0.0+ [!31](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/31) *@sue445*
34
+ * Refactor .gitlab-ci.yml [!32](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/32) *@sue445*
35
+
36
+ ## v1.0.0
37
+ [full changelog](https://gitlab.com/sue445/gitlab_awesome_release/compare/v0.1.2...v1.0.0)
38
+
39
+ * :warning: Drop support GitLab API v3 and support GitLab API v4 [!28](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/28) *@sue445*
40
+
41
+ ## v0.1.2
42
+ [full changelog](https://gitlab.com/sue445/gitlab_awesome_release/compare/v0.1.1...v0.1.2)
43
+
44
+ * Run rubocop only latest ruby [!26](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/26) *@sue445*
45
+ * Fixed. can not call GitLab API using gitlab v4+ [!27](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/27) *@sue445*
46
+
47
+ ## v0.1.1
48
+ [full changelog](https://gitlab.com/sue445/gitlab_awesome_release/compare/v0.1.0...v0.1.1)
49
+
50
+ * Use ci cache [!19](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/19) *@sue445*
51
+ * Tweak gitlab-ci [!20](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/20) *@sue445*
52
+ * Add rubocop [!21](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/21) *@sue445*
53
+ * Use ruby 2.3.1 [!22](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/22) *@sue445*
54
+ * CI against ruby 2.1, 2.2, 2.3 and 2.4 [!23](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/23) *@sue445*
55
+ * Remove activesupport from dependency :put_litter_in_its_place: [!24](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/24) *@sue445*
56
+ * update onkcop [!25](https://gitlab.com/sue445/gitlab_awesome_release/merge_requests/25) *@sue445*
4
57
 
5
58
  ## v0.1.0
6
59
  [full changelog](https://gitlab.com/sue445/gitlab_awesome_release/compare/v0.1.0.beta8...v0.1.0)
data/Gemfile CHANGED
@@ -2,3 +2,10 @@ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in gitlab_awesome_release.gemspec
4
4
  gemspec
5
+
6
+ if Gem::Version.create(RUBY_VERSION) < Gem::Version.create("2.3.0")
7
+ group :development do
8
+ # NOTE: gitlab 4.6.0+ requires ruby 2.3.0+
9
+ gem "gitlab", "< 4.6.0"
10
+ end
11
+ end
data/README.md CHANGED
@@ -2,7 +2,8 @@
2
2
  Generate changelog from tags and MergeRequests on [GitLab](https://about.gitlab.com/)
3
3
 
4
4
  [![Gem Version](https://badge.fury.io/rb/gitlab_awesome_release.svg)](https://badge.fury.io/rb/gitlab_awesome_release)
5
- [![Dependency Status](https://gemnasium.com/7f058801015a4fbcf603d936c08836a4.svg)](https://gemnasium.com/19478d2f2735ee355f4c6cd1b8d2c12e)
5
+ [![pipeline status](https://gitlab.com/sue445/gitlab_awesome_release/badges/master/pipeline.svg)](https://gitlab.com/sue445/gitlab_awesome_release/commits/master)
6
+ [![coverage report](https://gitlab.com/sue445/gitlab_awesome_release/badges/master/coverage.svg)](https://gitlab.com/sue445/gitlab_awesome_release/commits/master)
6
7
 
7
8
  This is inspired by [GitHub Changelog Generator](https://github.com/skywinder/github-changelog-generator)
8
9
 
@@ -12,7 +13,8 @@ see [CHANGELOG.md](CHANGELOG.md)
12
13
  ## Requirements
13
14
 
14
15
  * Ruby v2.1+
15
- * GitLab v7.11.0+
16
+ * GitLab v9.0.0+
17
+ * GitLab API v4
16
18
 
17
19
  ## Installation
18
20
 
@@ -43,7 +45,7 @@ $ gitlab_awesome_release create_note --filename=CHANGELOG.md
43
45
  All options can be specified in both the command arguments and environment variables
44
46
 
45
47
  * `--gitlab-api-endpoint` , `GITLAB_API_ENDPOINT` **(either one is required)**
46
- * GitLab API endpoint (e.g. `http://example.com/api/v3`)
48
+ * GitLab API endpoint (e.g. `http://example.com/api/v4`)
47
49
  * `--gitlab-api-private-token` , `GITLAB_API_PRIVATE_TOKEN` **(either one is required)**
48
50
  * Your private token. see [/profile/account](img/private_token.png)
49
51
  * `--gitlab-project-name` , `GITLAB_PROJECT_NAME` **(either one is required)**
@@ -75,7 +77,7 @@ $ gitlab_awesome_release create_latest_note
75
77
  All options can be specified in both the command arguments and environment variables
76
78
 
77
79
  * `--gitlab-api-endpoint` , `GITLAB_API_ENDPOINT` **(either one is required)**
78
- * GitLab API endpoint (e.g. `http://example.com/api/v3`)
80
+ * GitLab API endpoint (e.g. `http://example.com/api/v4`)
79
81
  * `--gitlab-api-private-token` , `GITLAB_API_PRIVATE_TOKEN` **(either one is required)**
80
82
  * Your private token. see [/profile/account](img/private_token.png)
81
83
  * `--gitlab-project-name` , `GITLAB_PROJECT_NAME` **(either one is required)**
@@ -103,7 +105,7 @@ $ gitlab_awesome_release marking --from-tag=v0.1.0 --to-tag=v0.2.0
103
105
  All options can be specified in both the command arguments and environment variables
104
106
 
105
107
  * `--gitlab-api-endpoint` , `GITLAB_API_ENDPOINT` **(either one is required)**
106
- * GitLab API endpoint (e.g. `http://example.com/api/v3`)
108
+ * GitLab API endpoint (e.g. `http://example.com/api/v4`)
107
109
  * `--gitlab-api-private-token` , `GITLAB_API_PRIVATE_TOKEN` **(either one is required)**
108
110
  * Your private token. see [/profile/account](img/private_token.png)
109
111
  * `--gitlab-project-name` , `GITLAB_PROJECT_NAME` **(either one is required)**
@@ -122,10 +124,10 @@ All options can be specified in both the command arguments and environment varia
122
124
  ## ProTip
123
125
  Environment variables read from `~/.env.gitlab` and current `.env.gitlab`
124
126
 
125
- `~/.env.gitlab`
127
+ `~/.env.gitlab`
126
128
 
127
129
  ```
128
- GITLAB_API_ENDPOINT=http://example.com/api/v3
130
+ GITLAB_API_ENDPOINT=http://example.com/api/v4
129
131
  GITLAB_API_PRIVATE_TOKEN=XXXXXXXXXXXXXXXXXXX
130
132
  ALLOW_TAG_FORMAT=^v?[\d.]+
131
133
  ```
data/gitlab-ci/config ADDED
@@ -0,0 +1,4 @@
1
+ ---
2
+ BUNDLE_PATH: vendor/bundle
3
+ BUNDLE_JOBS: 2
4
+ BUNDLE_DISABLE_SHARED_GEMS: '1'
data/gitlab-ci/setup.sh CHANGED
@@ -1,3 +1,11 @@
1
1
  #!/bin/bash -xe
2
2
 
3
- bundle check --path=${BUNDLE_CACHE} || bundle install --path=${BUNDLE_CACHE} --jobs=2 --retry=3
3
+ mkdir -p .bundle/
4
+ cp gitlab-ci/config .bundle/
5
+
6
+ ruby --version
7
+ gem --version
8
+ bundle --version
9
+
10
+ bundle check --path=${BUNDLE_CACHE} || bundle update
11
+ bundle clean
@@ -1,5 +1,4 @@
1
- # coding: utf-8
2
- lib = File.expand_path("../lib", __FILE__)
1
+ lib = File.expand_path("lib", __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require "gitlab_awesome_release/version"
5
4
 
@@ -14,23 +13,24 @@ Gem::Specification.new do |spec|
14
13
  spec.homepage = "https://gitlab.com/sue445/gitlab_awesome_release"
15
14
  spec.license = "MIT"
16
15
 
17
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
16
+ spec.files = `git ls-files -z`.split("\x0").reject {|f| f.match(%r{^(test|spec|features)/}) }
18
17
  spec.bindir = "exe"
19
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
+ spec.executables = spec.files.grep(%r{^exe/}) {|f| File.basename(f) }
20
19
  spec.require_paths = ["lib"]
21
20
 
22
21
  spec.required_ruby_version = ">= 2.1.0"
23
22
 
24
23
  spec.add_dependency "dotenv"
25
- spec.add_dependency "gitlab"
24
+ spec.add_dependency "gitlab", ">= 4.0.0"
26
25
  spec.add_dependency "thor"
27
26
 
28
- spec.add_development_dependency "bundler", "~> 1.10"
29
- spec.add_development_dependency "onkcop", "0.47.1.0"
27
+ spec.add_development_dependency "bundler", ">= 1.10"
28
+ spec.add_development_dependency "onkcop", "0.53.0.2"
30
29
  spec.add_development_dependency "pry-byebug"
31
30
  spec.add_development_dependency "rake", "~> 10.0"
32
31
  spec.add_development_dependency "rspec"
33
32
  spec.add_development_dependency "rspec-temp_dir"
33
+ spec.add_development_dependency "rubocop", "0.57.2" # rubocop v0.58.0+ requires ruby 2.2+
34
34
  spec.add_development_dependency "simplecov"
35
35
  spec.add_development_dependency "webmock"
36
36
  spec.add_development_dependency "yard"
@@ -7,9 +7,9 @@ module GitlabAwesomeRelease
7
7
 
8
8
  class CLI < Thor
9
9
  DEFAULT_VERSION_FORMAT = "^v?[\\d.]+".freeze
10
- GITLAB_ENV_FILES = %w(.env.gitlab ~/.env.gitlab).freeze
10
+ GITLAB_ENV_FILES = %w[.env.gitlab ~/.env.gitlab].freeze
11
11
 
12
- GITLAB_API_DESCRIPTION = "GitLab API endpoint (e.g. http://example.com/api/v3)".freeze
12
+ GITLAB_API_DESCRIPTION = "GitLab API endpoint (e.g. http://example.com/api/v4)".freeze
13
13
  GITLAB_API_PRIVATE_TOKEN_DESCRIPTION = "Your private token".freeze
14
14
  GITLAB_API_PROJECT_NAME = "Target project (e.g. group/repo_name)".freeze
15
15
  LOG_LEVEL_DESCRIPTION = "Log level (debug|info|warn|error|fatal|unknown)".freeze
@@ -118,7 +118,7 @@ module GitlabAwesomeRelease
118
118
 
119
119
  @logger = Logger.new(STDOUT)
120
120
  @logger.level = logger_level(option_or_env(:log_level))
121
- @logger.formatter = proc { |severity, datetime, _progname, message|
121
+ @logger.formatter = proc {|severity, datetime, _progname, message|
122
122
  "[#{datetime}] #{severity} #{message}\n"
123
123
  }
124
124
 
@@ -128,7 +128,7 @@ module GitlabAwesomeRelease
128
128
  private_token: gitlab_api_private_token,
129
129
  project_name: gitlab_project_name,
130
130
  allow_tag_format: /#{allow_tag_format}/,
131
- logger: @logger
131
+ logger: @logger,
132
132
  )
133
133
  end
134
134
 
@@ -10,7 +10,7 @@ module GitlabAwesomeRelease
10
10
  end_time = Time.now
11
11
 
12
12
  # NOTE: options[:headers] contains PRIVATE-TOKEN
13
- _options = options.reject { |k, _v| k == :headers }
13
+ _options = options.reject {|k, _v| k == :headers }
14
14
  self.class.logger.debug "(#{end_time - start_time} sec) #{method.upcase} #{path} #{_options}"
15
15
  end
16
16
  end
@@ -22,7 +22,7 @@ module GitlabAwesomeRelease
22
22
  end
23
23
 
24
24
  def web_url
25
- @web_url ||= Gitlab.project(escaped_project_name).web_url
25
+ @web_url ||= Gitlab.project(@project_name).web_url
26
26
  end
27
27
 
28
28
  # all tag names order by author date
@@ -33,14 +33,18 @@ module GitlabAwesomeRelease
33
33
  @logger.info "fetch git tags"
34
34
  repo_tags =
35
35
  with_paging do |params|
36
- Gitlab.repo_tags(escaped_project_name, params)
36
+ Gitlab.repo_tags(@project_name, params)
37
37
  end
38
- @all_tag_names = repo_tags.sort_by { |tag| tag.commit.authored_date }.map(&:name)
38
+
39
+ # rubocop:disable Style/SymbolProc avoid SEGV on ruby 2.6.0
40
+ # https://bugs.ruby-lang.org/issues/15489
41
+ @all_tag_names = repo_tags.sort_by {|tag| tag.commit.authored_date }.map {|tag| tag.name }
42
+ # rubocop:enable Style/SymbolProc
39
43
  end
40
44
 
41
45
  # @return [Array<String>]
42
46
  def release_tag_names
43
- all_tag_names.find_all { |tag| tag =~ @allow_tag_format }
47
+ all_tag_names.find_all {|tag| tag =~ @allow_tag_format }
44
48
  end
45
49
 
46
50
  # @param oldest_tag [String]
@@ -96,11 +100,11 @@ module GitlabAwesomeRelease
96
100
  # @param to [String]
97
101
  # @return [Array<Integer>] MergeRequest iids
98
102
  def merge_request_iids_between(from, to)
99
- commits = Gitlab.repo_compare(escaped_project_name, from, to).commits
103
+ commits = Gitlab.repo_compare(@project_name, from, to).commits
100
104
 
101
105
  merge_request_iids =
102
106
  commits.map do |commit|
103
- commit["message"] =~ /^Merge branch .*See merge request \!(\d+)$/m
107
+ commit["message"] =~ /^Merge branch .*See merge request .*\!(\d+)$/m
104
108
  Regexp.last_match(1)
105
109
  end
106
110
 
@@ -119,24 +123,29 @@ module GitlabAwesomeRelease
119
123
 
120
124
  # find MergeRequest with iid
121
125
  def merge_request(iid)
122
- mr = Gitlab.merge_requests(escaped_project_name, iid: iid).first
123
- assert_merge_request_iid(mr, iid) if mr
124
- mr
126
+ Gitlab.merge_request(@project_name, iid)
125
127
  end
126
128
 
127
129
  def add_merge_request_label(mr, label)
128
130
  labels = mr.labels
129
131
  labels << label
130
132
 
131
- Gitlab.update_merge_request(escaped_project_name, mr.id, labels: labels.uniq.join(","))
133
+ Gitlab.update_merge_request(@project_name, mr.iid, labels: labels.uniq.join(","))
132
134
  @logger.info "Add [#{label}] to !#{mr.iid} #{mr.title}"
133
135
  end
134
136
 
135
- private
136
-
137
- def escaped_project_name
138
- CGI.escape(@project_name)
137
+ def merge_requests_summary_between(from, to)
138
+ mr_iids = merge_request_iids_between(from, to)
139
+ mr_iids.each_with_object("") do |iid, str|
140
+ begin
141
+ str << merge_request_summary(iid) + "\n"
142
+ rescue Gitlab::Error::NotFound # rubocop:disable Lint/HandleExceptions
143
+ # NOTE: suppress error (e.g. other repo's iid)
144
+ end
139
145
  end
146
+ end
147
+
148
+ private
140
149
 
141
150
  # @yield [params] paging block
142
151
  # @yieldparam params [Hash] paging params for GitLab API (page: current page, per_page)
@@ -151,17 +160,5 @@ module GitlabAwesomeRelease
151
160
  page += 1
152
161
  end
153
162
  end
154
-
155
- def merge_requests_summary_between(from, to)
156
- mr_iids = merge_request_iids_between(from, to)
157
- mr_iids.each_with_object("") do |iid, str|
158
- str << merge_request_summary(iid) + "\n"
159
- end
160
- end
161
-
162
- def assert_merge_request_iid(mr, iid)
163
- # NOTE: MR is found, but server is old GitLab?
164
- raise "MergeRequest iid does not match (expected #{iid}, but #{mr.iid})" unless iid == mr.iid
165
- end
166
163
  end
167
164
  end
@@ -1,3 +1,3 @@
1
1
  module GitlabAwesomeRelease
2
- VERSION = "0.1.1".freeze
2
+ VERSION = "1.0.3".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab_awesome_release
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - sue445
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-02-06 00:00:00.000000000 Z
11
+ date: 2021-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 4.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 4.0.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: thor
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -56,14 +56,14 @@ dependencies:
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.10'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.10'
69
69
  - !ruby/object:Gem::Dependency
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 0.47.1.0
75
+ version: 0.53.0.2
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: 0.47.1.0
82
+ version: 0.53.0.2
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: pry-byebug
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '='
144
+ - !ruby/object:Gem::Version
145
+ version: 0.57.2
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '='
151
+ - !ruby/object:Gem::Version
152
+ version: 0.57.2
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: simplecov
141
155
  requirement: !ruby/object:Gem::Requirement
@@ -200,8 +214,8 @@ files:
200
214
  - bin/console
201
215
  - bin/setup
202
216
  - exe/gitlab_awesome_release
217
+ - gitlab-ci/config
203
218
  - gitlab-ci/rspec.sh
204
- - gitlab-ci/rubocop.sh
205
219
  - gitlab-ci/setup.sh
206
220
  - gitlab_awesome_release.gemspec
207
221
  - img/private_token.png
@@ -215,7 +229,7 @@ homepage: https://gitlab.com/sue445/gitlab_awesome_release
215
229
  licenses:
216
230
  - MIT
217
231
  metadata: {}
218
- post_install_message:
232
+ post_install_message:
219
233
  rdoc_options: []
220
234
  require_paths:
221
235
  - lib
@@ -230,9 +244,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
230
244
  - !ruby/object:Gem::Version
231
245
  version: '0'
232
246
  requirements: []
233
- rubyforge_project:
234
- rubygems_version: 2.5.1
235
- signing_key:
247
+ rubygems_version: 3.1.4
248
+ signing_key:
236
249
  specification_version: 4
237
250
  summary: Generate changelog from tags and MergeRequests on GitLab
238
251
  test_files: []
data/gitlab-ci/rubocop.sh DELETED
@@ -1,3 +0,0 @@
1
- #!/bin/bash -xe
2
-
3
- bundle exec rubocop