File tree Expand file tree Collapse file tree 2 files changed +10
-3
lines changed Expand file tree Collapse file tree 2 files changed +10
-3
lines changed Original file line number Diff line number Diff line change @@ -19,20 +19,24 @@ import FoundationNetworking
1919import HTTPTypes
2020import Basics
2121
22- enum RegistryClientError : Error {
22+ public enum RegistryClientError : Error {
2323 case registryParseError( String )
2424 case invalidRegistryPath( String )
2525 case invalidUploadLocation( String )
2626 case invalidDigestAlgorithm( String )
27+ case digestMismatch( expected: String , registry: String )
2728}
2829
2930extension RegistryClientError : CustomStringConvertible {
30- var description : String {
31+ /// Human-readable description of a RegistryClientError
32+ public var description : String {
3133 switch self {
3234 case let . registryParseError( reference) : return " Unable to parse registry: \( reference) "
3335 case let . invalidRegistryPath( path) : return " Unable to construct URL for registry path: \( path) "
3436 case let . invalidUploadLocation( location) : return " Received invalid upload location from registry: \( location) "
3537 case let . invalidDigestAlgorithm( digest) : return " Invalid or unsupported digest algorithm: \( digest) "
38+ case let . digestMismatch( expected, registry) :
39+ return " Digest mismatch: expected \( expected) , registry sent \( registry) "
3640 }
3741 }
3842}
Original file line number Diff line number Diff line change @@ -39,6 +39,9 @@ extension RegistryClient {
3939 log( " Layer \( digest) : pushing " )
4040 let uploaded = try await destClient. putBlob ( repository: destRepository, data: blob)
4141 log( " Layer \( digest) : done " )
42- assert( " \( digest) " == uploaded. digest)
42+
43+ guard " \( digest) " == uploaded. digest else {
44+ throw RegistryClientError . digestMismatch ( expected: " \( digest) " , registry: uploaded. digest)
45+ }
4346 }
4447}
You can’t perform that action at this time.
0 commit comments