Source Code - Gitaly Touch Points


Gitaly is a wrapper around the git binary, running in a Gitaly Cluster. It provides managed access to the file system housing the git repositories, using Go Remote Procedure Calls (RPCs). Other functions are access optimization, caching, and a form of pagination against the file system.

The comprehensive Beginner’s guide to Gitaly contributions is focused on making updates to Gitaly, and offers many insights into how to understand the Gitaly code.

All access to Gitaly from other parts of GitLab are through Create: Source Code endpoints:

The Commit model

After a call is made to Gitaly, Git commit information is stored in memory. This information is wrapped by the Ruby Commit Model, which is a wrapper around Gitlab::Git::Commit.

The Commit model acts like an ActiveRecord object, but it does not have a PostgreSQL backend. Instead, it maps back to Gitaly RPCs.