pdksync 0.5.0 → 0.8.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.
metadata CHANGED
@@ -1,29 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pdksync
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-21 00:00:00.000000000 Z
11
+ date: 2023-07-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.15'
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: codecov
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
25
39
  - !ruby/object:Gem::Version
26
- version: '1.15'
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: rspec
29
57
  requirement: !ruby/object:Gem::Requirement
@@ -53,7 +81,7 @@ dependencies:
53
81
  - !ruby/object:Gem::Version
54
82
  version: 0.50.0
55
83
  - !ruby/object:Gem::Dependency
56
- name: pry
84
+ name: simplecov
57
85
  requirement: !ruby/object:Gem::Requirement
58
86
  requirements:
59
87
  - - ">="
@@ -67,33 +95,47 @@ dependencies:
67
95
  - !ruby/object:Gem::Version
68
96
  version: '0'
69
97
  - !ruby/object:Gem::Dependency
70
- name: git
98
+ name: simplecov-console
71
99
  requirement: !ruby/object:Gem::Requirement
72
100
  requirements:
73
- - - "~>"
101
+ - - ">="
74
102
  - !ruby/object:Gem::Version
75
- version: '1.3'
76
- type: :runtime
103
+ version: '0'
104
+ type: :development
77
105
  prerelease: false
78
106
  version_requirements: !ruby/object:Gem::Requirement
79
107
  requirements:
80
- - - "~>"
108
+ - - ">="
81
109
  - !ruby/object:Gem::Version
82
- version: '1.3'
110
+ version: '0'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: pdk
85
113
  requirement: !ruby/object:Gem::Requirement
86
114
  requirements:
87
115
  - - ">="
88
116
  - !ruby/object:Gem::Version
89
- version: 1.4.1
117
+ version: 1.14.1
90
118
  type: :runtime
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
122
  - - ">="
95
123
  - !ruby/object:Gem::Version
96
- version: 1.4.1
124
+ version: 1.14.1
125
+ - !ruby/object:Gem::Dependency
126
+ name: git
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.3'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.3'
97
139
  - !ruby/object:Gem::Dependency
98
140
  name: rake
99
141
  requirement: !ruby/object:Gem::Requirement
@@ -137,7 +179,7 @@ dependencies:
137
179
  - !ruby/object:Gem::Version
138
180
  version: '0'
139
181
  - !ruby/object:Gem::Dependency
140
- name: colorize
182
+ name: jenkins_api_client
141
183
  requirement: !ruby/object:Gem::Requirement
142
184
  requirements:
143
185
  - - ">="
@@ -157,26 +199,44 @@ executables: []
157
199
  extensions: []
158
200
  extra_rdoc_files: []
159
201
  files:
202
+ - ".github/pull_request_template.md"
203
+ - ".github/workflows/ci.yml"
204
+ - ".github/workflows/labeller.yml"
205
+ - ".github/workflows/mend.yml"
206
+ - ".github/workflows/nightly.yml"
207
+ - ".github/workflows/release.yml"
208
+ - ".github/workflows/release_prep.yml"
160
209
  - ".gitignore"
161
210
  - ".rspec"
162
211
  - ".rubocop.yml"
163
212
  - ".rubocop_todo.yml"
164
- - ".travis.yml"
165
213
  - CHANGELOG.md
214
+ - CODEOWNERS
166
215
  - Gemfile
167
216
  - LICENSE
168
217
  - README.md
169
218
  - Rakefile
170
219
  - lib/pdksync.rb
171
- - lib/pdksync/constants.rb
220
+ - lib/pdksync/conf/puppet_abs_supported_platforms.yaml
221
+ - lib/pdksync/configuration.rb
172
222
  - lib/pdksync/githubclient.rb
173
223
  - lib/pdksync/gitlabclient.rb
174
224
  - lib/pdksync/gitplatformclient.rb
225
+ - lib/pdksync/jenkinsclient.rb
226
+ - lib/pdksync/logger.rb
175
227
  - lib/pdksync/pullrequest.rb
176
228
  - lib/pdksync/rake_tasks.rb
229
+ - lib/pdksync/utils.rb
230
+ - lib/pdksync/version.rb
177
231
  - managed_modules.yml
178
232
  - pdksync.gemspec
179
- - spec/lib/pdksync_spec.rb
233
+ - spec/configuration_spec.rb
234
+ - spec/fixtures/fake_managed_modules.yaml
235
+ - spec/fixtures/pdksync.yml
236
+ - spec/logger_spec.rb
237
+ - spec/pdksync_spec.rb
238
+ - spec/spec_helper.rb
239
+ - spec/utils_spec.rb
180
240
  homepage: http://github.com/puppetlabs/pdksync
181
241
  licenses:
182
242
  - Apache-2.0
@@ -189,16 +249,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
189
249
  requirements:
190
250
  - - ">="
191
251
  - !ruby/object:Gem::Version
192
- version: 2.0.0
252
+ version: '2.7'
193
253
  required_rubygems_version: !ruby/object:Gem::Requirement
194
254
  requirements:
195
255
  - - ">="
196
256
  - !ruby/object:Gem::Version
197
257
  version: '0'
198
258
  requirements: []
199
- rubygems_version: 3.0.4
259
+ rubygems_version: 3.1.6
200
260
  signing_key:
201
261
  specification_version: 4
202
262
  summary: Puppet Module PDK Synchronizer
203
263
  test_files:
204
- - spec/lib/pdksync_spec.rb
264
+ - spec/configuration_spec.rb
265
+ - spec/fixtures/fake_managed_modules.yaml
266
+ - spec/fixtures/pdksync.yml
267
+ - spec/logger_spec.rb
268
+ - spec/pdksync_spec.rb
269
+ - spec/spec_helper.rb
270
+ - spec/utils_spec.rb
data/.travis.yml DELETED
@@ -1,27 +0,0 @@
1
- sudo: false
2
- dist: trusty
3
- language: ruby
4
- cache: bundler
5
- before_install:
6
- - bundle -v
7
- - rm -f Gemfile.lock
8
- - gem update --system
9
- - gem --version
10
- - bundle -v
11
- script:
12
- - bundle exec $CHECK
13
- rvm:
14
- - 2.4.1
15
- matrix:
16
- fast_finish: true
17
- include:
18
- - env: CHECK='rubocop'
19
- - env: CHECK='rspec spec'
20
- branches:
21
- only:
22
- - master
23
- - "/^v\\d/"
24
- - release
25
- env:
26
- global:
27
- secure: Hk8cxtIHM6kyRBSmcWWUSXUV50E/yo3MGJf3mPphb3ORUfzqjB8FGZLSn1VCIP81y++U6pZAg8/AkvcDNME0at1wWh/ONiOwYKxAyyVfr0/5/i7a+dIj/9MX2kUT6MBKZXipbln/u5brdwBAHJccFHz7doq30Nd108KE5ucqf0ZbptJyDbpsrIturK9Hx+mde9sYd6MyNlzGJkQOhSL22Zd+ppBSf/GDpk2+yWN171oGwHDPWPE47q4nkIrWjnWy0kLCqxoM0zHIPxPES6lhudso4ofbumnRiHcr7DldReC8Rq1CUe/fhG7udGEdPN26JAREyUeD8MOwo2uQohQluHvjOMx9leF7Sbu+tk5E2bqVz5ofm0bksZUIBahUtGP+REvwVruFOH8RsvO3pQBndDKG11691UY55L9qZNaQ82cNOWbfG1nNuglH0GIpJgdhjvWuGw1he4c18u1fgQGM01xO7JEDIpYHrrjBboD3mL/iXMmvxwg35eIrlkfdgl9DTBWqKOoLi79WpkDajI+2B/ABXW4L/WKWlM041UjAs5/r3jgkbcZz1nZVbU4Wa5r/6RvIfrM/FXnaGuZcwx7VdPBmfyhV4rgM4siyJDdhqudTRsq1+Al9q3MhZcyKQLmad8ShEx+dfG9WRBoayE+piD/9xkfriqdMk5YEjH02grE=
@@ -1,78 +0,0 @@
1
- require 'yaml'
2
-
3
- # @summary
4
- # A module used to contain a set of variables that are expected to remain constant across all iterations of the main pdksync module.
5
- # @note
6
- # Configuration is loaded from `$HOME/.pdksync.yml`. If $HOME is not set, the config_path will use the current directory.
7
- # Set PDKSYNC_LABEL to '' to disable adding a label during pdksync runs.
8
- module PdkSync # rubocop:disable Style/ClassAndModuleChildren
9
- # Constants contains the configuration for pdksync to use
10
- module Constants
11
- default_config = {
12
- namespace: 'puppetlabs',
13
- pdksync_dir: 'modules_pdksync',
14
- push_file_destination: 'origin',
15
- create_pr_against: 'master',
16
- managed_modules: 'managed_modules.yml',
17
- pdksync_label: 'maintenance',
18
- git_platform: :github,
19
- git_base_uri: 'https://github.com',
20
- gitlab_api_endpoint: 'https://gitlab.com/api/v4'
21
- }
22
-
23
- supported_git_platforms = [:github, :gitlab]
24
-
25
- config = {}
26
-
27
- config_path = File.exist?('pdksync.yml') ? 'pdksync.yml' : "#{ENV['HOME']}/.pdksync.yml"
28
-
29
- # pdksync config file must exist, not be empty and not be an empty YAML file
30
- if File.exist?(config_path) && YAML.load_file(config_path) && !YAML.load_file(config_path).nil?
31
- custom_config = YAML.load_file(config_path)
32
- config[:namespace] = custom_config['namespace'] ||= default_config[:namespace]
33
- config[:pdksync_dir] = custom_config['pdksync_dir'] ||= default_config[:pdksync_dir]
34
- config[:push_file_destination] = custom_config['push_file_destination'] ||= default_config[:push_file_destination]
35
- config[:create_pr_against] = custom_config['create_pr_against'] ||= default_config[:create_pr_against]
36
- config[:managed_modules] = custom_config['managed_modules'] ||= default_config[:managed_modules]
37
- config[:pdksync_label] = custom_config['pdksync_label'] ||= default_config[:pdksync_label]
38
- config[:git_platform] = custom_config['git_platform'] ||= default_config[:git_platform]
39
- config[:git_base_uri] = custom_config['git_base_uri'] ||= case config[:git_platform]
40
- when :gitlab
41
- 'https://gitlab.com'
42
- else
43
- default_config[:git_base_uri]
44
- end
45
- config[:gitlab_api_endpoint] = custom_config['gitlab_api_endpoint'] ||= default_config[:gitlab_api_endpoint]
46
- else
47
- config = default_config
48
- end
49
-
50
- NAMESPACE = config[:namespace].freeze
51
- PDKSYNC_DIR = config[:pdksync_dir].freeze
52
- PUSH_FILE_DESTINATION = config[:push_file_destination].freeze
53
- CREATE_PR_AGAINST = config[:create_pr_against].freeze
54
- MANAGED_MODULES = config[:managed_modules].freeze
55
- PDKSYNC_LABEL = config[:pdksync_label].freeze
56
- GIT_PLATFORM = config[:git_platform].downcase.to_sym.freeze
57
- GIT_BASE_URI = config[:git_base_uri].freeze
58
- GITLAB_API_ENDPOINT = config[:gitlab_api_endpoint].freeze
59
- ACCESS_TOKEN = case GIT_PLATFORM
60
- when :github
61
- ENV['GITHUB_TOKEN'].freeze
62
- when :gitlab
63
- ENV['GITLAB_TOKEN'].freeze
64
- end
65
-
66
- # Sanity checks
67
-
68
- unless supported_git_platforms.include?(GIT_PLATFORM)
69
- raise "Unsupported Git hosting platform '#{GIT_PLATFORM}'."\
70
- " Supported platforms are: #{supported_git_platforms.join(', ')}"
71
- end
72
-
73
- if ACCESS_TOKEN.nil?
74
- raise "Git platform access token for #{GIT_PLATFORM.capitalize} not set"\
75
- " - use 'export #{GIT_PLATFORM.upcase}_TOKEN=\"<your token>\"' to set"
76
- end
77
- end
78
- end
@@ -1,58 +0,0 @@
1
- require_relative '../../lib/pdksync'
2
- require 'git'
3
- require 'fileutils'
4
- require 'octokit'
5
-
6
- describe PdkSync do
7
- before(:all) do
8
- @pdksync_dir = './modules_pdksync'
9
- module_name = 'puppetlabs-testing'
10
- @module_names = ['puppetlabs-testing']
11
- @output_path = "#{@pdksync_dir}/#{module_name}"
12
- @folder = Dir.pwd
13
- end
14
-
15
- before(:each) do
16
- allow(PdkSync).to receive(:return_modules).and_return(@module_names)
17
- allow(PdkSync).to receive(:validate_modules_exist).and_return(@module_names)
18
- Dir.chdir(@folder)
19
- end
20
-
21
- context 'main method' do
22
- it 'runs clone sucessfully' do
23
- FileUtils.rm_rf(@pdksync_dir)
24
- PdkSync.create_filespace
25
- PdkSync.main(steps: [:clone])
26
- expect(Dir.exist?(@pdksync_dir)).to be(true)
27
- expect(Dir.exist?(@output_path)).to be(true)
28
- end
29
- it 'runs pdk convert, and files have changed' do
30
- PdkSync.main(steps: [:pdk_convert])
31
- File.exist?("#{@output_path}/convert_report.txt")
32
- end
33
- it 'raise when running a command with no argument' do
34
- expect { PdkSync.main(steps: [:run_a_command]) }.to raise_error(RuntimeError, %r{"run_a_command" requires an argument to run.})
35
- end
36
- it 'runs a command "touch cat.meow"' do
37
- PdkSync.main(steps: [:run_a_command], args: 'touch cat.meow')
38
- expect File.exist?("#{@output_path}/cat.meow")
39
- end
40
- it 'raise when create_commit with no arguments' do
41
- expect { PdkSync.main(steps: [:create_commit]) }.to raise_error(RuntimeError, %r{Needs a branch_name and commit_message})
42
- end
43
- it 'create_commit runs, and contains the "kittens in mittens"' do
44
- PdkSync.main(steps: [:create_commit], args: { branch_name: 'temp_branch', commit_message: 'kittens in mittens' })
45
- git_repo = Git.open(@output_path)
46
- expect(git_repo.show).to include('kittens in mittens')
47
- end
48
- it 'raise when create_pr with no arguments' do
49
- expect { PdkSync.main(steps: [:create_pr]) }.to raise_error(RuntimeError, %r{Needs a pr_title})
50
- end
51
- it 'raise when create_pr with invalid label' do
52
- expect { PdkSync.main(steps: [:create_pr], args: { pr_title: 'My amazing PR', label: 'doot doot' }) }.to raise_error(RuntimeError, %r{Ensure label is valid})
53
- end
54
- it 'raise when clean_branches with no arguments' do
55
- expect { PdkSync.main(steps: [:clean_branches]) }.to raise_error(RuntimeError, %r{Needs a branch_name, and the branch name contains the string pdksync})
56
- end
57
- end
58
- end