in Sources/XCMetricsClient/Mobius/Effect Handlers/ExecutePluginsEffectHandler.swift [35:57]
func handle(
_ effectParameters: (request: MetricsUploadRequest, plugins: [XCMetricsPlugin]),
_ callback: EffectCallback<MetricsUploaderEvent>
) -> Disposable {
let request = effectParameters.request
let plugins = effectParameters.plugins
var buildMetadata = BuildMetadata()
for plugin in plugins {
log("Started appending plugin \(plugin.name) to the request: \(request.request.build.identifier).")
let dictionary = plugin.body(environmentContext)
for (key, value) in dictionary {
buildMetadata.metadata[key] = value
}
}
var newRequest = request.request
newRequest.buildMetadata = buildMetadata
let updatedRequest = MetricsUploadRequest(fileURL: request.fileURL, request: newRequest)
callback.end(with: .pluginsExecuted(currentRequest: updatedRequest))
return AnonymousDisposable {}
}