unwrappr 0.3.2 → 0.5.0

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
  SHA256:
3
- metadata.gz: 57128e02d34b1fcc40925c9b351f33facf1151c2e1ebc6487cc287df16503f04
4
- data.tar.gz: c1f7fac65bedbde6ddcf5229ff97b4337fbf488171dcdfa62acf38dc2e254d85
3
+ metadata.gz: ac46367aac21e83d32adc4e911daae5b8048f65a8939895e47de3e5ae94e7faf
4
+ data.tar.gz: 7e3ad4f274d8dea952ddbbb2012256f90da27dae015974b3df19fd17d8fa5f6a
5
5
  SHA512:
6
- metadata.gz: c3e26ba787dc0b1bd65debc91dcb9ef9aa771bcee690a96acd7f28c4a62fcd3aca65aa62885129b400baf147338fd74cff627e1f94c1431f4ed08f5df2d0016b
7
- data.tar.gz: 536437315c3e31dba35eec20a2d6d2cb6b0212cee750519afa6cde9cee75267ee4b814b43f3221daa534b6b353a36610a34a9eb639d578d32ed600cbf4ea4237
6
+ metadata.gz: e837150f75105603329e612b5f351c358aee257e898cdcb2f402de7df1b451f5427d44e005f2d0923c696ef5914d42e62b5d1d9ccfd44bb9d62138f5aa51e485
7
+ data.tar.gz: 450af0d234ca5dc144553c17a76a43f3e3a025ffe30ba0c8e6d9dc5e4a75abbcfbd0bc6c452c995ac25f93aa46a73aaeda5eec4b081f54e429e476786eefa20b
@@ -1,6 +1,15 @@
1
1
  ---
2
2
 
3
3
  steps:
4
+ - label: ":ruby: 2.6 :rspec:"
5
+ command: ".buildkite/steps/rspec.sh"
6
+ plugins:
7
+ docker#v1.2.1:
8
+ image: "ruby:2.6"
9
+ agents:
10
+ queue: "platform-docker-spot"
11
+ timeout_in_minutes: 5
12
+
4
13
  - label: ":ruby: 2.5 :rspec:"
5
14
  command: ".buildkite/steps/rspec.sh"
6
15
  plugins:
@@ -0,0 +1,23 @@
1
+ name: CI
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ test:
7
+ strategy:
8
+ fail-fast: false
9
+ matrix:
10
+ ruby: ['2.5', '2.6', '2.7', '3.0']
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - name: Checkout
15
+ uses: actions/checkout@v2
16
+ - name: Set up Ruby
17
+ uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: ${{ matrix.ruby }}
20
+ - name: Install dependencies
21
+ run: bundle install
22
+ - name: Run tests
23
+ run: bundle exec rake
data/.gitignore CHANGED
@@ -1,3 +1,5 @@
1
+ *.gem
2
+ .rspec_status
1
3
  /.bundle/
2
4
  /.yardoc
3
5
  /Gemfile.lock
@@ -9,6 +11,3 @@
9
11
  /spec/reports/
10
12
  /stdout.txt
11
13
  /tmp/
12
-
13
- # rspec failure tracking
14
- .rspec_status
@@ -1,8 +1,9 @@
1
1
  ---
2
2
  AllCops:
3
- TargetRubyVersion: 2.5
4
3
  Exclude:
5
4
  - 'spike/*.rb'
5
+ NewCops: enable
6
+ TargetRubyVersion: 2.5
6
7
 
7
8
  Gemspec/RequiredRubyVersion:
8
9
  Enabled: false
@@ -0,0 +1 @@
1
+ ruby 3.0.0
@@ -6,16 +6,99 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ [Unreleased]: https://github.com/envato/unwrappr/compare/v0.5.0...HEAD
10
+
11
+ ## [0.5.0] 2021-01-04
12
+
13
+ ### Add
14
+ - Support for Ruby 3. ([#79])
15
+ - Allow specification of base branch, upon which to base the pull-request
16
+ ([#80], [#84])
17
+
18
+ ### Changed
19
+ - Moved CI to GitHub Actions ([#78])
20
+ - Fixed homepage URL in gemspec ([#77])
21
+ - Default branch is now `main`([#81])
22
+ - Rename private predicate methods in GitCommandRunner to be more descriptive.
23
+ ([#82])
24
+ - Upgrade Faraday dependency to version 1 ([#85])
25
+
26
+ [0.5.0]: https://github.com/envato/unwrappr/compare/v0.4.0..v0.5.0
27
+ [#77]: https://github.com/envato/unwrappr/pull/77
28
+ [#78]: https://github.com/envato/unwrappr/pull/78
29
+ [#79]: https://github.com/envato/unwrappr/pull/79
30
+ [#80]: https://github.com/envato/unwrappr/pull/80
31
+ [#81]: https://github.com/envato/unwrappr/pull/81
32
+ [#82]: https://github.com/envato/unwrappr/pull/82
33
+ [#84]: https://github.com/envato/unwrappr/pull/84
34
+ [#85]: https://github.com/envato/unwrappr/pull/85
35
+
36
+ ## [0.4.0] 2020-04-14
37
+ ### Changed
38
+ - `bundler-audit` limited to `>= 0.6.0` ([#71])
39
+
40
+ ### Removed
41
+ - Support for Ruby 2.3 and 2.4 ([#73])
42
+
43
+ ### Added
44
+ - Rake vulnerability CVE-2020-8130 fixes ([#72])
45
+ - Support for Ruby 2.6 and 2.7 ([#73])
46
+ - Support for version numbers including a fourth segment (_e.g._ "6.0.2.2") ([#74])
47
+ - Support for GitHub URIs including anchors ([#75])
48
+
49
+ [0.4.0]: https://github.com/envato/unwrappr/compare/v0.3.5..v0.4.0
50
+ [#71]: https://github.com/envato/unwrappr/pull/71
51
+ [#72]: https://github.com/envato/unwrappr/pull/72
52
+ [#73]: https://github.com/envato/unwrappr/pull/73
53
+ [#74]: https://github.com/envato/unwrappr/pull/74
54
+ [#75]: https://github.com/envato/unwrappr/pull/75
55
+
56
+ ## [0.3.5] 2019-11-28
57
+ ### Changed
58
+ - ISO 8601 Date and time format for branch name ([#68])
59
+ ### Fixed
60
+ - Changelog and source links in PR annotation are specific to the version
61
+ used in the project, not just the latest available on Rubygems.org ([#69]).
62
+
63
+ [0.3.5]: https://github.com/envato/unwrappr/compare/v0.3.4...v0.3.5
64
+ [#68]: https://github.com/envato/unwrappr/pull/68
65
+ [#69]: https://github.com/envato/unwrappr/pull/69
66
+
67
+ ## [0.3.4] 2019-10-24
68
+ ### Fixed
69
+ - Fix failure to annotate gem change with '.' in its name ([#65]).
70
+
71
+ [0.3.4]: https://github.com/envato/unwrappr/compare/v0.3.3...v0.3.4
72
+ [#65]: https://github.com/envato/unwrappr/pull/65
73
+
74
+ ## [0.3.3] 2019-06-07
75
+ ### Fixed
76
+ - Fix issue where gem install will now work on RubyGems v3 ([#61]).
77
+
78
+ [0.3.3]: https://github.com/envato/unwrappr/compare/v0.3.2...v0.3.3
79
+ [#61]: https://github.com/envato/unwrappr/pull/61
80
+
9
81
  ## [0.3.2] 2018-11-13
10
82
  ### Added
11
- - Specify Ruby and RubyGems requirements in gemspec.
12
- - Clone one git repository or more and create an annotated bundle update PR for each.
83
+ - Specify Ruby and RubyGems requirements in gemspec ([#56]).
84
+ - Clone one git repository or more and create an annotated bundle update PR for each ([#52]).
85
+
86
+ [0.3.2]: https://github.com/envato/unwrappr/compare/v0.3.1...v0.3.2
87
+ [#56]: https://github.com/envato/unwrappr/pull/56
88
+ [#52]: https://github.com/envato/unwrappr/pull/52
13
89
 
14
90
  ## [0.3.1] 2018-11-12
15
91
  ### Changed
16
- - Travis CI enabled
17
- - Ensure we are protected against CVE-2017-8418
18
- - RubyGems metadata includes a description
92
+ - Travis CI enabled ([#55]).
93
+ - Ensure we are protected against CVE-2017-8418 ([#54]).
94
+ - RubyGems metadata includes a description ([#49]).
95
+
96
+ [0.3.1]: https://github.com/envato/unwrappr/compare/v0.3.0...v0.3.1
97
+ [#55]: https://github.com/envato/unwrappr/pull/55
98
+ [#54]: https://github.com/envato/unwrappr/pull/54
99
+ [#49]: https://github.com/envato/unwrappr/pull/49
19
100
 
20
101
  ## [0.3.0] 2018-11-12
21
- ## Initial Release
102
+ ### Initial Release
103
+
104
+ [0.3.0]: https://github.com/envato/unwrappr/releases/tag/v0.3.0
data/README.md CHANGED
@@ -16,7 +16,7 @@ to get regular dependency updates into production.
16
16
  - Vulnerability advisory information using [bundler-audit](https://github.com/rubysec/bundler-audit)
17
17
  - Links to the home page, source code and change log (where available) of each gem
18
18
 
19
- ## Development status [![Build Status](https://travis-ci.org/envato/unwrappr.svg?branch=master)](https://travis-ci.org/envato/unwrappr)
19
+ ## Development status [![CI Status](https://github.com/envato/unwrappr/workflows/CI/badge.svg)](https://github.com/envato/unwrappr/actions?query=workflow%3ACI)
20
20
 
21
21
  `unwrappr` is used in many projects around [Envato][envato]
22
22
  However, it is still undergoing development and features are likely to change
@@ -63,13 +63,12 @@ See https://github.com/settings/tokens to set up personal access tokens.
63
63
 
64
64
  ## Requirements
65
65
 
66
- - Ruby (tested against v2.3 and above)
66
+ - Ruby (tested against v2.5 and above)
67
67
  - GitHub access (see Configuration section)
68
68
 
69
- ## Contact ![Join the chat at https://gitter.im/envato/unwrappr](https://badges.gitter.im/Join%20Chat.svg)
69
+ ## Contact
70
70
 
71
71
  - [GitHub project](https://github.com/envato/unwrappr)
72
- - [Gitter chat room](https://gitter.im/envato/unwrappr)
73
72
  - Bug reports and feature requests are welcome via [GitHub Issues](https://github.com/envato/unwrappr/issues)
74
73
 
75
74
  ## Maintainers
@@ -86,16 +85,16 @@ See https://github.com/settings/tokens to set up personal access tokens.
86
85
  - [Em Esc](https://github.com/emesc)
87
86
  - [Chun-wei Kuo](https://github.com/Domon)
88
87
 
89
- ## License [![license](https://img.shields.io/github/license/mashape/apistatus.svg?style=flat-square)](https://github.com/envato/unwrappr/blob/master/LICENSE.txt)
88
+ ## License [![license](https://img.shields.io/github/license/mashape/apistatus.svg?style=flat-square)](https://github.com/envato/unwrappr/blob/HEAD/LICENSE.txt)
90
89
 
91
90
  `unwrappr` uses MIT license. See
92
- [`LICENSE.txt`](https://github.com/envato/unwrappr/blob/master/LICENSE.txt) for
91
+ [`LICENSE.txt`](https://github.com/envato/unwrappr/blob/HEAD/LICENSE.txt) for
93
92
  details.
94
93
 
95
94
  ## Code of Conduct
96
95
 
97
96
  We welcome contribution from everyone. Read more about it in
98
- [`CODE_OF_CONDUCT.md`](https://github.com/envato/unwrappr/blob/master/CODE_OF_CONDUCT.md)
97
+ [`CODE_OF_CONDUCT.md`](https://github.com/envato/unwrappr/blob/HEAD/CODE_OF_CONDUCT.md)
99
98
 
100
99
  ## Contributing [![PRs welcome](https://img.shields.io/badge/PRs-welcome-orange.svg?style=flat-square)](https://github.com/envato/unwrappr/issues)
101
100
 
@@ -8,6 +8,15 @@ module Unwrappr
8
8
  class CLI < Clamp::Command
9
9
  self.default_subcommand = 'all'
10
10
 
11
+ option(['-b', '--base'],
12
+ 'BRANCH',
13
+ <<~DESCRIPTION,
14
+ the branch upon which to base the pull-request. Omit this option
15
+ to use the current branch, or repository's default branch
16
+ (typically 'origin/main') on clone.
17
+ DESCRIPTION
18
+ attribute_name: :base_branch)
19
+
11
20
  option ['-v', '--version'], :flag, 'Show version' do
12
21
  puts "unwrappr v#{Unwrappr::VERSION}"
13
22
  exit(0)
@@ -16,13 +25,12 @@ module Unwrappr
16
25
  subcommand 'all', 'run bundle update, push to github, '\
17
26
  'create a pr and annotate changes' do
18
27
  def execute
19
- Unwrappr.run_unwapper_in_pwd
28
+ Unwrappr.run_unwapper_in_pwd(base_branch: base_branch)
20
29
  end
21
30
  end
22
31
 
23
32
  subcommand 'annotate-pull-request',
24
33
  'Annotate Gemfile.lock changes in a Github pull request' do
25
-
26
34
  option ['-r', '--repo'], 'REPO',
27
35
  'The repo in github <owner/project>',
28
36
  required: true
@@ -60,18 +68,18 @@ module Unwrappr
60
68
  )
61
69
  end
62
70
 
63
- Dir.chdir(repo) { Unwrappr.run_unwapper_in_pwd }
71
+ Dir.chdir(repo) { Unwrappr.run_unwapper_in_pwd(base_branch: base_branch) }
64
72
  end
65
73
  end
66
74
  end
67
75
  end
68
76
 
69
- def self.run_unwapper_in_pwd
77
+ def self.run_unwapper_in_pwd(base_branch:)
70
78
  return unless lockfile_present?
71
79
 
72
80
  puts "Doing the unwrappr thing in #{Dir.pwd}"
73
81
 
74
- GitCommandRunner.create_branch!
82
+ GitCommandRunner.create_branch!(base_branch: base_branch)
75
83
  BundlerCommandRunner.bundle_update!
76
84
  GitCommandRunner.commit_and_push_changes!
77
85
  GitHub::Client.make_pull_request!
@@ -18,6 +18,7 @@ module Unwrappr
18
18
  end
19
19
 
20
20
  attr_reader :name, :head_version, :base_version, :line_number
21
+
21
22
  def_delegators :@lock_file_diff, :filename, :sha
22
23
 
23
24
  def added?
@@ -43,6 +44,11 @@ module Unwrappr
43
44
  head_version.patch_difference?(base_version)
44
45
  end
45
46
 
47
+ def hotfix?
48
+ head_version && base_version &&
49
+ head_version.hotfix_difference?(base_version)
50
+ end
51
+
46
52
  def upgrade?
47
53
  head_version && base_version && (head_version > base_version)
48
54
  end
@@ -13,9 +13,10 @@ module Unwrappr
13
13
  @major = segment(0)
14
14
  @minor = segment(1)
15
15
  @patch = segment(2)
16
+ @hotfix = segment(3)
16
17
  end
17
18
 
18
- attr_reader :major, :minor, :patch, :version
19
+ attr_reader :major, :minor, :patch, :hotfix, :version
19
20
 
20
21
  def major_difference?(other)
21
22
  (major != other.major)
@@ -32,6 +33,13 @@ module Unwrappr
32
33
  (patch != other.patch)
33
34
  end
34
35
 
36
+ def hotfix_difference?(other)
37
+ (major == other.major) &&
38
+ (minor == other.minor) &&
39
+ (patch == other.patch) &&
40
+ (hotfix != other.hotfix)
41
+ end
42
+
35
43
  def <=>(other)
36
44
  @version <=> other.version
37
45
  end
@@ -7,15 +7,15 @@ module Unwrappr
7
7
  # Runs Git commands
8
8
  module GitCommandRunner
9
9
  class << self
10
- def create_branch!
10
+ def create_branch!(base_branch:)
11
11
  raise 'Not a git working dir' unless git_dir?
12
- raise 'failed to create branch' unless branch_created?
12
+ raise "failed to create branch from '#{base_branch}'" unless checkout_target_branch(base_branch: base_branch)
13
13
  end
14
14
 
15
15
  def commit_and_push_changes!
16
- raise 'failed to add git changes' unless git_added_changes?
17
- raise 'failed to commit changes' unless git_committed?
18
- raise 'failed to push changes' unless git_pushed?
16
+ raise 'failed to add git changes' unless stage_all_changes
17
+ raise 'failed to commit changes' unless commit_staged_changes
18
+ raise 'failed to push changes' unless push_current_branch_to_origin
19
19
  end
20
20
 
21
21
  def reset_client
@@ -50,23 +50,23 @@ module Unwrappr
50
50
  git_wrap { !current_branch_name.empty? }
51
51
  end
52
52
 
53
- def branch_created?
54
- timestamp = Time.now.strftime('%Y%d%m-%H%M').freeze
53
+ def checkout_target_branch(base_branch:)
54
+ timestamp = Time.now.strftime('%Y%m%d-%H%M').freeze
55
55
  git_wrap do
56
- git.checkout('origin/master')
56
+ git.checkout(base_branch) unless base_branch.nil?
57
57
  git.branch("auto_bundle_update_#{timestamp}").checkout
58
58
  end
59
59
  end
60
60
 
61
- def git_added_changes?
61
+ def stage_all_changes
62
62
  git_wrap { git.add(all: true) }
63
63
  end
64
64
 
65
- def git_committed?
65
+ def commit_staged_changes
66
66
  git_wrap { git.commit('Automatic Bundle Update') }
67
67
  end
68
68
 
69
- def git_pushed?
69
+ def push_current_branch_to_origin
70
70
  git_wrap { git.push('origin', current_branch_name) }
71
71
  end
72
72
 
@@ -80,7 +80,7 @@ module Unwrappr
80
80
 
81
81
  def log_options
82
82
  {}.tap do |opt|
83
- opt[:log] = Logger.new(STDOUT) if ENV['DEBUG']
83
+ opt[:log] = Logger.new($stdout) if ENV['DEBUG']
84
84
  end
85
85
  end
86
86
 
@@ -30,7 +30,7 @@ module Unwrappr
30
30
  def create_and_annotate_pull_request
31
31
  pr = git_client.create_pull_request(
32
32
  repo_name_and_org,
33
- 'master',
33
+ repo_default_branch,
34
34
  Unwrappr::GitCommandRunner.current_branch_name,
35
35
  'Automated Bundle Update',
36
36
  pull_request_body
@@ -38,6 +38,11 @@ module Unwrappr
38
38
  annotate_pull_request(pr.number)
39
39
  end
40
40
 
41
+ def repo_default_branch
42
+ git_client.repository(repo_name_and_org)
43
+ .default_branch
44
+ end
45
+
41
46
  def pull_request_body
42
47
  <<~BODY
43
48
  Gems brought up-to-date with :heart: by [Unwrappr](https://github.com/envato/unwrappr).
@@ -58,16 +63,16 @@ module Unwrappr
58
63
  end
59
64
 
60
65
  def github_token
61
- @github_token ||= ENV.fetch('GITHUB_TOKEN') do
62
- raise %(
66
+ @github_token ||= ENV.fetch('GITHUB_TOKEN')
67
+ rescue KeyError
68
+ raise %(
63
69
  Missing environment variable GITHUB_TOKEN.
64
70
  See https://github.com/settings/tokens to set up personal access tokens.
65
71
  Add to the environment:
66
72
 
67
73
  export GITHUB_TOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
68
74
 
69
- )
70
- end
75
+ )
71
76
  end
72
77
  end
73
78
  end
@@ -63,7 +63,7 @@ module Unwrappr
63
63
  # '+ websocket-driver (0.6.5)'
64
64
  # Careful not to match this (note the wider indent):
65
65
  # '+ websocket-extensions (>= 0.1.0)'
66
- pattern = /^(?<change_type>[\+\-]) (?<gem_name>[\w-]+) \(\d/
66
+ pattern = /^(?<change_type>[+\-]) (?<gem_name>\S+) \(\d/
67
67
  match = pattern.match(line)
68
68
  return match[:gem_name], match[:change_type] unless match.nil?
69
69
  end
@@ -12,13 +12,13 @@ module Unwrappr
12
12
  @client = client
13
13
  end
14
14
 
15
- def research(gem_change, gem_change_info)
16
- repo = gem_change_info[:github_repo]
17
- return gem_change_info if repo.nil?
15
+ def research(gem_change, change_info)
16
+ return change_info if github_repo_not_identified?(change_info) ||
17
+ gem_added_or_removed?(gem_change)
18
18
 
19
- gem_change_info.merge(
19
+ change_info.merge(
20
20
  github_comparison: try_comparing(
21
- repo: repo,
21
+ repo: github_repo(change_info),
22
22
  base: gem_change.base_version,
23
23
  head: gem_change.head_version
24
24
  )
@@ -38,6 +38,18 @@ module Unwrappr
38
38
  rescue Octokit::NotFound
39
39
  nil
40
40
  end
41
+
42
+ def github_repo_not_identified?(gem_change_info)
43
+ github_repo(gem_change_info).nil?
44
+ end
45
+
46
+ def github_repo(gem_change_info)
47
+ gem_change_info[:github_repo]
48
+ end
49
+
50
+ def gem_added_or_removed?(gem_change)
51
+ gem_change.base_version.nil? || gem_change.head_version.nil?
52
+ end
41
53
  end
42
54
  end
43
55
  end
@@ -7,7 +7,10 @@ module Unwrappr
7
7
  # Implements the `gem_researcher` interface required by the
8
8
  # LockFileAnnotator.
9
9
  class GithubRepo
10
- GITHUB_URI_PATTERN = %r{^https?://github.com/(?<repo>[^/]+/[^/]+)}i.freeze
10
+ GITHUB_URI_PATTERN = %r{^https?://
11
+ github.com/
12
+ (?<repo>[^/]+/[[:alnum:]_.-]+)
13
+ }ix.freeze
11
14
 
12
15
  def research(_gem_change, gem_change_info)
13
16
  repo = match_repo(gem_change_info, :source_code_uri) ||
@@ -9,7 +9,9 @@ module Unwrappr
9
9
  class RubyGemsInfo
10
10
  def research(gem_change, gem_change_info)
11
11
  gem_change_info.merge(
12
- ruby_gems: ::Unwrappr::RubyGems.gem_info(gem_change.name)
12
+ ruby_gems: ::Unwrappr::RubyGems.gem_info(
13
+ gem_change.name, gem_change.head_version
14
+ )
13
15
  )
14
16
  end
15
17
  end
@@ -6,15 +6,11 @@ module Unwrappr
6
6
  # A wrapper around RubyGems' API
7
7
  module RubyGems
8
8
  SERVER = 'https://rubygems.org'
9
- GET_GEM = '/api/v1/gems/%s.json'
9
+ GET_GEM = '/api/v2/rubygems/%s/versions/%s.json'
10
10
 
11
11
  class << self
12
- def gem_info(name)
13
- parse(Faraday.get(SERVER + GET_GEM % name), name)
14
- end
15
-
16
- def try_get_source_code_uri(gem_name)
17
- Unwrappr::RubyGems.gem_info(gem_name)&.source_code_uri
12
+ def gem_info(name, version)
13
+ parse(Faraday.get(SERVER + format(GET_GEM, name, version)), name)
18
14
  end
19
15
 
20
16
  private
@@ -26,7 +22,7 @@ module Unwrappr
26
22
  when 404
27
23
  nil
28
24
  else
29
- STDERR.puts(error_message(response: response, name: name))
25
+ warn(error_message(response: response, name: name))
30
26
  end
31
27
  end
32
28
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Unwrappr
4
- VERSION = '0.3.2'
4
+ VERSION = '0.5.0'
5
5
  end
@@ -27,18 +27,28 @@ module Unwrappr
27
27
  private
28
28
 
29
29
  def_delegators(:@gem_change,
30
- :added?, :removed?, :major?, :minor?, :patch?,
30
+ :added?, :removed?, :major?, :minor?, :patch?, :hotfix?,
31
31
  :upgrade?, :downgrade?, :base_version, :head_version)
32
32
 
33
33
  def change_description
34
- if added? then 'Gem added :snowman:'
35
- elsif removed? then 'Gem removed :fire:'
36
- elsif major?
34
+ if added?
35
+ 'Gem added :snowman:'
36
+ elsif removed?
37
+ 'Gem removed :fire:'
38
+ else
39
+ version_description
40
+ end
41
+ end
42
+
43
+ def version_description
44
+ if major?
37
45
  "**Major** version #{grade}:exclamation: #{version_diff}"
38
46
  elsif minor?
39
47
  "**Minor** version #{grade}:large_orange_diamond: #{version_diff}"
40
48
  elsif patch?
41
49
  "**Patch** version #{grade}:small_blue_diamond: #{version_diff}"
50
+ elsif hotfix?
51
+ "**Hotfix** version #{grade}:small_red_triangle: #{version_diff}"
42
52
  end
43
53
  end
44
54
 
@@ -12,6 +12,9 @@ AUTHORS = {
12
12
  'vladimir.chervanev@envato.com' => 'Vladimir Chervanev'
13
13
  }.freeze
14
14
 
15
+ GITHUB_URL = 'https://github.com/envato/unwrappr'
16
+ HOMEPAGE_URL = 'https://opensource.envato.com/projects/unwrappr.html'
17
+
15
18
  Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength:
16
19
  spec.name = 'unwrappr'
17
20
  spec.version = Unwrappr::VERSION
@@ -20,10 +23,10 @@ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength:
20
23
 
21
24
  spec.summary = "A tool to unwrap your gems and see what's changed easily"
22
25
  spec.description = 'bundle update PRs: Automated. Annotated.'
23
- spec.homepage = 'http://www.unwrappr.com.org'
26
+ spec.homepage = HOMEPAGE_URL
24
27
  spec.license = 'MIT'
25
- spec.required_ruby_version = '~> 2.3'
26
- spec.required_rubygems_version = '~> 2.7'
28
+ spec.required_ruby_version = '>= 2.5'
29
+ spec.required_rubygems_version = '>= 2.7'
27
30
 
28
31
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
29
32
  f.match(%r{^(test|spec|features)/})
@@ -32,10 +35,10 @@ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength:
32
35
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
33
36
  spec.require_paths = ['lib']
34
37
 
35
- spec.add_dependency 'bundler', '~> 1.16'
36
- spec.add_dependency 'bundler-audit', '~> 0'
38
+ spec.add_dependency 'bundler', '< 3'
39
+ spec.add_dependency 'bundler-audit', '>= 0.6.0'
37
40
  spec.add_dependency 'clamp', '~> 1'
38
- spec.add_dependency 'faraday', '~> 0'
41
+ spec.add_dependency 'faraday', '~> 1'
39
42
  spec.add_dependency 'git', '~> 1'
40
43
  spec.add_dependency 'octokit', '~> 4.0'
41
44
  spec.add_dependency 'safe_shell', '~> 1'
@@ -43,16 +46,16 @@ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength:
43
46
  spec.add_development_dependency 'guard', '~> 2'
44
47
  spec.add_development_dependency 'guard-rspec', '~> 4'
45
48
  spec.add_development_dependency 'pry', '~> 0'
46
- spec.add_development_dependency 'rake', '~> 10.0'
49
+ spec.add_development_dependency 'rake', '>= 12.3.3'
47
50
  spec.add_development_dependency 'rspec', '~> 3.0'
48
51
  spec.add_development_dependency 'rspec-its', '~> 1'
49
52
  spec.add_development_dependency 'rubocop', '>= 0.49.0'
50
53
 
51
54
  spec.metadata = {
52
- 'bug_tracker_uri' => 'https://github.com/envato/unwrappr/issues',
53
- 'changelog_uri' => 'https://github.com/envato/unwrappr/blob/master/CHANGELOG.md',
54
- 'documentation_uri' => 'https://github.com/envato/unwrappr/blob/master/README.md',
55
- 'homepage_uri' => 'https://opensource.envato.com/projects/unwrappr.html',
56
- 'source_code_uri' => 'https://github.com/envato/unwrappr'
55
+ 'bug_tracker_uri' => "#{GITHUB_URL}/issues",
56
+ 'changelog_uri' => "#{GITHUB_URL}/blob/HEAD/CHANGELOG.md",
57
+ 'documentation_uri' => "#{GITHUB_URL}/blob/HEAD/README.md",
58
+ 'homepage_uri' => HOMEPAGE_URL,
59
+ 'source_code_uri' => GITHUB_URL
57
60
  }
58
61
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unwrappr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emilyn Escabarte
@@ -9,39 +9,39 @@ authors:
9
9
  - Orien Madgwick
10
10
  - Pete Johns
11
11
  - Vladimir Chervanev
12
- autorequire:
12
+ autorequire:
13
13
  bindir: exe
14
14
  cert_chain: []
15
- date: 2018-11-13 00:00:00.000000000 Z
15
+ date: 2021-01-04 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: bundler
19
19
  requirement: !ruby/object:Gem::Requirement
20
20
  requirements:
21
- - - "~>"
21
+ - - "<"
22
22
  - !ruby/object:Gem::Version
23
- version: '1.16'
23
+ version: '3'
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
- - - "~>"
28
+ - - "<"
29
29
  - !ruby/object:Gem::Version
30
- version: '1.16'
30
+ version: '3'
31
31
  - !ruby/object:Gem::Dependency
32
32
  name: bundler-audit
33
33
  requirement: !ruby/object:Gem::Requirement
34
34
  requirements:
35
- - - "~>"
35
+ - - ">="
36
36
  - !ruby/object:Gem::Version
37
- version: '0'
37
+ version: 0.6.0
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
41
41
  requirements:
42
- - - "~>"
42
+ - - ">="
43
43
  - !ruby/object:Gem::Version
44
- version: '0'
44
+ version: 0.6.0
45
45
  - !ruby/object:Gem::Dependency
46
46
  name: clamp
47
47
  requirement: !ruby/object:Gem::Requirement
@@ -62,14 +62,14 @@ dependencies:
62
62
  requirements:
63
63
  - - "~>"
64
64
  - !ruby/object:Gem::Version
65
- version: '0'
65
+ version: '1'
66
66
  type: :runtime
67
67
  prerelease: false
68
68
  version_requirements: !ruby/object:Gem::Requirement
69
69
  requirements:
70
70
  - - "~>"
71
71
  - !ruby/object:Gem::Version
72
- version: '0'
72
+ version: '1'
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: git
75
75
  requirement: !ruby/object:Gem::Requirement
@@ -158,16 +158,16 @@ dependencies:
158
158
  name: rake
159
159
  requirement: !ruby/object:Gem::Requirement
160
160
  requirements:
161
- - - "~>"
161
+ - - ">="
162
162
  - !ruby/object:Gem::Version
163
- version: '10.0'
163
+ version: 12.3.3
164
164
  type: :development
165
165
  prerelease: false
166
166
  version_requirements: !ruby/object:Gem::Requirement
167
167
  requirements:
168
- - - "~>"
168
+ - - ">="
169
169
  - !ruby/object:Gem::Version
170
- version: '10.0'
170
+ version: 12.3.3
171
171
  - !ruby/object:Gem::Dependency
172
172
  name: rspec
173
173
  requirement: !ruby/object:Gem::Requirement
@@ -225,10 +225,11 @@ files:
225
225
  - ".buildkite/pipeline.yml"
226
226
  - ".buildkite/steps/rspec.sh"
227
227
  - ".buildkite/steps/rubocop.sh"
228
+ - ".github/workflows/ci.yml"
228
229
  - ".gitignore"
229
230
  - ".rspec"
230
231
  - ".rubocop.yml"
231
- - ".travis.yml"
232
+ - ".tool-versions"
232
233
  - CHANGELOG.md
233
234
  - CODE_OF_CONDUCT.md
234
235
  - Gemfile
@@ -267,33 +268,32 @@ files:
267
268
  - lib/unwrappr/writers/title.rb
268
269
  - lib/unwrappr/writers/version_change.rb
269
270
  - unwrappr.gemspec
270
- homepage: http://www.unwrappr.com.org
271
+ homepage: https://opensource.envato.com/projects/unwrappr.html
271
272
  licenses:
272
273
  - MIT
273
274
  metadata:
274
275
  bug_tracker_uri: https://github.com/envato/unwrappr/issues
275
- changelog_uri: https://github.com/envato/unwrappr/blob/master/CHANGELOG.md
276
- documentation_uri: https://github.com/envato/unwrappr/blob/master/README.md
276
+ changelog_uri: https://github.com/envato/unwrappr/blob/HEAD/CHANGELOG.md
277
+ documentation_uri: https://github.com/envato/unwrappr/blob/HEAD/README.md
277
278
  homepage_uri: https://opensource.envato.com/projects/unwrappr.html
278
279
  source_code_uri: https://github.com/envato/unwrappr
279
- post_install_message:
280
+ post_install_message:
280
281
  rdoc_options: []
281
282
  require_paths:
282
283
  - lib
283
284
  required_ruby_version: !ruby/object:Gem::Requirement
284
285
  requirements:
285
- - - "~>"
286
+ - - ">="
286
287
  - !ruby/object:Gem::Version
287
- version: '2.3'
288
+ version: '2.5'
288
289
  required_rubygems_version: !ruby/object:Gem::Requirement
289
290
  requirements:
290
- - - "~>"
291
+ - - ">="
291
292
  - !ruby/object:Gem::Version
292
293
  version: '2.7'
293
294
  requirements: []
294
- rubyforge_project:
295
- rubygems_version: 2.7.6
296
- signing_key:
295
+ rubygems_version: 3.2.3
296
+ signing_key:
297
297
  specification_version: 4
298
298
  summary: A tool to unwrap your gems and see what's changed easily
299
299
  test_files: []
@@ -1,9 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.3.8
5
- - 2.4.5
6
- - 2.5.3
7
- before_install:
8
- - gem update --system
9
- - gem install bundler