knife-changelog 0.5.18 → 0.5.20

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: 865493e8e31f53f3a6a58d6152ed4a2d368ee58f
4
- data.tar.gz: 2abad52c61b91567c540515fd328b18429dc91fb
3
+ metadata.gz: 7f5cdeee5d1cffb63b524ec79a1bdcfcfb154a74
4
+ data.tar.gz: e68caccf393dab3d26ce0324b84cc7394fb38744
5
5
  SHA512:
6
- metadata.gz: 698f53fb122cfde4efcbc3c207a4dbd0fc02594f9344ca59bafccb40173c9561997b9bf7aee30a8a1404b52c744d9ecc8e902243c82890403c7c39c464b8b6be
7
- data.tar.gz: 578ebed4f499d2ca7db090a319d474394c83217ab18284750a30805e3b60485645d44fed2b74e8b039457a549d3726a64b334a08aa0dd3ed03dec3510ec33f66
6
+ metadata.gz: 0b79c827c13afa739ebfd008527155a93abf70aef63767802a8ce2ed391432e8127b4f8e2dbb096401757d671eba38d707c13f49fa7b5565781a33156668ff86
7
+ data.tar.gz: aae9c4b834f21b0d7879c225664aae9203348457456d34fa5f000a7e2aa54225c151d9670b7961297b01d22898e51f323413f63c2511bf5a009c25e36070e08a
@@ -1,6 +1,3 @@
1
- require "knife/changelog/version"
2
- require "knife/changelog/changelog"
3
- require "berkshelf"
4
1
  require 'chef/knife'
5
2
  require 'mixlib/shellout'
6
3
 
@@ -10,6 +7,12 @@ class Chef
10
7
 
11
8
  banner 'knife changelog COOKBOOK [COOKBOOK ...]'
12
9
 
10
+ deps do
11
+ require "knife/changelog/version"
12
+ require "knife/changelog/changelog"
13
+ require "berkshelf"
14
+ end
15
+
13
16
  def initialize(options)
14
17
  super
15
18
  berksfile = Berkshelf::Berksfile.from_options({})
@@ -3,11 +3,11 @@ require 'chef/log'
3
3
  require 'chef/knife'
4
4
  require 'rest-client'
5
5
  require 'json'
6
- require 'berkshelf'
7
6
 
8
7
  class KnifeChangelog
9
8
  class Changelog
10
9
  def initialize(locked_versions, config = {}, sources=[])
10
+ require 'berkshelf'
11
11
  @tmp_prefix = 'knife-changelog'
12
12
  @locked_versions = locked_versions
13
13
  @config = config
@@ -119,13 +119,21 @@ class KnifeChangelog
119
119
  end
120
120
  .compact
121
121
  .map { |json| JSON.parse(json) }
122
+ .sort_by { |ck| cookbook_highest_version(ck) }
122
123
  .map { |ck| ck['source_url'] || ck ['external_url'] }
123
- .first
124
+ .last
124
125
  .tap do |source|
125
126
  raise "Cannot find any changelog source for #{name}" unless source
126
127
  end
127
128
  end
128
129
 
130
+ def cookbook_highest_version(json)
131
+ json['versions']
132
+ .map { |version_url| Chef::Version.new(version_url.gsub(/.*\//, '')) }
133
+ .sort
134
+ .last
135
+ end
136
+
129
137
  def handle_source(name, dep)
130
138
  url = get_from_supermarket_sources(name)
131
139
  raise "No source found in supermarket for cookbook '#{name}'" unless url
@@ -155,7 +163,7 @@ class KnifeChangelog
155
163
  unless revision_exists?(dir, rev)
156
164
  prefixed_rev = 'v' + rev
157
165
  return prefixed_rev if revision_exists?(dir, prefixed_rev)
158
- fail "#{rev} is not a valid revision (#{name})"
166
+ fail "#{rev} is not an existing revision (#{name}), not a tag/commit/branch name."
159
167
  end
160
168
  rev
161
169
  end
@@ -235,6 +243,7 @@ class KnifeChangelog
235
243
  end
236
244
 
237
245
  def shallow_clone(tmp_prefix, uri)
246
+ Chef::Log.debug "Cloning #{uri} in #{tmp_prefix}"
238
247
  dir = Dir.mktmpdir(tmp_prefix)
239
248
  @tmp_dirs << dir
240
249
  clone = Mixlib::ShellOut.new("git clone --bare #{uri} bare-clone", :cwd => dir)
@@ -1,5 +1,5 @@
1
1
  module Knife
2
2
  module Changelog
3
- VERSION = "0.5.18"
3
+ VERSION = "0.5.20"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-changelog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.18
4
+ version: 0.5.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregoire Seux
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-25 00:00:00.000000000 Z
11
+ date: 2017-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -162,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
162
162
  version: '0'
163
163
  requirements: []
164
164
  rubyforge_project:
165
- rubygems_version: 2.4.8
165
+ rubygems_version: 2.6.13
166
166
  signing_key:
167
167
  specification_version: 4
168
168
  summary: Facilitate access to cookbooks changelog