Class: Platforms::GitLab

Inherits:
Object
  • Object
show all
Includes:
SharedPatterns
Defined in:
lib/platforms/gitlab.rb

Constant Summary

Constants included from SharedPatterns

SharedPatterns::PASSWORD_PATTERN, SharedPatterns::SAFE_VALUE_PATTERN, SharedPatterns::SECRET_PATTERNS

Instance Method Summary collapse

Methods included from SharedPatterns

#find_all_lines, #find_line, #line_content, #scan_for_hardcoded_secrets, #scan_for_missing_timeout

Constructor Details

#initialize(content, filename: ".gitlab-ci.yml") ⇒ GitLab

Returns a new instance of GitLab.



8
9
10
11
12
13
14
15
16
# File 'lib/platforms/gitlab.rb', line 8

def initialize(content, filename: ".gitlab-ci.yml")
    @content = content
    @filename = filename
    @data = YAML.safe_load(content, permitted_classes: [Symbol]) || {}
    @lines = content.lines
rescue YAML::SyntaxError
    @data = {}
    @lines = []
end

Instance Method Details

#scanObject



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/platforms/gitlab.rb', line 18

def scan
    findings = []
    findings.concat(check_secrets_in_variables)
    findings.concat(check_unprotected_branches)
    findings.concat(check_allow_failure_security)
    findings.concat(check_privileged_docker)
    findings.concat(check_script_injection)
    findings.concat(check_include_remote)
    findings.concat(check_missing_timeout)
    findings.sort
end