Create: Source Code backend

The Create: Source Code backend (BE) team focuses on the GitLab suite of Source Code Management (SCM) tools. It is responsible for all backend aspects of the product categories that fall under the Source Code group of the Create stage of the DevOps lifecycle.

We interface with the Gitaly and Code Review teams, and work closely with the Create: Source Code frontend team. The features we work with are listed on the Features by Group Page.

The team works across three codebases: Workhorse, GitLab Shell and GitLab Rails.

Workhorse

GitLab Workhorse is a smart reverse proxy for GitLab. It handles "large" HTTP requests such as file downloads, file uploads, git push, git pull and git archive downloads.

Workhorse itself is not a feature, but there are several features in GitLab that would not work efficiently without Workhorse.

GitLab Shell

GitLab Shell handles Git SSH sessions for GitLab and modifies the list of authorized keys. For more information, refer to the GitLab Shell documentation.

To learn about the reasoning behind our creation of gitlab-sshd, read the blog post Why we implemented our own SSHD solution.

GitLab Rails

Gitaly touch points

Gitaly is a Go RPC service which handles all the git calls made by GitLab. GitLab is not exposed directly, and all traffic comes through Create: Source Code. For more information, read Gitaly touch points.

Source Code REST API Endpoints

Create: Source Code has over 100 REST endpoints, being a mixture of Grape API endpoints and Rails controller endpoints. For a detailed list, refer to Source Code REST Endpoints.

An alternative list of the Source Code endpoints and other owned objects is available.