func handle()

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 {}
    }