Module: CredentialRedactor

Defined in:
lib/spm_version_updates/credential_redactor.rb

Overview

Redacts credentials embedded in URL userinfo before logging or emitting data.

Class Method Summary collapse

Class Method Details

.redact(value) ⇒ Object



6
7
8
# File 'lib/spm_version_updates/credential_redactor.rb', line 6

def redact(value)
  value&.to_s&.gsub(%r{([a-z][a-z0-9+\-.]*://)([^/\s@]+)@}i, '\1[REDACTED]@')
end

.redact_hash_value(hash, key) ⇒ Object



10
11
12
13
14
# File 'lib/spm_version_updates/credential_redactor.rb', line 10

def redact_hash_value(hash, key)
  hash.dup.tap { |copy|
    copy[key] = redact(copy[key]) if copy.key?(key)
  }
end