puppetfile-resolver 0.6.1 → 0.6.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/README.md +2 -2
- data/lib/puppetfile-resolver/cache/persistent.rb +1 -1
- data/lib/puppetfile-resolver/data/ruby_ca_certs.pem +139 -26
- data/lib/puppetfile-resolver/models/module_dependency.rb +1 -3
- data/lib/puppetfile-resolver/models/module_specification.rb +1 -5
- data/lib/puppetfile-resolver/puppetfile/document.rb +2 -6
- data/lib/puppetfile-resolver/puppetfile/git_module.rb +1 -4
- data/lib/puppetfile-resolver/puppetfile/parser/r10k_eval/dsl.rb +1 -1
- data/lib/puppetfile-resolver/puppetfile/parser/r10k_eval/module/local.rb +1 -2
- data/lib/puppetfile-resolver/puppetfile/parser/r10k_eval.rb +6 -6
- data/lib/puppetfile-resolver/puppetfile/validation_errors.rb +2 -4
- data/lib/puppetfile-resolver/resolver.rb +1 -2
- data/lib/puppetfile-resolver/spec_searchers/configuration.rb +1 -3
- data/lib/puppetfile-resolver/spec_searchers/git/gclone.rb +32 -20
- data/lib/puppetfile-resolver/spec_searchers/git/github.rb +3 -3
- data/lib/puppetfile-resolver/spec_searchers/git/gitlab.rb +3 -3
- data/lib/puppetfile-resolver/util.rb +1 -1
- data/lib/puppetfile-resolver/version.rb +1 -1
- data/puppetfile-cli.rb +2 -2
- data/spec/spec_helper.rb +26 -0
- data/spec/unit/puppetfile-resolver/spec_searchers/git/gclone_spec.rb +24 -2
- metadata +23 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d7673218a6f7c10c7e28ae17d8bc7ebbe7da5d820ae31c4aa10781710aa26c12
|
|
4
|
+
data.tar.gz: a5bdc145cd5bc3233f031617e281d9a0f6927a80057a1a1ea32300cef8ea1004
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8aaeacdba844e37b2090585eaa922352520384271703f06007ce6f658e06e2cb44132ad730d1663060f28376f5018086fcff4b9a6a93363b8e3486c03929ed48
|
|
7
|
+
data.tar.gz: 7c7a6804f9bb7fa4404a50d087f5b931db6cbf31b021cc4bf3c2124489b9b738e65f61887352f0fb531267dfd81a3f54514e67f8e35f39f8457d6676014f984b
|
data/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
[](https://github.com/puppetlabs/puppetfile-resolver/actions/workflows/ci.yml)
|
|
2
|
+
[](https://badge.fury.io/rb/puppetfile-resolver)
|
|
3
3
|
|
|
4
4
|
# Puppetfile Resolver
|
|
5
5
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
##
|
|
2
2
|
## Bundle of CA Root Certificates
|
|
3
3
|
##
|
|
4
|
-
## Certificate data from Mozilla as of: Tue
|
|
4
|
+
## Certificate data from Mozilla as of: Tue Jul 19 03:12:06 2022 GMT
|
|
5
5
|
##
|
|
6
6
|
## This is a bundle of X.509 certificates of public Certificate Authorities
|
|
7
7
|
## (CA). These were automatically extracted from Mozilla's root certificates
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
## Just configure this file as the SSLCACertificateFile.
|
|
15
15
|
##
|
|
16
16
|
## Conversion done with mk-ca-bundle.pl version 1.29.
|
|
17
|
-
## SHA256:
|
|
17
|
+
## SHA256: 9bf3799611fb58197f61d45e71ce3dc19f30e7dd73731915872ce5108a7bb066
|
|
18
18
|
##
|
|
19
19
|
|
|
20
20
|
|
|
@@ -993,30 +993,6 @@ tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29
|
|
|
993
993
|
mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
|
|
994
994
|
-----END CERTIFICATE-----
|
|
995
995
|
|
|
996
|
-
Hellenic Academic and Research Institutions RootCA 2011
|
|
997
|
-
=======================================================
|
|
998
|
-
-----BEGIN CERTIFICATE-----
|
|
999
|
-
MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT
|
|
1000
|
-
O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y
|
|
1001
|
-
aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
|
|
1002
|
-
IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT
|
|
1003
|
-
AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
|
|
1004
|
-
IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo
|
|
1005
|
-
IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
|
1006
|
-
AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI
|
|
1007
|
-
1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa
|
|
1008
|
-
71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u
|
|
1009
|
-
8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH
|
|
1010
|
-
3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/
|
|
1011
|
-
MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8
|
|
1012
|
-
MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu
|
|
1013
|
-
b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt
|
|
1014
|
-
XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
|
|
1015
|
-
TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD
|
|
1016
|
-
/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N
|
|
1017
|
-
7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4
|
|
1018
|
-
-----END CERTIFICATE-----
|
|
1019
|
-
|
|
1020
996
|
Actalis Authentication Root CA
|
|
1021
997
|
==============================
|
|
1022
998
|
-----BEGIN CERTIFICATE-----
|
|
@@ -3345,3 +3321,140 @@ PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD
|
|
|
3345
3321
|
AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR
|
|
3346
3322
|
AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW
|
|
3347
3323
|
-----END CERTIFICATE-----
|
|
3324
|
+
|
|
3325
|
+
DigiCert TLS ECC P384 Root G5
|
|
3326
|
+
=============================
|
|
3327
|
+
-----BEGIN CERTIFICATE-----
|
|
3328
|
+
MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV
|
|
3329
|
+
UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURpZ2lDZXJ0IFRMUyBFQ0MgUDM4
|
|
3330
|
+
NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMx
|
|
3331
|
+
FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQg
|
|
3332
|
+
Um9vdCBHNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1Tzvd
|
|
3333
|
+
lHJS7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp0zVozptj
|
|
3334
|
+
n4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICISB4CIfBFqMA4GA1UdDwEB
|
|
3335
|
+
/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQCJao1H5+z8blUD2Wds
|
|
3336
|
+
Jk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIx
|
|
3337
|
+
AJSdYsiJvRmEFOml+wG4DXZDjC5Ty3zfDBeWUA==
|
|
3338
|
+
-----END CERTIFICATE-----
|
|
3339
|
+
|
|
3340
|
+
DigiCert TLS RSA4096 Root G5
|
|
3341
|
+
============================
|
|
3342
|
+
-----BEGIN CERTIFICATE-----
|
|
3343
|
+
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
|
|
3367
|
+
bEtoL8pU9ozaMv7Da4M/OMZ+
|
|
3368
|
+
-----END CERTIFICATE-----
|
|
3369
|
+
|
|
3370
|
+
Certainly Root R1
|
|
3371
|
+
=================
|
|
3372
|
+
-----BEGIN CERTIFICATE-----
|
|
3373
|
+
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
|
|
3397
|
+
-----END CERTIFICATE-----
|
|
3398
|
+
|
|
3399
|
+
Certainly Root E1
|
|
3400
|
+
=================
|
|
3401
|
+
-----BEGIN CERTIFICATE-----
|
|
3402
|
+
MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQswCQYDVQQGEwJV
|
|
3403
|
+
UzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBFMTAeFw0yMTA0
|
|
3404
|
+
MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlu
|
|
3405
|
+
bHkxGjAYBgNVBAMTEUNlcnRhaW5seSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4
|
|
3406
|
+
fxzf7flHh4axpMCK+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9
|
|
3407
|
+
YBk2QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8EBAMCAQYw
|
|
3408
|
+
DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4hevIIgcwCgYIKoZIzj0E
|
|
3409
|
+
AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8
|
|
3410
|
+
rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR
|
|
3411
|
+
-----END CERTIFICATE-----
|
|
3412
|
+
|
|
3413
|
+
E-Tugra Global Root CA RSA v3
|
|
3414
|
+
=============================
|
|
3415
|
+
-----BEGIN CERTIFICATE-----
|
|
3416
|
+
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
|
|
3443
|
+
-----END CERTIFICATE-----
|
|
3444
|
+
|
|
3445
|
+
E-Tugra Global Root CA ECC v3
|
|
3446
|
+
=============================
|
|
3447
|
+
-----BEGIN CERTIFICATE-----
|
|
3448
|
+
MIICpTCCAiqgAwIBAgIUJkYZdzHhT28oNt45UYbm1JeIIsEwCgYIKoZIzj0EAwMwgYAxCzAJBgNV
|
|
3449
|
+
BAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUtVHVncmEgRUJHIEEuUy4xHTAbBgNV
|
|
3450
|
+
BAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYwJAYDVQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290IENB
|
|
3451
|
+
IEVDQyB2MzAeFw0yMDAzMTgwOTQ2NThaFw00NTAzMTIwOTQ2NThaMIGAMQswCQYDVQQGEwJUUjEP
|
|
3452
|
+
MA0GA1UEBxMGQW5rYXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRFLVR1
|
|
3453
|
+
Z3JhIFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBDQSBFQ0MgdjMw
|
|
3454
|
+
djAQBgcqhkjOPQIBBgUrgQQAIgNiAASOmCm/xxAeJ9urA8woLNheSBkQKczLWYHMjLiSF4mDKpL2
|
|
3455
|
+
w6QdTGLVn9agRtwcvHbB40fQWxPa56WzZkjnIZpKT4YKfWzqTTKACrJ6CZtpS5iB4i7sAnCWH/31
|
|
3456
|
+
Rs7K3IKjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU/4Ixcj75xGZsrTie0bBRiKWQ
|
|
3457
|
+
zPUwHQYDVR0OBBYEFP+CMXI++cRmbK04ntGwUYilkMz1MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjO
|
|
3458
|
+
PQQDAwNpADBmAjEA5gVYaWHlLcoNy/EZCL3W/VGSGn5jVASQkZo1kTmZ+gepZpO6yGjUij/67W4W
|
|
3459
|
+
Aie3AjEA3VoXK3YdZUKWpqxdinlW2Iob35reX8dQj7FbcQwm32pAAOwzkSFxvmjkI6TZraE3
|
|
3460
|
+
-----END CERTIFICATE-----
|
|
@@ -7,11 +7,7 @@ require 'puppetfile-resolver/puppetfile'
|
|
|
7
7
|
module PuppetfileResolver
|
|
8
8
|
module Models
|
|
9
9
|
class ModuleSpecification
|
|
10
|
-
attr_accessor :name
|
|
11
|
-
attr_accessor :owner
|
|
12
|
-
attr_accessor :version
|
|
13
|
-
attr_accessor :origin # Same as R10K module :type
|
|
14
|
-
attr_accessor :resolver_flags
|
|
10
|
+
attr_accessor :name, :owner, :version, :origin, :resolver_flags # origin attr same as R10K module :type
|
|
15
11
|
|
|
16
12
|
def initialize(options = {})
|
|
17
13
|
require 'semantic_puppet'
|
|
@@ -5,16 +5,12 @@ require 'puppetfile-resolver/puppetfile/invalid_module'
|
|
|
5
5
|
module PuppetfileResolver
|
|
6
6
|
module Puppetfile
|
|
7
7
|
class DocumentLocation
|
|
8
|
-
attr_accessor :start_line # Base 0
|
|
9
|
-
attr_accessor :start_char # Base 0
|
|
10
|
-
attr_accessor :end_line # Base 0
|
|
11
|
-
attr_accessor :end_char # Base 0
|
|
8
|
+
attr_accessor :start_line, :start_char, :end_line, :end_char # Base 0 # Base 0 # Base 0 # Base 0
|
|
12
9
|
end
|
|
13
10
|
|
|
14
11
|
class Document
|
|
15
|
-
attr_accessor :forge_uri
|
|
12
|
+
attr_accessor :forge_uri, :content
|
|
16
13
|
attr_reader :modules
|
|
17
|
-
attr_accessor :content
|
|
18
14
|
|
|
19
15
|
def initialize(puppetfile_content)
|
|
20
16
|
@content = puppetfile_content
|
|
@@ -5,10 +5,7 @@ require 'puppetfile-resolver/puppetfile/base_module'
|
|
|
5
5
|
module PuppetfileResolver
|
|
6
6
|
module Puppetfile
|
|
7
7
|
class GitModule < BaseModule
|
|
8
|
-
attr_accessor :remote
|
|
9
|
-
attr_accessor :ref
|
|
10
|
-
attr_accessor :commit
|
|
11
|
-
attr_accessor :tag
|
|
8
|
+
attr_accessor :remote, :ref, :commit, :tag
|
|
12
9
|
|
|
13
10
|
def initialize(title)
|
|
14
11
|
super
|
|
@@ -41,7 +41,7 @@ module PuppetfileResolver
|
|
|
41
41
|
|
|
42
42
|
def find_load_line_number
|
|
43
43
|
loc = Kernel.caller_locations
|
|
44
|
-
.find { |call_loc| call_loc.
|
|
44
|
+
.find { |call_loc| call_loc.path == ::PuppetfileResolver::Puppetfile::Parser::R10KEval::PUPPETFILE_MONIKER }
|
|
45
45
|
loc.nil? ? 0 : loc.lineno - 1 # Line numbers from ruby are base 1
|
|
46
46
|
end
|
|
47
47
|
end
|
|
@@ -21,7 +21,7 @@ module PuppetfileResolver
|
|
|
21
21
|
rescue StandardError, LoadError => e
|
|
22
22
|
# Find the originating error from within the puppetfile
|
|
23
23
|
loc = e.backtrace_locations
|
|
24
|
-
.select { |item| item.
|
|
24
|
+
.select { |item| item.path == PUPPETFILE_MONIKER }
|
|
25
25
|
.first
|
|
26
26
|
start_line_number = loc.nil? ? 0 : loc.lineno - 1 # Line numbers from ruby are base 1
|
|
27
27
|
end_line_number = loc.nil? ? puppetfile_contents.lines.count - 1 : loc.lineno - 1 # Line numbers from ruby are base 1
|
|
@@ -65,19 +65,19 @@ module PuppetfileResolver
|
|
|
65
65
|
def self.post_process_flags!(document)
|
|
66
66
|
flag_ranges = {}
|
|
67
67
|
document.content.lines.each_with_index do |line, index|
|
|
68
|
-
if (matches = line.match(%r{^\s*# resolver:disable ([A-Za-z
|
|
68
|
+
if (matches = line.match(%r{^\s*# resolver:disable ([A-Za-z/,]+)(?:\s|$)}))
|
|
69
69
|
flags_from_line(matches[1]).each do |flag|
|
|
70
70
|
# Start a flag range if there isn't already one going
|
|
71
71
|
next unless flag_ranges[flag].nil?
|
|
72
72
|
flag_ranges[flag] = index
|
|
73
73
|
end
|
|
74
|
-
elsif (matches = line.match(%r{# resolver:disable ([A-Za-z
|
|
74
|
+
elsif (matches = line.match(%r{# resolver:disable ([A-Za-z/,]+)(?:\s|$)}))
|
|
75
75
|
flags_from_line(matches[1]).each do |flag|
|
|
76
76
|
# Assert the flag if we're not already within a range
|
|
77
77
|
next unless flag_ranges[flag].nil?
|
|
78
78
|
assert_resolver_flag(document, flag, index, index)
|
|
79
79
|
end
|
|
80
|
-
elsif (matches = line.match(%r{^\s*# resolver:enable ([A-Za-z
|
|
80
|
+
elsif (matches = line.match(%r{^\s*# resolver:enable ([A-Za-z/,]+)(?:\s|$)}))
|
|
81
81
|
flags_from_line(matches[1]).each do |flag|
|
|
82
82
|
# End a flag range if there isn't already one going
|
|
83
83
|
next if flag_ranges[flag].nil?
|
|
@@ -122,8 +122,8 @@ module PuppetfileResolver
|
|
|
122
122
|
next if mod.location.start_line.nil? || mod.location.end_line.nil?
|
|
123
123
|
|
|
124
124
|
# If the module doesn't span the range we're looking for (from_line --> to_line) ignore it
|
|
125
|
-
next unless mod.location.start_line >= from_line && mod.location.start_line <= to_line ||
|
|
126
|
-
mod.location.end_line >= from_line && mod.location.end_line <= to_line
|
|
125
|
+
next unless (mod.location.start_line >= from_line && mod.location.start_line <= to_line) ||
|
|
126
|
+
(mod.location.end_line >= from_line && mod.location.end_line <= to_line)
|
|
127
127
|
mod.resolver_flags << flag unless mod.resolver_flags.include?(flag)
|
|
128
128
|
end
|
|
129
129
|
nil
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
module PuppetfileResolver
|
|
4
4
|
module Puppetfile
|
|
5
5
|
class DocumentValidationErrorBase
|
|
6
|
-
attr_accessor :message
|
|
7
|
-
attr_accessor :puppet_module
|
|
6
|
+
attr_accessor :message, :puppet_module
|
|
8
7
|
|
|
9
8
|
def initialize(message, puppet_module)
|
|
10
9
|
@message = message
|
|
@@ -79,8 +78,7 @@ module PuppetfileResolver
|
|
|
79
78
|
# Resolution Validation Error classes for validating
|
|
80
79
|
# a valid Puppetfile against a dependency resolution
|
|
81
80
|
class DocumentResolutionErrorBase < DocumentValidationErrorBase
|
|
82
|
-
attr_accessor :puppet_module
|
|
83
|
-
attr_accessor :module_specification
|
|
81
|
+
attr_accessor :puppet_module, :module_specification
|
|
84
82
|
|
|
85
83
|
def initialize(message, puppet_module, module_specification)
|
|
86
84
|
super(message, puppet_module)
|
|
@@ -7,8 +7,7 @@ require 'puppetfile-resolver/models'
|
|
|
7
7
|
|
|
8
8
|
module PuppetfileResolver
|
|
9
9
|
class Resolver
|
|
10
|
-
attr_reader :puppetfile
|
|
11
|
-
attr_reader :dependencies_to_resolve
|
|
10
|
+
attr_reader :puppetfile, :dependencies_to_resolve
|
|
12
11
|
|
|
13
12
|
def initialize(puppetfile_document, puppet_version = nil)
|
|
14
13
|
@puppetfile = puppetfile_document
|
|
@@ -7,9 +7,7 @@ require 'puppetfile-resolver/spec_searchers/local_configuration'
|
|
|
7
7
|
module PuppetfileResolver
|
|
8
8
|
module SpecSearchers
|
|
9
9
|
class Configuration
|
|
10
|
-
attr_reader :local
|
|
11
|
-
attr_reader :forge
|
|
12
|
-
attr_reader :git
|
|
10
|
+
attr_reader :local, :forge, :git
|
|
13
11
|
|
|
14
12
|
def initialize
|
|
15
13
|
@local = LocalConfiguration.new
|
|
@@ -5,13 +5,14 @@ require 'English'
|
|
|
5
5
|
require 'puppetfile-resolver/util'
|
|
6
6
|
require 'puppetfile-resolver/spec_searchers/common'
|
|
7
7
|
require 'puppetfile-resolver/spec_searchers/git_configuration'
|
|
8
|
-
require 'puppetfile-resolver/util'
|
|
9
8
|
require 'uri'
|
|
10
9
|
|
|
11
10
|
module PuppetfileResolver
|
|
12
11
|
module SpecSearchers
|
|
13
12
|
module Git
|
|
14
13
|
module GClone
|
|
14
|
+
METADATA_FILE = 'metadata.json'
|
|
15
|
+
|
|
15
16
|
# @summary clones the remote url and reads the metadata file
|
|
16
17
|
# @returns [String] the content of the metadata file
|
|
17
18
|
def self.metadata(puppetfile_module, resolver_ui, config)
|
|
@@ -25,8 +26,6 @@ module PuppetfileResolver
|
|
|
25
26
|
return nil if repo_url.nil?
|
|
26
27
|
return nil unless valid_http_url?(repo_url)
|
|
27
28
|
|
|
28
|
-
metadata_file = 'metadata.json'
|
|
29
|
-
|
|
30
29
|
ref = puppetfile_module.ref ||
|
|
31
30
|
puppetfile_module.tag ||
|
|
32
31
|
puppetfile_module.commit ||
|
|
@@ -35,7 +34,7 @@ module PuppetfileResolver
|
|
|
35
34
|
|
|
36
35
|
resolver_ui.debug { "Querying git repository #{repo_url}" }
|
|
37
36
|
|
|
38
|
-
clone_and_read_file(repo_url, ref,
|
|
37
|
+
clone_and_read_file(repo_url, ref, config)
|
|
39
38
|
end
|
|
40
39
|
|
|
41
40
|
# @summary clones the git url and reads the file at the given ref
|
|
@@ -44,24 +43,37 @@ module PuppetfileResolver
|
|
|
44
43
|
# @param ref [String] the git ref, branch, commit, tag
|
|
45
44
|
# @param file [String] the file you wish to read
|
|
46
45
|
# @returns [String] the content of the file
|
|
47
|
-
def self.clone_and_read_file(url, ref,
|
|
48
|
-
clone_cmd = ['git', 'clone', '--bare', '--depth=1', '--single-branch']
|
|
49
|
-
err_msg = ''
|
|
50
|
-
if config.proxy
|
|
51
|
-
err_msg += " with proxy #{config.proxy}: "
|
|
52
|
-
proxy = "--config \"http.proxy=#{config.proxy}\" --config \"https.proxy=#{config.proxy}\""
|
|
53
|
-
clone_cmd.push(proxy)
|
|
54
|
-
end
|
|
55
|
-
|
|
46
|
+
def self.clone_and_read_file(url, ref, config)
|
|
56
47
|
Dir.mktmpdir(nil, config.clone_dir) do |dir|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
48
|
+
clone = ['git', 'clone', url, dir]
|
|
49
|
+
clone += ['--config', "http.proxy=#{config.proxy}", '--config', "https.proxy=#{config.proxy}"] if config.proxy
|
|
50
|
+
|
|
51
|
+
bare_clone = clone + ['--bare', '--depth=1']
|
|
52
|
+
bare_clone.push("--branch=#{ref}") unless ref == 'HEAD'
|
|
53
|
+
|
|
54
|
+
# Try to clone a bare repository. If that fails, fall back to a full clone.
|
|
55
|
+
# Cloning might fail because the repo does not exist or is otherwise
|
|
56
|
+
# inaccessible, but it can also fail because cloning a bare repository from
|
|
57
|
+
# a commit/SHA1 fails. Falling back to a full clone ensures that we support
|
|
58
|
+
# commits/SHA1s like Puppetfile does.
|
|
59
|
+
_stdout, _stderr, process = ::PuppetfileResolver::Util.run_command(bare_clone)
|
|
60
|
+
|
|
61
|
+
unless process.success?
|
|
62
|
+
_stdout, stderr, process = ::PuppetfileResolver::Util.run_command(clone)
|
|
63
|
+
|
|
64
|
+
unless process.success?
|
|
65
|
+
msg = if config.proxy
|
|
66
|
+
"Cloning #{url} with proxy #{config.proxy} failed: #{stderr}"
|
|
67
|
+
else
|
|
68
|
+
"Cloning #{url} failed: #{stderr}"
|
|
69
|
+
end
|
|
70
|
+
raise msg
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
62
74
|
Dir.chdir(dir) do
|
|
63
|
-
content,
|
|
64
|
-
raise
|
|
75
|
+
content, stderr, process = ::PuppetfileResolver::Util.run_command(['git', 'show', "#{ref}:#{METADATA_FILE}"])
|
|
76
|
+
raise "Could not find #{METADATA_FILE} for ref #{ref} at #{url}: #{stderr}" unless process.success?
|
|
65
77
|
return content
|
|
66
78
|
end
|
|
67
79
|
end
|
|
@@ -19,11 +19,11 @@ module PuppetfileResolver
|
|
|
19
19
|
end
|
|
20
20
|
return nil if repo_url.nil?
|
|
21
21
|
|
|
22
|
-
metadata_url =
|
|
22
|
+
metadata_url = "https://raw.githubusercontent.com/#{repo_url}/"
|
|
23
23
|
if puppetfile_module.ref
|
|
24
|
-
metadata_url += puppetfile_module.ref
|
|
24
|
+
metadata_url += "#{puppetfile_module.ref}/"
|
|
25
25
|
elsif puppetfile_module.tag
|
|
26
|
-
metadata_url += puppetfile_module.tag
|
|
26
|
+
metadata_url += "#{puppetfile_module.tag}/"
|
|
27
27
|
else
|
|
28
28
|
# Default to master. Should it raise?
|
|
29
29
|
metadata_url += 'master/'
|
|
@@ -21,11 +21,11 @@ module PuppetfileResolver
|
|
|
21
21
|
|
|
22
22
|
# Example URL
|
|
23
23
|
# https://gitlab.com/simp/pupmod-simp-crypto_policy/-/raw/0.1.4/metadata.json
|
|
24
|
-
metadata_url =
|
|
24
|
+
metadata_url = "https://gitlab.com/#{repo_url}/-/raw/"
|
|
25
25
|
if puppetfile_module.ref
|
|
26
|
-
metadata_url += puppetfile_module.ref
|
|
26
|
+
metadata_url += "#{puppetfile_module.ref}/"
|
|
27
27
|
elsif puppetfile_module.tag
|
|
28
|
-
metadata_url += puppetfile_module.tag
|
|
28
|
+
metadata_url += "#{puppetfile_module.tag}/"
|
|
29
29
|
else
|
|
30
30
|
# Default to master. Should it raise?
|
|
31
31
|
metadata_url += 'master/'
|
|
@@ -29,7 +29,7 @@ module PuppetfileResolver
|
|
|
29
29
|
def self.net_http_get(uri, proxy = nil)
|
|
30
30
|
uri = URI.parse(uri) unless uri.is_a?(URI)
|
|
31
31
|
|
|
32
|
-
http_options = { :use_ssl => uri.
|
|
32
|
+
http_options = { :use_ssl => uri.instance_of?(URI::HTTPS) }
|
|
33
33
|
# Because on Windows Ruby doesn't use the Windows certificate store which has up-to date
|
|
34
34
|
# CA certs, we can't depend on someone setting the environment variable correctly. So use our
|
|
35
35
|
# static CA PEM file if SSL_CERT_FILE is not set.
|
data/puppetfile-cli.rb
CHANGED
|
@@ -72,9 +72,9 @@ else
|
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
# Parse the Puppetfile into an object model
|
|
75
|
-
content = File.
|
|
75
|
+
content = File.binread(options[:path])
|
|
76
76
|
require 'puppetfile-resolver/puppetfile/parser/r10k_eval'
|
|
77
|
-
puppetfile =
|
|
77
|
+
puppetfile = PuppetfileResolver::Puppetfile::Parser::R10KEval.parse(content)
|
|
78
78
|
|
|
79
79
|
# Make sure the Puppetfile is valid
|
|
80
80
|
unless puppetfile.valid?
|
data/spec/spec_helper.rb
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
if ENV['COVERAGE'] == 'yes'
|
|
4
|
+
begin
|
|
5
|
+
require 'simplecov'
|
|
6
|
+
require 'simplecov-console'
|
|
7
|
+
|
|
8
|
+
SimpleCov.formatters = [
|
|
9
|
+
SimpleCov::Formatter::HTMLFormatter,
|
|
10
|
+
SimpleCov::Formatter::Console,
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
SimpleCov.start do
|
|
14
|
+
track_files 'lib/**/*.rb'
|
|
15
|
+
add_filter '/spec'
|
|
16
|
+
add_filter 'lib/puppetfile-resolver/version.rb'
|
|
17
|
+
|
|
18
|
+
add_filter '/docs'
|
|
19
|
+
|
|
20
|
+
# do not track vendored files
|
|
21
|
+
add_filter '/vendor'
|
|
22
|
+
add_filter '/.vendor'
|
|
23
|
+
end
|
|
24
|
+
rescue LoadError
|
|
25
|
+
raise 'Add the simplecov & simplecov-console gems to Gemfile to enable this task'
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
3
29
|
root = File.join(__dir__,'..',)
|
|
4
30
|
# Add the language server into the load path
|
|
5
31
|
$LOAD_PATH.unshift(File.join(root,'lib'))
|
|
@@ -23,8 +23,7 @@ describe PuppetfileResolver::SpecSearchers::Git::GClone do
|
|
|
23
23
|
expect(JSON.parse(content)['name']).to eq('puppetlabs-powershell')
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
-
context 'with
|
|
27
|
-
|
|
26
|
+
context 'with tag' do
|
|
28
27
|
let(:puppetfile_module) do
|
|
29
28
|
PuppetfileModule.new(remote: url, ref: '2.1.2')
|
|
30
29
|
end
|
|
@@ -34,6 +33,29 @@ describe PuppetfileResolver::SpecSearchers::Git::GClone do
|
|
|
34
33
|
expect(JSON.parse(content)['name']).to eq('puppetlabs-powershell')
|
|
35
34
|
end
|
|
36
35
|
end
|
|
36
|
+
|
|
37
|
+
context 'with commit' do
|
|
38
|
+
let(:puppetfile_module) do
|
|
39
|
+
PuppetfileModule.new(remote: url, ref: '9276de695798097e8471b877a18df27f764eecda')
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it 'reads metadata' do
|
|
43
|
+
content = subject.metadata(puppetfile_module, Logger.new(STDERR), config)
|
|
44
|
+
expect(JSON.parse(content)['name']).to eq('puppetlabs-powershell')
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
context 'with invalid ref' do
|
|
49
|
+
let(:puppetfile_module) do
|
|
50
|
+
PuppetfileModule.new(remote: url, ref: '8f7d5ea3ef49dadc5e166d5d802d091abc4b02bc')
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it 'errors gracefully' do
|
|
54
|
+
expect { subject.metadata(puppetfile_module, Logger.new(STDERR), config) }.to raise_error(
|
|
55
|
+
/Could not find metadata\.json for ref .* at .*/
|
|
56
|
+
)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
37
59
|
end
|
|
38
60
|
|
|
39
61
|
context 'invalid url' do
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: puppetfile-resolver
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.6.
|
|
4
|
+
version: 0.6.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Glenn Sarti
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-02-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: molinillo
|
|
@@ -38,6 +38,20 @@ dependencies:
|
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '1.0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: webrick
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '1.8'
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '1.8'
|
|
41
55
|
description: Resolves the Puppet Modules in a Puppetfile with a full dependency graph,
|
|
42
56
|
including Puppet version checks.
|
|
43
57
|
email:
|
|
@@ -126,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
126
140
|
- !ruby/object:Gem::Version
|
|
127
141
|
version: '0'
|
|
128
142
|
requirements: []
|
|
129
|
-
rubygems_version: 3.
|
|
143
|
+
rubygems_version: 3.1.6
|
|
130
144
|
signing_key:
|
|
131
145
|
specification_version: 4
|
|
132
146
|
summary: Dependency resolver for Puppetfiles
|
|
@@ -134,11 +148,11 @@ test_files:
|
|
|
134
148
|
- spec/fixtures/proxy.rb
|
|
135
149
|
- spec/fixtures/modulepath/test_module/README.md
|
|
136
150
|
- spec/fixtures/modulepath/test_module/metadata.json
|
|
137
|
-
- spec/unit/puppetfile-resolver/puppetfile/parser/r10k_eval_spec.rb
|
|
138
|
-
- spec/unit/puppetfile-resolver/puppetfile/document_spec.rb
|
|
139
|
-
- spec/unit/puppetfile-resolver/resolver_spec.rb
|
|
140
|
-
- spec/unit/puppetfile-resolver/spec_searchers/git/gclone_spec.rb
|
|
141
151
|
- spec/spec_helper.rb
|
|
142
|
-
- spec/integration/proxy_spec.rb
|
|
143
|
-
- spec/integration/kitchensink_spec.rb
|
|
144
152
|
- spec/integration/deprecation_spec.rb
|
|
153
|
+
- spec/integration/kitchensink_spec.rb
|
|
154
|
+
- spec/integration/proxy_spec.rb
|
|
155
|
+
- spec/unit/puppetfile-resolver/puppetfile/document_spec.rb
|
|
156
|
+
- spec/unit/puppetfile-resolver/puppetfile/parser/r10k_eval_spec.rb
|
|
157
|
+
- spec/unit/puppetfile-resolver/spec_searchers/git/gclone_spec.rb
|
|
158
|
+
- spec/unit/puppetfile-resolver/resolver_spec.rb
|