bazelbuild / bazel-buildfarm

Bazel remote caching and execution service
https://bazel.build
Apache License 2.0
635 stars 199 forks source link

Implement Fetch 'Push' Service #1767

Open werkt opened 3 weeks ago

werkt commented 3 weeks ago

Provide an implementation of the Asset API 'Push' service: https://github.com/bazelbuild/remote-apis/blob/main/build/bazel/remote/asset/v1/remote_asset.proto#L356

The implementation should be a peer of https://github.com/bazelbuild/bazel-buildfarm/blob/main/src/main/java/build/buildfarm/server/services/FetchService.java, be named PeerService, and will need to have an Instance method added that performs a write on behalf of the stream into the QUALIFIER_CHECKSUM_SRI identified digest. IIUC, the blob will already have been uploaded, and only the association from the canonical_id should be made. If no canonical_id is presented, the associated urls should be the keys.