proto/analysis.proto (53 lines of code) (raw):

syntax = "proto3"; package gitaly; import "lint.proto"; import "shared.proto"; option go_package = "gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb"; // AnalysisService is a gRPC service providing RPCs that analyze objects in a repository. service AnalysisService { // CheckBlobsGenerated checks a provided set of blobs in a specified repository to determine // whether the file is considered generated. This RPC supports bidirectional streaming because the // client may specify any number of files to check across multiple request messages and the server // responds to each request with a separate set of response messages. // // Each provided blob in the request is validated when received. Improperly formatted requests // result in RPC termination and an error being returned to the client. The RPC also aborts and // returns an error if requests are made that list Git revisions which do not resolve to a blob // and/or cannot be found in the repository. rpc CheckBlobsGenerated(stream CheckBlobsGeneratedRequest) returns (stream CheckBlobsGeneratedResponse) { option (op_type) = { op: ACCESSOR }; } } // CheckBlobsGeneratedRequest is a request for the CheckBlobsGenerated RPC. The client may send // multiple requests through the stream to check multiple sets of files. The first request must have // the repository field set. Every request, including the first, must contain a blob set with at // least a single entry. message CheckBlobsGeneratedRequest { // Blob defines the required information to determine if a blob is generated. message Blob { // revision is a Git revision that resolves to a blob. bytes revision = 1; // path is the file path of the blob and is used to gain insight as to whether the blob is // generated. bytes path = 2; } // repository is the repository that generated files are being checked for. Repository repository = 1 [(target_repository)=true]; // blobs is a set of blobs that the generated file check is being performed on. repeated Blob blobs = 2; } // CheckBlobsGeneratedResponse is a response for the CheckBlobsGenerated RPC. If the client sends // multiple requests, the server responds with a separate response message for each request. message CheckBlobsGeneratedResponse { // Blob defines the status of the generated blob check for a revision. message Blob { // revision is the Git revision of the checked blob provided in the request. bytes revision = 1; // generated is the result of the file generation check for a particular blob. bool generated = 2; } // blobs is a set of blobs that the generated file check has been performed on. repeated Blob blobs = 1; }