Class: Gitlab::SecretDetection::Core::Ruleset
- Inherits:
-
Object
- Object
- Gitlab::SecretDetection::Core::Ruleset
- Defined in:
- lib/gitlab/secret_detection/core/ruleset.rb
Constant Summary collapse
- RulesetParseError =
RulesetParseError is thrown when the code fails to parse the ruleset file from the given path
Class.new(StandardError)
- RulesetCompilationError =
RulesetCompilationError is thrown when the code fails to compile the predefined rulesets
Class.new(StandardError)
- RULESET_FILE_PATH =
file path where the secrets ruleset file is located
File.('secret_push_protection_rules.toml', __dir__)
Instance Method Summary collapse
- #extract_ruleset_version ⇒ Object
-
#initialize(path: RULESET_FILE_PATH, logger: Logger.new($stdout)) ⇒ Ruleset
constructor
A new instance of Ruleset.
- #rules(force_fetch: false) ⇒ Object
Constructor Details
#initialize(path: RULESET_FILE_PATH, logger: Logger.new($stdout)) ⇒ Ruleset
Returns a new instance of Ruleset.
21 22 23 24 |
# File 'lib/gitlab/secret_detection/core/ruleset.rb', line 21 def initialize(path: RULESET_FILE_PATH, logger: Logger.new($stdout)) @path = path @logger = logger end |
Instance Method Details
#extract_ruleset_version ⇒ Object
32 33 34 35 36 37 38 39 |
# File 'lib/gitlab/secret_detection/core/ruleset.rb', line 32 def extract_ruleset_version @ruleset_version ||= if File.readable?(RULESET_FILE_PATH) first_line = File.open(RULESET_FILE_PATH, &:gets) first_line&.split(":")&.[](1)&.strip end rescue StandardError => e logger.error(message: "Failed to extract Secret Detection Ruleset version from ruleset file: #{e.}") end |
#rules(force_fetch: false) ⇒ Object
26 27 28 29 30 |
# File 'lib/gitlab/secret_detection/core/ruleset.rb', line 26 def rules(force_fetch: false) return @rule_data unless @rule_data.nil? || force_fetch @rule_data = parse_ruleset end |