unwrappr 0.4.0 → 0.8.0

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
  SHA256:
3
- metadata.gz: 17cf29453a149873809590eabc7cb496b39abe330f47514a24da54ec5f869ef7
4
- data.tar.gz: e0e5ce8b470ef58e9a341bf70368c0a3e394c4db8322b52294b2fff773a343b0
3
+ metadata.gz: 1e53f322cf4057535b08607023edcf655e1f6aed5dda15538615f0fd5b06fc2f
4
+ data.tar.gz: 348ae550a3a6c1692502d9138639a9fa3a111a6a61f13b54dbd3f6c391637463
5
5
  SHA512:
6
- metadata.gz: 392d0cfc8f2f4613616f379765ec8f0ab43ec3aeb5bdb8fbf6fc5ff816337b6a9d9eecdab729caceb2f43fda883a44290821e58f1cfd8e2e5877ed2e2fe384de
7
- data.tar.gz: 25a9a43fc432e09eb0aeb2cf019d3e6a6b8fe2ef1e4ccd5ffaeccde386b16330679489085f0e5c0bbdec8327e2495c553e50d75672d8d1ae629adf8389b95320
6
+ metadata.gz: 52b132cf79ce405129eacc7423c9769a7e90962e1c35869ea6af4491320815f47467b2755a756cdff75c8bb6efedf40e2a1d5c416ecbad438cc3e3d28120688f
7
+ data.tar.gz: 168c20cc164596e3abe39ebc00a7c605022295fce8364973a4901381cd59405df68ea85cdbabc76fbb10d859b5505b74c5b2f97f9051039644685fdef388804f
@@ -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/.rubocop.yml CHANGED
@@ -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
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 3.0.0
data/CHANGELOG.md CHANGED
@@ -6,7 +6,62 @@ 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.4.0...HEAD
9
+ [Unreleased]: https://github.com/envato/unwrappr/compare/v0.8.0...HEAD
10
+
11
+ ## [0.8.0] 2021-07-22
12
+
13
+ ### Add
14
+
15
+ - Ability to perform a `bundle update` in subdirectories with the `-R` /
16
+ `--recursive` flag. ([#90])
17
+
18
+ [0.8.0]: https://github.com/envato/unwrappr/compare/v0.7.0...v0.8.0
19
+ [#90]: https://github.com/envato/unwrappr/pull/90
20
+
21
+ ## [0.7.0] 2021-07-15
22
+
23
+ ### Add
24
+ - Include link to gem contents diff in gem change annotation ([#88]).
25
+
26
+ ### Fix
27
+ - Fix Rubocop issues ([#89]).
28
+
29
+ [0.7.0]: https://github.com/envato/unwrappr/compare/v0.6.0...v0.7.0
30
+ [#88]: https://github.com/envato/unwrappr/pull/88
31
+ [#89]: https://github.com/envato/unwrappr/pull/89
32
+
33
+ ## [0.6.0] 2021-05-12
34
+
35
+ ### Add
36
+ - Allow specification of Gemfile lock files to annotate. ([#86])
37
+
38
+ [0.6.0]: https://github.com/envato/unwrappr/compare/v0.5.0..v0.6.0
39
+ [#86]: https://github.com/envato/unwrappr/pull/86
40
+
41
+ ## [0.5.0] 2021-01-04
42
+
43
+ ### Add
44
+ - Support for Ruby 3. ([#79])
45
+ - Allow specification of base branch, upon which to base the pull-request
46
+ ([#80], [#84])
47
+
48
+ ### Changed
49
+ - Moved CI to GitHub Actions ([#78])
50
+ - Fixed homepage URL in gemspec ([#77])
51
+ - Default branch is now `main`([#81])
52
+ - Rename private predicate methods in GitCommandRunner to be more descriptive.
53
+ ([#82])
54
+ - Upgrade Faraday dependency to version 1 ([#85])
55
+
56
+ [0.5.0]: https://github.com/envato/unwrappr/compare/v0.4.0..v0.5.0
57
+ [#77]: https://github.com/envato/unwrappr/pull/77
58
+ [#78]: https://github.com/envato/unwrappr/pull/78
59
+ [#79]: https://github.com/envato/unwrappr/pull/79
60
+ [#80]: https://github.com/envato/unwrappr/pull/80
61
+ [#81]: https://github.com/envato/unwrappr/pull/81
62
+ [#82]: https://github.com/envato/unwrappr/pull/82
63
+ [#84]: https://github.com/envato/unwrappr/pull/84
64
+ [#85]: https://github.com/envato/unwrappr/pull/85
10
65
 
11
66
  ## [0.4.0] 2020-04-14
12
67
  ### Changed
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
@@ -85,16 +85,16 @@ See https://github.com/settings/tokens to set up personal access tokens.
85
85
  - [Em Esc](https://github.com/emesc)
86
86
  - [Chun-wei Kuo](https://github.com/Domon)
87
87
 
88
- ## 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)
89
89
 
90
90
  `unwrappr` uses MIT license. See
91
- [`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
92
92
  details.
93
93
 
94
94
  ## Code of Conduct
95
95
 
96
96
  We welcome contribution from everyone. Read more about it in
97
- [`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)
98
98
 
99
99
  ## Contributing [![PRs welcome](https://img.shields.io/badge/PRs-welcome-orange.svg?style=flat-square)](https://github.com/envato/unwrappr/issues)
100
100
 
data/lib/unwrappr/cli.rb CHANGED
@@ -8,15 +8,36 @@ 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
+
20
+ option ['-f', '--lock-file'],
21
+ 'LOCK_FILE1 [-f LOCK_FILE2] [-f LOCK_FILE3] [-f ...]',
22
+ 'The Gemfile.lock files to annotate. Useful when working with multiple lock files.',
23
+ multivalued: true,
24
+ default: ['Gemfile.lock'],
25
+ attribute_name: :lock_files
26
+
11
27
  option ['-v', '--version'], :flag, 'Show version' do
12
28
  puts "unwrappr v#{Unwrappr::VERSION}"
13
29
  exit(0)
14
30
  end
15
31
 
16
- subcommand 'all', 'run bundle update, push to github, '\
32
+ subcommand 'all', 'run bundle update, push to GitHub, '\
17
33
  'create a pr and annotate changes' do
34
+ option ['-R', '--recursive'],
35
+ :flag,
36
+ 'Recurse into subdirectories',
37
+ attribute_name: :recursive
38
+
18
39
  def execute
19
- Unwrappr.run_unwapper_in_pwd
40
+ Unwrappr.run_unwrappr_in_pwd(base_branch: base_branch, lock_files: lock_files, recursive: recursive?)
20
41
  end
21
42
  end
22
43
 
@@ -27,13 +48,14 @@ module Unwrappr
27
48
  required: true
28
49
 
29
50
  option ['-p', '--pr'], 'PR',
30
- 'The github PR number',
51
+ 'The GitHub PR number',
31
52
  required: true
32
53
 
33
54
  def execute
34
55
  LockFileAnnotator.annotate_github_pull_request(
35
56
  repo: repo,
36
- pr_number: pr.to_i
57
+ pr_number: pr.to_i,
58
+ lock_files: lock_files
37
59
  )
38
60
  end
39
61
  end
@@ -45,38 +67,58 @@ module Unwrappr
45
67
  option(['-r', '--repo'],
46
68
  'REPO',
47
69
  <<~DESCRIPTION,
48
- a repo in github <owner/project>, may be specified multiple times
70
+ a repo in GitHub <owner/project>, may be specified multiple times
49
71
  DESCRIPTION
50
72
  required: true,
51
73
  multivalued: true)
52
74
 
75
+ option ['-R', '--recursive'],
76
+ :flag,
77
+ 'Recurse into subdirectories',
78
+ attribute_name: :recursive
79
+
53
80
  def execute
54
81
  repo_list.each do |repo|
55
- unless Dir.exist?(repo)
56
- GitCommandRunner.clone_repository(
57
- "https://github.com/#{repo}",
58
- repo
59
- )
60
- end
82
+ GitCommandRunner.clone_repository("https://github.com/#{repo}", repo) unless Dir.exist?(repo)
61
83
 
62
- Dir.chdir(repo) { Unwrappr.run_unwapper_in_pwd }
84
+ Dir.chdir(repo) do
85
+ Unwrappr.run_unwrappr_in_pwd(base_branch: base_branch, lock_files: lock_files, recursive: recursive?)
86
+ end
63
87
  end
64
88
  end
65
89
  end
66
90
  end
67
91
 
68
- def self.run_unwapper_in_pwd
69
- return unless lockfile_present?
70
-
71
- puts "Doing the unwrappr thing in #{Dir.pwd}"
92
+ def self.run_unwrappr_in_pwd(base_branch:, lock_files:, recursive:)
93
+ return unless any_lockfile_present?(lock_files)
72
94
 
73
- GitCommandRunner.create_branch!
74
- BundlerCommandRunner.bundle_update!
95
+ GitCommandRunner.create_branch!(base_branch: base_branch)
96
+ bundle_update!(lock_files: lock_files, recursive: recursive)
75
97
  GitCommandRunner.commit_and_push_changes!
76
- GitHub::Client.make_pull_request!
98
+ GitHub::Client.make_pull_request!(lock_files)
77
99
  end
78
100
 
79
- def self.lockfile_present?
80
- GitCommandRunner.file_exist?('Gemfile.lock')
101
+ def self.any_lockfile_present?(lock_files)
102
+ lock_files.any? { |lock_file| GitCommandRunner.file_exist?(lock_file) }
103
+ end
104
+
105
+ def self.bundle_update!(lock_files:, recursive:)
106
+ directories(lock_files: lock_files, recursive: recursive).each do |dir|
107
+ Dir.chdir(dir) do
108
+ puts "Doing the unwrappr thing in #{Dir.pwd}"
109
+ BundlerCommandRunner.bundle_update!
110
+ end
111
+ end
112
+ end
113
+
114
+ def self.directories(lock_files:, recursive:)
115
+ if recursive
116
+ lock_files
117
+ .flat_map { |f| Dir.glob("**/#{f}") }
118
+ .map { |f| File.dirname(f) }
119
+ .uniq
120
+ else
121
+ %w[.]
122
+ end
81
123
  end
82
124
  end
@@ -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?
@@ -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?
53
+ def checkout_target_branch(base_branch:)
54
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
 
@@ -12,8 +12,8 @@ module Unwrappr
12
12
  @github_token = nil
13
13
  end
14
14
 
15
- def make_pull_request!
16
- create_and_annotate_pull_request
15
+ def make_pull_request!(lock_files)
16
+ create_and_annotate_pull_request(lock_files)
17
17
  rescue Octokit::ClientError => e
18
18
  raise "Failed to create and annotate pull request: #{e}"
19
19
  end
@@ -27,15 +27,20 @@ module Unwrappr
27
27
  [m[:org], m[:repo]].join('/')
28
28
  end
29
29
 
30
- def create_and_annotate_pull_request
30
+ def create_and_annotate_pull_request(lock_files)
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
37
37
  )
38
- annotate_pull_request(pr.number)
38
+ annotate_pull_request(pr.number, lock_files)
39
+ end
40
+
41
+ def repo_default_branch
42
+ git_client.repository(repo_name_and_org)
43
+ .default_branch
39
44
  end
40
45
 
41
46
  def pull_request_body
@@ -45,10 +50,11 @@ module Unwrappr
45
50
  BODY
46
51
  end
47
52
 
48
- def annotate_pull_request(pr_number)
53
+ def annotate_pull_request(pr_number, lock_files)
49
54
  LockFileAnnotator.annotate_github_pull_request(
50
55
  repo: repo_name_and_org,
51
56
  pr_number: pr_number,
57
+ lock_files: lock_files,
52
58
  client: git_client
53
59
  )
54
60
  end
@@ -58,16 +64,16 @@ module Unwrappr
58
64
  end
59
65
 
60
66
  def github_token
61
- @github_token ||= ENV.fetch('GITHUB_TOKEN') do
62
- raise %(
67
+ @github_token ||= ENV.fetch('GITHUB_TOKEN')
68
+ rescue KeyError
69
+ raise %(
63
70
  Missing environment variable GITHUB_TOKEN.
64
71
  See https://github.com/settings/tokens to set up personal access tokens.
65
72
  Add to the environment:
66
73
 
67
74
  export GITHUB_TOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
68
75
 
69
- )
70
- end
76
+ )
71
77
  end
72
78
  end
73
79
  end
@@ -9,9 +9,10 @@ module Unwrappr
9
9
  # Implements the `lock_file_diff_source` interface as defined by the
10
10
  # LockFileAnnotator.
11
11
  class PrSource
12
- def initialize(repo, pr_number, client)
12
+ def initialize(repo, pr_number, lock_files, client)
13
13
  @repo = repo
14
14
  @pr_number = pr_number
15
+ @lock_files = lock_files
15
16
  @client = client
16
17
  end
17
18
 
@@ -33,7 +34,7 @@ module Unwrappr
33
34
  @lock_file_diffs ||= @client
34
35
  .pull_request_files(@repo, @pr_number)
35
36
  .select do |file|
36
- File.basename(file.filename) == 'Gemfile.lock'
37
+ @lock_files.include?(File.basename(file.filename))
37
38
  end
38
39
  end
39
40
 
@@ -18,10 +18,10 @@ module Unwrappr
18
18
  class LockFileAnnotator
19
19
  # rubocop:disable Metrics/MethodLength
20
20
  def self.annotate_github_pull_request(
21
- repo:, pr_number:, client: Octokit.client
21
+ repo:, pr_number:, lock_files:, client: Octokit.client
22
22
  )
23
23
  new(
24
- lock_file_diff_source: Github::PrSource.new(repo, pr_number, client),
24
+ lock_file_diff_source: Github::PrSource.new(repo, pr_number, lock_files, client),
25
25
  annotation_sink: Github::PrSink.new(repo, pr_number, client),
26
26
  annotation_writer: Writers::Composite.new(
27
27
  Writers::Title,
@@ -54,6 +54,8 @@ module Unwrappr
54
54
 
55
55
  def annotate
56
56
  @lock_file_diff_source.each_file do |lock_file_diff|
57
+ puts "Annotating #{lock_file_diff.filename}"
58
+
57
59
  lock_file_diff.each_gem_change do |gem_change|
58
60
  gem_change_info = @gem_researcher.research(gem_change, {})
59
61
  message = @annotation_writer.write(gem_change, gem_change_info)
@@ -21,7 +21,9 @@ module Unwrappr
21
21
  private
22
22
 
23
23
  def specs_versions(lock_file)
24
- Hash[lock_file.specs.map { |s| [s.name.to_sym, s.version.to_s] }]
24
+ lock_file.specs.each_with_object({}) do |s, memo|
25
+ memo[s.name.to_sym] = s.version.to_s
26
+ end
25
27
  end
26
28
  end
27
29
  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>[\S]+) \(\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
@@ -28,7 +28,7 @@ module Unwrappr
28
28
 
29
29
  def error_message(response:, name:)
30
30
  "Rubygems response for #{name}: "\
31
- "HTTP #{response.status}: #{response.body}"
31
+ "HTTP #{response.status}: #{response.body}"
32
32
  end
33
33
  end
34
34
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Unwrappr
4
- VERSION = '0.4.0'
4
+ VERSION = '0.8.0'
5
5
  end
@@ -18,19 +18,36 @@ module Unwrappr
18
18
  end
19
19
 
20
20
  def write
21
- "[_#{change_log}, #{source_code}_]\n"
21
+ "[_#{change_log}, #{source_code}, #{gem_diff}_]\n"
22
22
  end
23
23
 
24
24
  private
25
25
 
26
26
  def change_log
27
27
  link_or_strikethrough('change-log',
28
- @gem_change_info[:ruby_gems]&.changelog_uri)
28
+ ruby_gems_info&.changelog_uri)
29
29
  end
30
30
 
31
31
  def source_code
32
32
  link_or_strikethrough('source-code',
33
- @gem_change_info[:ruby_gems]&.source_code_uri)
33
+ ruby_gems_info&.source_code_uri)
34
+ end
35
+
36
+ GEM_DIFF_URL_TEMPLATE = 'https://my.diffend.io/gems/%s/%s/%s'
37
+ private_constant :GEM_DIFF_URL_TEMPLATE
38
+
39
+ def gem_diff
40
+ if !ruby_gems_info.nil? && !@gem_change.added? && !@gem_change.removed?
41
+ gem_diff_url = format(GEM_DIFF_URL_TEMPLATE,
42
+ @gem_change.name,
43
+ @gem_change.base_version.to_s,
44
+ @gem_change.head_version.to_s)
45
+ end
46
+ link_or_strikethrough('gem-diff', gem_diff_url)
47
+ end
48
+
49
+ def ruby_gems_info
50
+ @gem_change_info[:ruby_gems]
34
51
  end
35
52
 
36
53
  def link_or_strikethrough(text, url)
@@ -88,7 +88,7 @@ module Unwrappr
88
88
  # rubocop:disable Style/GuardClause
89
89
  if advisory.cvss_v2
90
90
  "CVSS V2: [#{advisory.cvss_v2} #{advisory.criticality}]"\
91
- "(#{cvss_v2_url(advisory.cve_id)})"
91
+ "(#{cvss_v2_url(advisory.cve_id)})"
92
92
  end
93
93
  # rubocop:enable Style/GuardClause
94
94
  end
data/unwrappr.gemspec CHANGED
@@ -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,9 +23,9 @@ 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.5'
28
+ spec.required_ruby_version = '>= 2.5'
26
29
  spec.required_rubygems_version = '>= 2.7'
27
30
 
28
31
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -35,7 +38,7 @@ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength:
35
38
  spec.add_dependency 'bundler', '< 3'
36
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'
@@ -49,10 +52,10 @@ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength:
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.4.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emilyn Escabarte
@@ -9,10 +9,10 @@ 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: 2020-04-14 00:00:00.000000000 Z
15
+ date: 2021-07-21 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: bundler
@@ -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
@@ -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,22 +268,22 @@ 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
288
  version: '2.5'
288
289
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -291,8 +292,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
291
292
  - !ruby/object:Gem::Version
292
293
  version: '2.7'
293
294
  requirements: []
294
- rubygems_version: 3.0.3
295
- signing_key:
295
+ rubygems_version: 3.2.22
296
+ signing_key:
296
297
  specification_version: 4
297
298
  summary: A tool to unwrap your gems and see what's changed easily
298
299
  test_files: []
data/.travis.yml DELETED
@@ -1,8 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.5.8
5
- - 2.6.6
6
- - 2.7.1
7
- before_install:
8
- - gem update --system