puppet-sec-lint 0.5.7 → 0.5.13
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/.idea/puppet-sec-lint.iml +3 -27
- data/Gemfile +4 -2
- data/Gemfile.lock +7 -8
- data/exe/puppet-sec-lint +12 -0
- data/lib/puppet-sec-lint/version.rb +1 -1
- data/lib/rule_engine.rb +9 -4
- data/lib/rules/no_http_rule.rb +6 -5
- data/lib/rules/rule.rb +2 -3
- data/lib/servers/language_server.rb +2 -4
- data/lib/servers/linter_server.rb +3 -4
- data/lib/settings.ini +40 -0
- data/puppet-sec-lint.gemspec +2 -0
- metadata +31 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bfaad87ab6375c69dd2cb27773653373587f35e3cc74d4cba47c0bb05a69bd18
|
|
4
|
+
data.tar.gz: 9c5a606fc0867a133d38ab6033f9fe6b66eaae4a8e7426f45d59fea1ff3d4b34
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 26a4648b94a03331d14bcb1da29938809c5869b8f013c9f4510bfdd3dbf8557139ff66a5cb8834066cdd103ade3631001f4a7ebbc9d09b1292c4a7ec4413d96f
|
|
7
|
+
data.tar.gz: ce98ccc1b55c37bc67d3ba4bafdd68fee493af13cffcab88af893ce276a0b5ba860d4b0a3deb2dc9210e467e24d8f61f14395b9bab2db314c1354df8a8711351
|
data/.idea/puppet-sec-lint.iml
CHANGED
|
@@ -13,43 +13,19 @@
|
|
|
13
13
|
<orderEntry type="sourceFolder" forTests="false" />
|
|
14
14
|
<orderEntry type="library" scope="PROVIDED" name="addressable (v2.7.0, RVM: ruby-3.0.0 [global]) [gem]" level="application" />
|
|
15
15
|
<orderEntry type="library" scope="PROVIDED" name="bundler (v2.2.3, RVM: ruby-3.0.0 [global]) [gem]" level="application" />
|
|
16
|
-
<orderEntry type="library" scope="PROVIDED" name="daemons (v1.3.1, RVM: ruby-3.0.0 [global]) [gem]" level="application" />
|
|
17
|
-
<orderEntry type="library" scope="PROVIDED" name="eventmachine (v1.2.7, RVM: ruby-3.0.0 [global]) [gem]" level="application" />
|
|
18
16
|
<orderEntry type="library" scope="PROVIDED" name="inifile (v3.0.0, RVM: ruby-3.0.0 [global]) [gem]" level="application" />
|
|
19
17
|
<orderEntry type="library" scope="PROVIDED" name="launchy (v2.5.0, RVM: ruby-3.0.0 [global]) [gem]" level="application" />
|
|
18
|
+
<orderEntry type="library" scope="PROVIDED" name="logger (v1.4.3, RVM: ruby-3.0.0 [global]) [gem]" level="application" />
|
|
20
19
|
<orderEntry type="library" scope="PROVIDED" name="minitest (v5.14.4, RVM: ruby-3.0.0 [global]) [gem]" level="application" />
|
|
21
20
|
<orderEntry type="library" scope="PROVIDED" name="public_suffix (v4.0.6, RVM: ruby-3.0.0 [global]) [gem]" level="application" />
|
|
22
21
|
<orderEntry type="library" scope="PROVIDED" name="puppet-lint (v2.4.2, RVM: ruby-3.0.0 [global]) [gem]" level="application" />
|
|
23
22
|
<orderEntry type="library" scope="PROVIDED" name="rack (v2.2.3, RVM: ruby-3.0.0 [global]) [gem]" level="application" />
|
|
24
23
|
<orderEntry type="library" scope="PROVIDED" name="rake (v13.0.3, RVM: ruby-3.0.0 [global]) [gem]" level="application" />
|
|
25
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
|
24
|
+
<orderEntry type="library" scope="PROVIDED" name="webrick (v1.7.0, RVM: ruby-3.0.0 [global]) [gem]" level="application" />
|
|
26
25
|
</component>
|
|
27
26
|
<component name="RakeTasksCache">
|
|
28
27
|
<option name="myRootTask">
|
|
29
|
-
<RakeTaskImpl id="rake"
|
|
30
|
-
<subtasks>
|
|
31
|
-
<RakeTaskImpl description="Build puppet-sec-lint-0.1.0.gem into the pkg directory" fullCommand="build" id="build" />
|
|
32
|
-
<RakeTaskImpl description="Remove any temporary products" fullCommand="clean" id="clean" />
|
|
33
|
-
<RakeTaskImpl description="Remove any generated files" fullCommand="clobber" id="clobber" />
|
|
34
|
-
<RakeTaskImpl description="Build and install puppet-sec-lint-0.1.0.gem into system gems" fullCommand="install" id="install" />
|
|
35
|
-
<RakeTaskImpl id="install">
|
|
36
|
-
<subtasks>
|
|
37
|
-
<RakeTaskImpl description="Build and install puppet-sec-lint-0.1.0.gem into system gems without network access" fullCommand="install:local" id="local" />
|
|
38
|
-
</subtasks>
|
|
39
|
-
</RakeTaskImpl>
|
|
40
|
-
<RakeTaskImpl description="Create tag v0.1.0 and build and push puppet-sec-lint-0.1.0.gem to TODO: Set to 'http://mygemserver.com'" fullCommand="release[remote]" id="release[remote]" />
|
|
41
|
-
<RakeTaskImpl description="Run tests" fullCommand="test" id="test" />
|
|
42
|
-
<RakeTaskImpl description="" fullCommand="default" id="default" />
|
|
43
|
-
<RakeTaskImpl description="" fullCommand="release" id="release" />
|
|
44
|
-
<RakeTaskImpl id="release">
|
|
45
|
-
<subtasks>
|
|
46
|
-
<RakeTaskImpl description="" fullCommand="release:guard_clean" id="guard_clean" />
|
|
47
|
-
<RakeTaskImpl description="" fullCommand="release:rubygem_push" id="rubygem_push" />
|
|
48
|
-
<RakeTaskImpl description="" fullCommand="release:source_control_push" id="source_control_push" />
|
|
49
|
-
</subtasks>
|
|
50
|
-
</RakeTaskImpl>
|
|
51
|
-
</subtasks>
|
|
52
|
-
</RakeTaskImpl>
|
|
28
|
+
<RakeTaskImpl id="rake" />
|
|
53
29
|
</option>
|
|
54
30
|
</component>
|
|
55
31
|
</module>
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,33 +1,31 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
puppet-sec-lint (0.5.
|
|
4
|
+
puppet-sec-lint (0.5.13)
|
|
5
5
|
inifile (~> 3.0.0)
|
|
6
6
|
launchy (~> 2.5.0)
|
|
7
|
+
logger (~> 1.4.3)
|
|
7
8
|
minitest (~> 5.0)
|
|
8
9
|
puppet-lint (~> 2.4, >= 2.4.2)
|
|
9
10
|
rack (~> 2.2.3)
|
|
10
11
|
rake (~> 13.0)
|
|
12
|
+
webrick (~> 1.7.0)
|
|
11
13
|
|
|
12
14
|
GEM
|
|
13
15
|
remote: https://rubygems.org/
|
|
14
16
|
specs:
|
|
15
17
|
addressable (2.7.0)
|
|
16
18
|
public_suffix (>= 2.0.2, < 5.0)
|
|
17
|
-
daemons (1.3.1)
|
|
18
|
-
eventmachine (1.2.7)
|
|
19
19
|
inifile (3.0.0)
|
|
20
20
|
launchy (2.5.0)
|
|
21
21
|
addressable (~> 2.7)
|
|
22
|
+
logger (1.4.3)
|
|
22
23
|
minitest (5.14.4)
|
|
23
24
|
public_suffix (4.0.6)
|
|
24
25
|
puppet-lint (2.4.2)
|
|
25
26
|
rack (2.2.3)
|
|
26
27
|
rake (13.0.3)
|
|
27
|
-
|
|
28
|
-
daemons (~> 1.0, >= 1.0.9)
|
|
29
|
-
eventmachine (~> 1.0, >= 1.0.4)
|
|
30
|
-
rack (>= 1, < 3)
|
|
28
|
+
webrick (1.7.0)
|
|
31
29
|
|
|
32
30
|
PLATFORMS
|
|
33
31
|
x86_64-linux
|
|
@@ -35,12 +33,13 @@ PLATFORMS
|
|
|
35
33
|
DEPENDENCIES
|
|
36
34
|
inifile
|
|
37
35
|
launchy
|
|
36
|
+
logger
|
|
38
37
|
minitest (~> 5.0)
|
|
39
38
|
puppet-lint
|
|
40
39
|
puppet-sec-lint!
|
|
41
40
|
rack
|
|
42
41
|
rake (~> 13.0)
|
|
43
|
-
|
|
42
|
+
webrick
|
|
44
43
|
|
|
45
44
|
BUNDLED WITH
|
|
46
45
|
2.2.3
|
data/exe/puppet-sec-lint
CHANGED
|
@@ -5,10 +5,17 @@ require 'json'
|
|
|
5
5
|
require 'launchy'
|
|
6
6
|
require 'optparse'
|
|
7
7
|
require 'optparse/uri'
|
|
8
|
+
require 'logger'
|
|
8
9
|
require_relative '../lib/puppet-sec-lint/version'
|
|
9
10
|
require_relative '../lib/visitors/configuration_visitor'
|
|
10
11
|
require_relative '../lib/facades/configuration_file_facade'
|
|
11
12
|
|
|
13
|
+
ConfigurationVisitor.GenerateIDs
|
|
14
|
+
ConfigurationFileFacade.LoadConfigurations
|
|
15
|
+
|
|
16
|
+
$logger = Logger.new(STDOUT)
|
|
17
|
+
$logger.level = Logger::ERROR
|
|
18
|
+
|
|
12
19
|
#get free port
|
|
13
20
|
loop do
|
|
14
21
|
$port = rand(3000..9999)
|
|
@@ -46,6 +53,11 @@ OptionParser.new do |opts|
|
|
|
46
53
|
opts.on("-p", "--port=PORT", "TCP Port open for socket communication with the language server (Default:5007)") do |port|
|
|
47
54
|
options[:port] = port
|
|
48
55
|
end
|
|
56
|
+
|
|
57
|
+
opts.on("-v", "--verbose", "Verbose mode (shows all communications and other debug info)") do |v|
|
|
58
|
+
options[:verbose] = v
|
|
59
|
+
$logger.level = Logger::DEBUG
|
|
60
|
+
end
|
|
49
61
|
end.parse!
|
|
50
62
|
|
|
51
63
|
puts '___ _ _ ___ ___ ____ ___ ____ ____ ____ _ _ ____ _ ___ _ _ _ _ _ _ ___ ____ ____ '
|
data/lib/rule_engine.rb
CHANGED
|
@@ -21,8 +21,9 @@ class RuleEngine
|
|
|
21
21
|
begin
|
|
22
22
|
lexer = PuppetLint::Lexer.new
|
|
23
23
|
tokens = lexer.tokenise(code)
|
|
24
|
-
rescue
|
|
25
|
-
|
|
24
|
+
rescue => error
|
|
25
|
+
$logger.error("Error in getting tokens from Puppet-Lint")
|
|
26
|
+
$logger.error(error.backtrace)
|
|
26
27
|
tokens = []
|
|
27
28
|
end
|
|
28
29
|
|
|
@@ -34,8 +35,12 @@ class RuleEngine
|
|
|
34
35
|
tokens = self.getTokens(code)
|
|
35
36
|
|
|
36
37
|
@rules.each do |rule|
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
begin
|
|
39
|
+
if rule.configurations[0].value
|
|
40
|
+
(result << rule.AnalyzeTokens(tokens)).flatten!
|
|
41
|
+
end
|
|
42
|
+
rescue
|
|
43
|
+
$logger.error("Error in running rule #{rule.name}")
|
|
39
44
|
end
|
|
40
45
|
end
|
|
41
46
|
|
data/lib/rules/no_http_rule.rb
CHANGED
|
@@ -8,21 +8,22 @@ class NoHTTPRule < Rule
|
|
|
8
8
|
@resources = %w[apt::source ::apt::source wget::fetch yumrepo yum:: aptly::mirror util::system_package yum::managed_yumrepo]
|
|
9
9
|
@keywords = %w[backport key download uri mirror]
|
|
10
10
|
@http = /^http:\/\/.+/
|
|
11
|
-
@whitelist =
|
|
11
|
+
@whitelist = ""
|
|
12
12
|
|
|
13
13
|
@resources_conf = ListConfiguration.new("List of resources that can use HTTP", @resources, "List of resources that are known to not use HTTPS but that validate the transferred content with other secure methods.")
|
|
14
14
|
@keywords_conf = ListConfiguration.new("List of keywords for URLs", @keywords, "List of keywords that identify hyperlinks that should be analyzed.")
|
|
15
|
+
@whitelist_conf = RegexConfiguration.new("HTTP Address whitelist", @whitelist, "List of addresses that are allowed to have non-secure http connections to them.")
|
|
15
16
|
@http_conf = RegexConfiguration.new("Regular expression of a normal HTTP address", @http, "Regular expression that identifies the URL of a website using the regular non-secure HTTP protocol.")
|
|
16
17
|
|
|
17
|
-
@configurations+=[@resources_conf, @keywords_conf, @http_conf]
|
|
18
|
+
@configurations+=[@resources_conf, @keywords_conf, @http_conf, @whitelist_conf]
|
|
18
19
|
|
|
19
20
|
def self.AnalyzeTokens(tokens)
|
|
20
21
|
result = []
|
|
21
22
|
|
|
22
23
|
ptokens = self.filter_resources(tokens, @resources_conf.value)
|
|
23
|
-
ctokens = self.filter_variables(ptokens, @keywords_conf.value)
|
|
24
|
-
if @
|
|
25
|
-
wtokens = self.filter_whitelist(ctokens)
|
|
24
|
+
ctokens = self.filter_variables(ptokens, @keywords_conf.value) #TODO: It's working upside down
|
|
25
|
+
if @whitelist_conf.value
|
|
26
|
+
wtokens = self.filter_whitelist(ctokens, @whitelist_conf.value)
|
|
26
27
|
else
|
|
27
28
|
wtokens = ptokens
|
|
28
29
|
end
|
data/lib/rules/rule.rb
CHANGED
|
@@ -67,10 +67,9 @@ class Rule
|
|
|
67
67
|
return ftokens
|
|
68
68
|
end
|
|
69
69
|
|
|
70
|
-
def self.filter_whitelist(tokens)
|
|
70
|
+
def self.filter_whitelist(tokens, whitelist)
|
|
71
71
|
ftokens=tokens.find_all do |hash|
|
|
72
|
-
|
|
73
|
-
true # TODO: Understand the whitelist
|
|
72
|
+
!(whitelist =~ hash.value.downcase)
|
|
74
73
|
end
|
|
75
74
|
return ftokens
|
|
76
75
|
end
|
|
@@ -7,8 +7,6 @@ require_relative '../facades/configuration_page_facade'
|
|
|
7
7
|
require_relative '../facades/configuration_file_facade'
|
|
8
8
|
|
|
9
9
|
class LanguageServer
|
|
10
|
-
ConfigurationVisitor.GenerateIDs
|
|
11
|
-
ConfigurationFileFacade.LoadConfigurations
|
|
12
10
|
|
|
13
11
|
def self.start(port)
|
|
14
12
|
port ||= 5007
|
|
@@ -20,7 +18,7 @@ class LanguageServer
|
|
|
20
18
|
length=Integer(line.scan(/\d/).join(''))
|
|
21
19
|
line=client.read(length+2)
|
|
22
20
|
request = JSON.parse(line)
|
|
23
|
-
|
|
21
|
+
$logger.debug(line)
|
|
24
22
|
|
|
25
23
|
method_name = request['method'].sub('/', '_')
|
|
26
24
|
response = if self.respond_to? "client_"+method_name then self.send("client_"+method_name,request['id'],request['params']) end
|
|
@@ -29,7 +27,7 @@ class LanguageServer
|
|
|
29
27
|
client.flush
|
|
30
28
|
client.print("Content-Length: "+response.length.to_s+"\r\n\r\n")
|
|
31
29
|
client.print(response)
|
|
32
|
-
|
|
30
|
+
$logger.debug(response)
|
|
33
31
|
end
|
|
34
32
|
end
|
|
35
33
|
client.close
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require "rack"
|
|
2
|
-
require
|
|
2
|
+
require 'webrick'
|
|
3
3
|
require 'json'
|
|
4
4
|
require 'uri'
|
|
5
5
|
require_relative '../rule_engine'
|
|
@@ -8,8 +8,6 @@ require_relative '../facades/configuration_page_facade'
|
|
|
8
8
|
require_relative '../facades/configuration_file_facade'
|
|
9
9
|
|
|
10
10
|
class LinterServer
|
|
11
|
-
ConfigurationVisitor.GenerateIDs
|
|
12
|
-
ConfigurationFileFacade.LoadConfigurations
|
|
13
11
|
|
|
14
12
|
def call(env)
|
|
15
13
|
req = Rack::Request.new(env)
|
|
@@ -46,7 +44,8 @@ class LinterServer
|
|
|
46
44
|
end
|
|
47
45
|
|
|
48
46
|
def self.start(port)
|
|
49
|
-
|
|
47
|
+
log = WEBrick::Log.new $stdout,1
|
|
48
|
+
Rack::Handler::WEBrick.run(LinterServer.new, :Port => port,Logger: log )
|
|
50
49
|
end
|
|
51
50
|
|
|
52
51
|
end
|
data/lib/settings.ini
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
[HardCodedCredentialsRule]
|
|
2
|
+
HardCodedCredentialsRule-enable_configuration = true
|
|
3
|
+
HardCodedCredentialsRule-list_of_known_words_not_considered_in_credentials = pe-puppet,pe-webserver,pe-puppetdb,pe-postgres,pe-console-services,pe-orchestration-services,pe-ace-server,pe-bolt-server
|
|
4
|
+
HardCodedCredentialsRule-list_of_invalid_values_in_credentials = undefined,unset,www-data,wwwrun,www,no,yes,[],root
|
|
5
|
+
HardCodedCredentialsRule-regular_expression_of_words_present_in_credentials = (?-mix:user|usr|pass(word|_|$)|pwd|key|secret)
|
|
6
|
+
HardCodedCredentialsRule-regular_expression_of_words_not_present_in_credentials = (?-mix:gpg|path|type|buff|zone|mode|tag|header|scheme|length|guid)
|
|
7
|
+
|
|
8
|
+
[NoHTTPRule]
|
|
9
|
+
NoHTTPRule-enable_configuration = true
|
|
10
|
+
NoHTTPRule-list_of_resources_that_can_use_http = apt::source,::apt::source,wget::fetch,yumrepo,yum::,aptly::mirror,util::system_package,yum::managed_yumrepo
|
|
11
|
+
NoHTTPRule-list_of_keywords_for_urls = backport,key,download,uri,mirror
|
|
12
|
+
NoHTTPRule-regular_expression_of_a_normal_http_address = (?-mix:^http:\/\/.+)
|
|
13
|
+
NoHTTPRule-http_address_whitelist = (?-mix:^(127.0.0.1))
|
|
14
|
+
|
|
15
|
+
[AdminByDefaultRule]
|
|
16
|
+
AdminByDefaultRule-enable_configuration = true
|
|
17
|
+
AdminByDefaultRule-regular_expression_of_words_present_in_credentials = (?-mix:user|usr|pass(word|_|$)|pwd)
|
|
18
|
+
|
|
19
|
+
[EmptyPasswordRule]
|
|
20
|
+
EmptyPasswordRule-enable_configuration = true
|
|
21
|
+
EmptyPasswordRule-list_of_trigger_words = pwd,password,pass
|
|
22
|
+
EmptyPasswordRule-regular_expression_of_password_name = (?-mix:pass(word|_|$)|pwd)
|
|
23
|
+
|
|
24
|
+
[InvalidIPAddrBindingRule]
|
|
25
|
+
InvalidIPAddrBindingRule-enable_configuration = true
|
|
26
|
+
InvalidIPAddrBindingRule-regular_expression_of_an_invalid_ip_address = (?-mix:^((http(s)?:\/\/)?0.0.0.0(:\d{1,5})?)$)
|
|
27
|
+
|
|
28
|
+
[UseWeakCryptoAlgorithmsRule]
|
|
29
|
+
UseWeakCryptoAlgorithmsRule-enable_configuration = true
|
|
30
|
+
UseWeakCryptoAlgorithmsRule-regular_expression_of_weak_crypto_algorithms = (?-mix:^(sha1|md5))
|
|
31
|
+
|
|
32
|
+
[SuspiciousCommentRule]
|
|
33
|
+
SuspiciousCommentRule-enable_configuration = true
|
|
34
|
+
SuspiciousCommentRule-list_of_trigger_words = hack,fixme,later,later2,todo,ticket,launchpad,bug,to-do
|
|
35
|
+
SuspiciousCommentRule-regular_expression_of_keywords_present_in_suspicious_comments = (?-mix:hack|fixme|ticket|bug|secur|debug|defect|weak)
|
|
36
|
+
|
|
37
|
+
[CyrillicHomographAttack]
|
|
38
|
+
CyrillicHomographAttack-enable_configuration = true
|
|
39
|
+
CyrillicHomographAttack-regular_expression_of_links_with_cyrillic_characters = (?-mix:^(http(s)?:\/\/)?.*\p{Cyrillic}+)
|
|
40
|
+
|
data/puppet-sec-lint.gemspec
CHANGED
|
@@ -34,8 +34,10 @@ Gem::Specification.new do |spec|
|
|
|
34
34
|
spec.add_runtime_dependency 'rake', '~> 13.0'
|
|
35
35
|
spec.add_runtime_dependency 'minitest', '~> 5.0'
|
|
36
36
|
spec.add_runtime_dependency 'rack', '~> 2.2.3'
|
|
37
|
+
spec.add_runtime_dependency 'webrick', '~> 1.7.0'
|
|
37
38
|
spec.add_runtime_dependency 'inifile', '~> 3.0.0'
|
|
38
39
|
spec.add_runtime_dependency 'launchy', '~> 2.5.0'
|
|
40
|
+
spec.add_runtime_dependency 'logger', '~> 1.4.3'
|
|
39
41
|
|
|
40
42
|
# For more information and examples about making a new gem, checkout our
|
|
41
43
|
# guide at: https://bundler.io/guides/creating_gem.html
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: puppet-sec-lint
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.5.
|
|
4
|
+
version: 0.5.13
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tiago Ribeiro
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-05-
|
|
11
|
+
date: 2021-05-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: puppet-lint
|
|
@@ -72,6 +72,20 @@ dependencies:
|
|
|
72
72
|
- - "~>"
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
74
|
version: 2.2.3
|
|
75
|
+
- !ruby/object:Gem::Dependency
|
|
76
|
+
name: webrick
|
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - "~>"
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: 1.7.0
|
|
82
|
+
type: :runtime
|
|
83
|
+
prerelease: false
|
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - "~>"
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: 1.7.0
|
|
75
89
|
- !ruby/object:Gem::Dependency
|
|
76
90
|
name: inifile
|
|
77
91
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -100,6 +114,20 @@ dependencies:
|
|
|
100
114
|
- - "~>"
|
|
101
115
|
- !ruby/object:Gem::Version
|
|
102
116
|
version: 2.5.0
|
|
117
|
+
- !ruby/object:Gem::Dependency
|
|
118
|
+
name: logger
|
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
|
120
|
+
requirements:
|
|
121
|
+
- - "~>"
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: 1.4.3
|
|
124
|
+
type: :runtime
|
|
125
|
+
prerelease: false
|
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
127
|
+
requirements:
|
|
128
|
+
- - "~>"
|
|
129
|
+
- !ruby/object:Gem::Version
|
|
130
|
+
version: 1.4.3
|
|
103
131
|
description: This is a more complete security linter for the puppet language
|
|
104
132
|
email:
|
|
105
133
|
- tiago7b27@gmail.com
|
|
@@ -169,6 +197,7 @@ files:
|
|
|
169
197
|
- lib/rules/use_weak_crypto_algorithms_rule.rb
|
|
170
198
|
- lib/servers/language_server.rb
|
|
171
199
|
- lib/servers/linter_server.rb
|
|
200
|
+
- lib/settings.ini
|
|
172
201
|
- lib/sin/sin.rb
|
|
173
202
|
- lib/sin/sin_type.rb
|
|
174
203
|
- lib/visitors/configuration_visitor.rb
|