Create: Source Code Backend
The Create:Source Code 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 Golang 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.