lock_diff 0.3.7 → 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
- SHA1:
3
- metadata.gz: 4bd53748cc250bef15eff5a49da0a505faa84d24
4
- data.tar.gz: 528f3e74318971a0d942539964ab4b8c90796e1a
2
+ SHA256:
3
+ metadata.gz: b72b0103bb0456640f9f87ce36c6aab414b9448d7f362e931a43b32968975fe7
4
+ data.tar.gz: bc757035ce6f1abb73351ffe667903f6d07c7cd61197e307db410412060f8b23
5
5
  SHA512:
6
- metadata.gz: 4d91859144482b359679a161f24d1f98b3ee83c259a7344d73df64175b12023104dff90257bac38f4c88a31a1e222ae403e87eed70b74a12bd5ac82f9f29c119
7
- data.tar.gz: 0c0b50ccd947fca8f228f0e67da4896dbc5c0c73a1062edc7775805e46e261a67b6c2f44ec1dc3e49268450db6d3222907cbb6a15a93c682ae00002c31b43901
6
+ metadata.gz: 03d27cc09817e1695418a4acb7efab5cddd6208a7a73362237292dd827b2507397251ef2d78331bd40db6bbf16a052549476eb2577a7ba12c9ab1351941bbe10
7
+ data.tar.gz: bce05c0eb4ce1df1595cd0e7c88111c9c25b0412a84ca769ac3f5997c451a6abbaa1a50ac29c25424f66c420249cbcb83fbea69adf06fed7c3c550d818067739
@@ -1,7 +1,9 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.3.4
4
- - 2.4.1
3
+ - 2.4
4
+ - 2.5
5
+ - 2.6
6
+ - 2.7
5
7
  script:
6
8
  - bundle exec rspec
7
9
  notifications:
data/README.md CHANGED
@@ -1,13 +1,9 @@
1
1
  # LockDiff
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/lock_diff.svg)](https://badge.fury.io/rb/lock_diff)
4
- [![GitHub tag](https://img.shields.io/github/tag/vividmuimui/lock_diff.svg)](https://github.com/vividmuimui/lock_diff/tags)
5
4
  [![Build Status](https://travis-ci.org/vividmuimui/lock_diff.svg?branch=master)](https://travis-ci.org/vividmuimui/lock_diff)
6
5
  [![Codacy Badge](https://api.codacy.com/project/badge/Grade/d05b439bc5064e30ad84ecfa8e57b448)](https://www.codacy.com/app/vividmuimui/lock_diff?utm_source=github.com&utm_medium=referral&utm_content=vividmuimui/lock_diff&utm_campaign=badger)
7
- [![Dependency Status](https://gemnasium.com/badges/github.com/vividmuimui/lock_diff.svg)](https://gemnasium.com/github.com/vividmuimui/lock_diff)
8
6
  [![Code Climate](https://codeclimate.com/github/vividmuimui/lock_diff/badges/gpa.svg)](https://codeclimate.com/github/vividmuimui/lock_diff)
9
- [![Issue Count](https://codeclimate.com/github/vividmuimui/lock_diff/badges/issue_count.svg)](https://codeclimate.com/github/vividmuimui/lock_diff)
10
- [![ghit.me](https://ghit.me/badge.svg?repo=vividmuimui/lock_diff)](https://ghit.me/repo/vividmuimui/lock_diff)
11
7
 
12
8
  This gem detects changes to your package manager (e.g. Gemfile) and generates a Markdown-formatted diff including:
13
9
 
@@ -109,7 +105,7 @@ TODO:
109
105
 
110
106
  ## Contributing
111
107
 
112
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/lock_diff. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
108
+ Bug reports and pull requests are welcome on GitHub at https://github.com/vividmuimui/lock_diff. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
113
109
 
114
110
  ## License
115
111
 
@@ -117,7 +113,7 @@ The gem is available as open source under the terms of the [MIT License](http://
117
113
 
118
114
  ### Original
119
115
 
120
- Most source code in this pepository is by https://github.com/kyanny/compare_linker .
116
+ Most of the source code in this repository is by https://github.com/kyanny/compare_linker.
121
117
 
122
118
  ```
123
119
  Copyright (c) 2014 Kensuke Nagae
@@ -147,4 +143,4 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
147
143
 
148
144
  ## Code of Conduct
149
145
 
150
- Everyone interacting in the LockDiff project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/lock_diff/blob/master/CODE_OF_CONDUCT.md).
146
+ Everyone interacting in the LockDiff project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/vividmuimui/lock_diff/blob/master/CODE_OF_CONDUCT.md).
@@ -1,6 +1,7 @@
1
1
  require "logger"
2
2
  require "forwardable"
3
3
 
4
+ require "lock_diff/changelog"
4
5
  require "lock_diff/diff_info"
5
6
  require "lock_diff/formatter/github_markdown"
6
7
  require "lock_diff/gem"
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LockDiff
4
+ class Changelog
5
+ attr_reader :url
6
+
7
+ def initialize(url)
8
+ @url = url
9
+ end
10
+
11
+ def name
12
+ File.basename(@url)
13
+ end
14
+ end
15
+ end
@@ -57,28 +57,18 @@ module LockDiff
57
57
  end
58
58
  end
59
59
 
60
- def changelog_url
61
- @changelog_url ||= begin
62
- ref =
63
- case status
64
- when UPGRADE, NEW
65
- @new_package.ref
66
- when DOWNGRADE, DELETE
67
- nil # default branch(master)
68
- end
60
+ def changelogs
61
+ return nil if [DOWNGRADE, DELETE].include?(status)
69
62
 
70
- Github::ChangelogUrlFinder.new(
71
- repository: package.repository,
72
- repository_url: package.repository_url,
73
- ref: ref
74
- ).call
63
+ Github::ChangelogUrlFinder.new(
64
+ repository: package.repository,
65
+ repository_url: package.repository_url,
66
+ ref: @new_package.ref
67
+ ).call.map do |url|
68
+ Changelog.new(url)
75
69
  end
76
70
  end
77
71
 
78
- def changelog_name
79
- File.basename(changelog_url)
80
- end
81
-
82
72
  def commits_url
83
73
  return unless package.repository_url
84
74
  old_ref = @old_package.ref
@@ -41,7 +41,7 @@ module LockDiff
41
41
  text << repository
42
42
  text << status
43
43
  text << commits_text
44
- text << changelog
44
+ text << changelogs
45
45
  "| #{text.join(' | ')} |"
46
46
  end
47
47
 
@@ -77,15 +77,16 @@ module LockDiff
77
77
  end
78
78
  end
79
79
 
80
- def changelog
81
- if diff_info.changelog_url
82
- "[#{diff_info.changelog_name}](#{diff_info.changelog_url})"
80
+ def changelogs
81
+ if diff_info.changelogs
82
+ diff_info.changelogs.map do |changelog|
83
+ "[#{changelog.name}](#{changelog.url})"
84
+ end.join(" ")
83
85
  else
84
86
  ""
85
87
  end
86
88
  end
87
89
  end
88
-
89
90
  end
90
91
  end
91
92
  end
@@ -17,18 +17,18 @@ module LockDiff
17
17
  end
18
18
 
19
19
  def call
20
- find_change_log_url || find_release_url
20
+ change_log_urls.push(find_release_url).compact
21
21
  end
22
22
 
23
23
  private
24
24
 
25
- def find_change_log_url
25
+ def change_log_urls
26
26
  Github.client.contents(@repository, ref: @ref).
27
27
  select(&:file?).
28
- find { |content|
28
+ select do |content|
29
29
  name = content.name.downcase.delete('_')
30
30
  CHANGE_LOG_CANDIDATES.any? { |candidate| name.start_with? candidate }
31
- }&.html_url
31
+ end&.map(&:html_url)
32
32
  end
33
33
 
34
34
  def find_release_url
@@ -1,7 +1,7 @@
1
1
  module LockDiff
2
2
  module Github
3
3
  class RepositoryNameDetector
4
- REGEXP = %r!github\.com[/:](.*?)(?:.git)?\z!
4
+ REGEXP = %r!github\.com[/:](.*?)(?:\.git)?\z!
5
5
 
6
6
  def initialize(url)
7
7
  @url = url
@@ -9,7 +9,7 @@ module LockDiff
9
9
 
10
10
  def call
11
11
  return unless @url
12
- path = @url.match(REGEXP).to_a.last
12
+ path = @url.match(REGEXP).to_a.last&.split('#')&.first
13
13
  return unless path
14
14
  repository_name = path.split("/").first(2).join("/")
15
15
  repository_name if repository_name.match?(/.+\/.+/)
@@ -13,8 +13,10 @@ module LockDiff
13
13
  end
14
14
 
15
15
  def latest_by_tachikoma(repository)
16
- client.newer_pull_requests(repository).
17
- find { |pull_request| pull_request.head_ref.include?("tachikoma") }
16
+ client.newer_pull_requests(repository).find do |pull_request|
17
+ branch = pull_request.head_ref
18
+ branch.include?("tachikoma") || branch.include?("bundle-update")
19
+ end
18
20
  end
19
21
 
20
22
  private
@@ -1,3 +1,3 @@
1
1
  module LockDiff
2
- VERSION = "0.3.7"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -21,13 +21,13 @@ Gem::Specification.new do |spec|
21
21
  spec.bindir = "exe"
22
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ["lib"]
24
- spec.required_ruby_version = ">= 2.3.0"
24
+ spec.required_ruby_version = ">= 2.4.0"
25
25
 
26
26
  spec.add_dependency "octokit", "~> 4.0"
27
27
  spec.add_dependency "httpclient"
28
28
 
29
- spec.add_development_dependency "bundler", "~> 1.15"
30
- spec.add_development_dependency "rake", "~> 10.0"
29
+ spec.add_development_dependency "bundler", "> 1.15"
30
+ spec.add_development_dependency "rake", ">= 13"
31
31
  spec.add_development_dependency "rspec", "~> 3.0"
32
32
  spec.add_development_dependency "pry"
33
33
  spec.add_development_dependency "pry-byebug"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lock_diff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.7
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - vividmuimui
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-10-21 00:00:00.000000000 Z
11
+ date: 2020-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: octokit
@@ -42,30 +42,30 @@ dependencies:
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.15'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.15'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: '13'
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
- version: '10.0'
68
+ version: '13'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -145,6 +145,7 @@ files:
145
145
  - exe/lock_diff
146
146
  - exe/lock_diff_for_tachikoma
147
147
  - lib/lock_diff.rb
148
+ - lib/lock_diff/changelog.rb
148
149
  - lib/lock_diff/cli/option_parser.rb
149
150
  - lib/lock_diff/diff_info.rb
150
151
  - lib/lock_diff/formatter/github_markdown.rb
@@ -178,15 +179,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
178
179
  requirements:
179
180
  - - ">="
180
181
  - !ruby/object:Gem::Version
181
- version: 2.3.0
182
+ version: 2.4.0
182
183
  required_rubygems_version: !ruby/object:Gem::Requirement
183
184
  requirements:
184
185
  - - ">="
185
186
  - !ruby/object:Gem::Version
186
187
  version: '0'
187
188
  requirements: []
188
- rubyforge_project:
189
- rubygems_version: 2.6.13
189
+ rubygems_version: 3.0.3
190
190
  signing_key:
191
191
  specification_version: 4
192
192
  summary: This gem detects changes to your package manager (e.g. Gemfile) and generates