syntax = "proto3";

package gitaly;

option go_package = "gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb";

// PackfileNegotiationStatistics represents the git packfile negotiation.
message PackfileNegotiationStatistics {
  // payload_size is the total size of all pktlines' payload in bytes. This excludes the pktline prefix.
  int64 payload_size = 1;
  // packets is the total number of packets.
  int64 packets = 2;
  // caps is the capabilities announced by the client.
  repeated string caps = 3;
  // wants is the number of objects the client announced it wants.
  int64 wants = 4;
  // haves is the number of objects the client announced it has.
  int64 haves = 5;
  // shallows is the number of shallow boundaries announced by the client.
  int64 shallows = 6;
  // deepen is one of "deepen <depth>", "deepen-since <timestamp>", "deepen-not <ref>".
  // [deepen <depth>|deepen-since <timestamp>|deepen-not <ref>]
  string deepen = 7;
  // filter is specified by the client.
  string filter = 8;
}
