Module: RailVerdict::Intelligence::Redactor
- Defined in:
- lib/rail_verdict/intelligence/redactor.rb
Defined Under Namespace
Classes: Result
Class Method Summary collapse
Class Method Details
.redact(manifest, trust: "redacted") ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/rail_verdict/intelligence/redactor.rb', line 8 def self.redact(manifest, trust: "redacted") snippets = manifest.snippets || [] redacted = 0 secret_detected = false filtered = [] snippets.each do |snippet| path = snippet["path"] || snippet[:path] content = snippet["content"] || snippet[:content] || "" if SecretDetector.filename_secret?(path) redacted += 1 secret_detected = true next end if SecretDetector.content_secret?(content) secret_detected = true if trust == "full" return Result.new(manifest: nil, redacted_count: redacted, secret_detected: true) else redacted += 1 content = "[REDACTED: probable secret detected]" end end filtered << snippet.merge("content" => content) end new_manifest = Manifest.new( finding_id: manifest.finding_id, fingerprint: manifest.fingerprint, finding: manifest.finding, snippets: filtered, rails_facts: manifest.rails_facts, git_slice: manifest.git_slice, comparison_slice: manifest.comparison_slice, policy_reason: manifest.policy_reason ) Result.new(manifest: new_manifest, redacted_count: redacted, secret_detected: secret_detected) end |