knife-changelog 1.0.1 → 1.0.3
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 +4 -4
- data/lib/chef/knife/changelog.rb +11 -12
- data/lib/knife/changelog/berksfile.rb +8 -3
- data/lib/knife/changelog/changelog.rb +1 -0
- data/lib/knife/changelog/policyfile.rb +4 -0
- data/lib/knife/changelog/version.rb +1 -1
- data/spec/unit/changelog_spec.rb +47 -12
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15f2df34a124b7b5ff0adcda1708cd7aab61b803
|
4
|
+
data.tar.gz: 457fa10cc15ae920422d08ecb584e8e98889f010
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51f86b089762e86f31a45587915b36ae8c94abd3c11b5b8a29dc23bf99f540368033933f0a6289132caa20c8bf159349d51e528443cfb206d0da56256fe4cb53
|
7
|
+
data.tar.gz: 38eb6d3b2fa6a6edf9ac17ffc809008e5685b90a89f44beefcb5a0c013548bd1024a9522e7ad09c3945a874e7b4a88ab29a0c365d5e18e93c8f25d821589e9e4
|
data/lib/chef/knife/changelog.rb
CHANGED
@@ -15,16 +15,6 @@ class Chef
|
|
15
15
|
require "berkshelf"
|
16
16
|
end
|
17
17
|
|
18
|
-
def initialize(options)
|
19
|
-
super
|
20
|
-
@changelog = if File.exists?(config[:policyfile])
|
21
|
-
KnifeChangelog::Changelog::Policyfile.new(config[:policyfile], config)
|
22
|
-
else
|
23
|
-
berksfile = Berkshelf::Berksfile.from_options({})
|
24
|
-
KnifeChangelog::Changelog::Berksfile.new(berksfile.lockfile.locks, config, berksfile.sources)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
18
|
option :linkify,
|
29
19
|
:short => '-l',
|
30
20
|
:long => '--linkify',
|
@@ -57,11 +47,20 @@ class Chef
|
|
57
47
|
:description => 'Link to policyfile, defaults to Policyfile.rb',
|
58
48
|
:default => 'Policyfile.rb'
|
59
49
|
|
50
|
+
option :update,
|
51
|
+
:long => '--update',
|
52
|
+
:description => 'Update Berksfile'
|
60
53
|
|
61
54
|
def run
|
62
55
|
Log.info config
|
63
|
-
changelog =
|
64
|
-
|
56
|
+
@changelog = if config[:policyfile] && File.exists?(config[:policyfile])
|
57
|
+
KnifeChangelog::Changelog::Policyfile.new(config[:policyfile], config)
|
58
|
+
else
|
59
|
+
berksfile = Berkshelf::Berksfile.from_options({})
|
60
|
+
KnifeChangelog::Changelog::Berksfile.new(berksfile, config)
|
61
|
+
end
|
62
|
+
changelog_text = @changelog.run(@name_args)
|
63
|
+
puts changelog_text
|
65
64
|
end
|
66
65
|
end
|
67
66
|
|
@@ -5,10 +5,11 @@ require_relative 'changelog'
|
|
5
5
|
class KnifeChangelog
|
6
6
|
class Changelog
|
7
7
|
class Berksfile < Changelog
|
8
|
-
def initialize(
|
8
|
+
def initialize(berksfile, config)
|
9
9
|
require 'berkshelf'
|
10
|
-
@locked_versions =
|
11
|
-
@sources = sources
|
10
|
+
@locked_versions = berksfile.lockfile.locks
|
11
|
+
@sources = berksfile.sources
|
12
|
+
@berksfile = berksfile
|
12
13
|
super(config)
|
13
14
|
end
|
14
15
|
|
@@ -53,6 +54,10 @@ class KnifeChangelog
|
|
53
54
|
@locked_versions[name].locked_version.to_s
|
54
55
|
end
|
55
56
|
|
57
|
+
def update(cookbooks)
|
58
|
+
@berksfile.update(*cookbooks)
|
59
|
+
end
|
60
|
+
|
56
61
|
private
|
57
62
|
|
58
63
|
def ck_dep(name)
|
@@ -55,6 +55,10 @@ class KnifeChangelog
|
|
55
55
|
Location.new(spec[:git], spec[:revision], spec[:branch])
|
56
56
|
end
|
57
57
|
|
58
|
+
def update(cookbooks)
|
59
|
+
raise NotImplementedError
|
60
|
+
end
|
61
|
+
|
58
62
|
# return a list of supermarket uri for a given cookbook
|
59
63
|
# example: [ 'https://supermarket.chef.io' ]
|
60
64
|
def supermarkets_for(name)
|
data/spec/unit/changelog_spec.rb
CHANGED
@@ -9,6 +9,16 @@ WebMock.disable_net_connect!
|
|
9
9
|
RSpec.shared_examples 'changelog generation' do
|
10
10
|
# this supposes that "changelog" is an instance of KnifeChangelog::Changelog
|
11
11
|
it 'detects basic changelog' do
|
12
|
+
mock_git('second_out_of_date', <<-EOH)
|
13
|
+
aaaaaa commit in second_out_of_date
|
14
|
+
bbbbbb bugfix in second_out_of_date
|
15
|
+
EOH
|
16
|
+
mock_git('outdated1', <<-EOH)
|
17
|
+
aaaaaa commit in outdated1
|
18
|
+
bbbbbb bugfix in outdated1
|
19
|
+
EOH
|
20
|
+
mock_git('uptodate', '')
|
21
|
+
|
12
22
|
changelog_txt = changelog.run(%w[new_cookbook uptodate outdated1 second_out_of_date])
|
13
23
|
expect(changelog_txt).to match(/commit in outdated1/)
|
14
24
|
expect(changelog_txt).to match(/commit in second_out_of_date/)
|
@@ -29,16 +39,6 @@ describe KnifeChangelog::Changelog do
|
|
29
39
|
|
30
40
|
mock_universe('https://mysupermarket2.io', uptodate: %w[1.0.0], outdated1: %w[1.0.0 1.1.0], second_out_of_date: %w[1.0.0 1.2.0])
|
31
41
|
mock_universe('https://mysupermarket.io', {})
|
32
|
-
|
33
|
-
mock_git('second_out_of_date', <<-EOH)
|
34
|
-
aaaaaa commit in second_out_of_date
|
35
|
-
bbbbbb bugfix in second_out_of_date
|
36
|
-
EOH
|
37
|
-
mock_git('outdated1', <<-EOH)
|
38
|
-
aaaaaa commit in outdated1
|
39
|
-
bbbbbb bugfix in outdated1
|
40
|
-
EOH
|
41
|
-
mock_git('uptodate', '')
|
42
42
|
end
|
43
43
|
|
44
44
|
def mock_git(name, changelog)
|
@@ -93,18 +93,40 @@ describe KnifeChangelog::Changelog do
|
|
93
93
|
)
|
94
94
|
end
|
95
95
|
|
96
|
+
let(:options) do
|
97
|
+
{}
|
98
|
+
end
|
99
|
+
|
96
100
|
let(:changelog) do
|
97
|
-
KnifeChangelog::Changelog::Berksfile.new(berksfile
|
101
|
+
KnifeChangelog::Changelog::Berksfile.new(berksfile, options)
|
98
102
|
end
|
99
103
|
|
100
104
|
include_examples 'changelog generation'
|
105
|
+
|
106
|
+
context 'with --update' do
|
107
|
+
let(:options) do
|
108
|
+
{ update: true }
|
109
|
+
end
|
110
|
+
it 'updates Berksfile' do
|
111
|
+
mock_git('outdated1', <<-EOH)
|
112
|
+
aaaaaa commit in outdated1
|
113
|
+
bbbbbb bugfix in outdated1
|
114
|
+
EOH
|
115
|
+
expect(berksfile).to receive(:update).with('outdated1')
|
116
|
+
changelog.run(%w[outdated1])
|
117
|
+
end
|
118
|
+
end
|
101
119
|
end
|
102
120
|
|
103
121
|
context 'in policyfile mode' do
|
104
122
|
let(:policyfile_path) { File.join(File.dirname(__FILE__), '../data/Policyfile.rb') }
|
105
123
|
|
124
|
+
let(:options) do
|
125
|
+
{}
|
126
|
+
end
|
127
|
+
|
106
128
|
let(:changelog) do
|
107
|
-
KnifeChangelog::Changelog::Policyfile.new(policyfile_path,
|
129
|
+
KnifeChangelog::Changelog::Policyfile.new(policyfile_path, options)
|
108
130
|
end
|
109
131
|
|
110
132
|
before(:each) do
|
@@ -112,6 +134,19 @@ describe KnifeChangelog::Changelog do
|
|
112
134
|
end
|
113
135
|
|
114
136
|
include_examples 'changelog generation'
|
137
|
+
|
138
|
+
context 'with --update' do
|
139
|
+
let(:options) do
|
140
|
+
{ update: true }
|
141
|
+
end
|
142
|
+
it 'fails with not implemented error' do
|
143
|
+
mock_git('outdated1', <<-EOH)
|
144
|
+
aaaaaa commit in outdated1
|
145
|
+
bbbbbb bugfix in outdated1
|
146
|
+
EOH
|
147
|
+
expect { changelog.run(%w[outdated1]) }.to raise_error(NotImplementedError)
|
148
|
+
end
|
149
|
+
end
|
115
150
|
end
|
116
151
|
end
|
117
152
|
|
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: 1.0.
|
4
|
+
version: 1.0.3
|
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-10-
|
11
|
+
date: 2017-10-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -213,7 +213,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
213
213
|
version: '0'
|
214
214
|
requirements: []
|
215
215
|
rubyforge_project:
|
216
|
-
rubygems_version: 2.6.
|
216
|
+
rubygems_version: 2.6.14
|
217
217
|
signing_key:
|
218
218
|
specification_version: 4
|
219
219
|
summary: Facilitate access to cookbooks changelog
|