Class: Gem::Guardian::ProvenanceVerifier

Inherits:
Object
  • Object
show all
Defined in:
lib/gem/guardian/provenance_verifier.rb

Overview

Verifies RubyGems Trusted Publishing provenance metadata.

Instance Method Summary collapse

Constructor Details

#initialize(client: RubygemsClient.new) ⇒ ProvenanceVerifier

Returns a new instance of ProvenanceVerifier.



18
19
20
# File 'lib/gem/guardian/provenance_verifier.rb', line 18

def initialize(client: RubygemsClient.new)
  @client = client
end

Instance Method Details

#verify(dependency, artifact_sha256: nil) ⇒ Object

Verifies Trusted Publishing provenance for +dependency+.



23
24
25
26
27
28
29
30
# File 'lib/gem/guardian/provenance_verifier.rb', line 23

def verify(dependency, artifact_sha256: nil)
  provenance = @client.trusted_publishing_provenance(dependency)
  return unsupported_result(dependency) unless provenance

  build_result(dependency, provenance, artifact_sha256)
rescue StandardError => e
  error_result(dependency, artifact_sha256, e)
end

#verify_all(results) ⇒ Object

Verifies provenance for each dependency-result pair.



33
34
35
# File 'lib/gem/guardian/provenance_verifier.rb', line 33

def verify_all(results)
  results.map { |result| verify(result.dependency, artifact_sha256: result.actual_sha256) }
end