in Sources/PackageRegistryCompatibilityTestSuite/TestConfigurationGenerator.swift [248:266]
func repositoryURL(package: PackageDescriptor) throws -> String? {
if package.repositoryURL != nil { return package.repositoryURL }
guard let metadataKey = configuration.repositoryURLMetadataKey else { return nil }
for release in package.releases {
guard let metadataPath = release.metadataPath else { continue }
guard let metadata = try JSONSerialization.jsonObject(with: Data(contentsOf: metadataPath.asURL), options: []) as? [String: Any] else {
throw TestError("Metadata file at \(metadataPath) contains invalid JSON")
}
if let repositoryURL = metadata[metadataKey] as? String {
return repositoryURL
}
}
return nil
}