doc/development/backend/create_source_code_be/_index.md
The Source Code Management team 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.
The Source Code Management team interfaces with the Gitaly and Code Review teams and works across three codebases: Workhorse, GitLab Shell and GitLab Rails.
Features owned by the Source Code Management group are listed on the Features by Group Page.
Source Code Management shares ownership of Code Owners with the Code Review group.
Details about Protected Branches models can be found in the Code Owners technical reference page.
Gitaly provides high-level RPC access to Git repositories. It is present in every GitLab installation and coordinates Git repository storage and retrieval. Gitaly implements a client-server architecture with Gitaly as the server and Gitaly clients, also known as Gitaly consumers, including:
Gitaly Rails provides API endpoints that are counterparts of Gitaly RPCs. For more information, read Gitaly touch points.
The :source_code_management annotation indicates which code belongs to the Source Code Management
group in the Rails codebase. The annotated objects are presented the Source Code owned objects page, along
with the Error Budgets dashboards.
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 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.