Use Protobuf to define a schema for the internal API

Problem to solve

The internal api of GitLab is used by Gitaly, and is an HTTP interface where the body of the request is in JSON. This isn't versioned, and there's no schema.

This creates uncertainty of what keys could be in the JSON, which are to be used, and which are deprecated.

Proposal

Use Protobuf, without gRPC, for encoding and decoding these messages. This would create a well defined schema, without much overhead.

/cc @jacobvosmaer-gitlab @nick.thomas @jramsay

Assignee Loading
Time tracking Loading