2022-05-07 20:08:51 +05:30
---
stage: Create
group: Source Code
2022-11-25 23:54:43 +05:30
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
2022-05-07 20:08:51 +05:30
---
# 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 ](https://about.gitlab.com/handbook/product/categories/#source-code-group )
of the [Create stage ](https://about.gitlab.com/handbook/product/categories/#create-stage )
of the [DevOps lifecycle ](https://about.gitlab.com/handbook/product/categories/#devops-stages ).
We interface with the Gitaly and Code Review teams, and work closely with the
2022-08-27 11:52:29 +05:30
[Create:Source Code Frontend team ](https://about.gitlab.com/handbook/engineering/development/dev/create/create-source-code-fe/ ). The features
2022-05-07 20:08:51 +05:30
we work with are listed on the
[Features by Group Page ](https://about.gitlab.com/handbook/product/categories/features/#createsource-code-group ).
The team works across three codebases: Workhorse, GitLab Shell and GitLab Rails.
## Workhorse
2022-06-21 17:19:12 +05:30
[GitLab Workhorse ](../../workhorse/index.md ) is a smart reverse proxy for GitLab. It handles "large" HTTP
2022-05-07 20:08:51 +05:30
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.
2023-03-17 16:20:25 +05:30
For more information, refer to the [GitLab Shell documentation ](../../gitlab_shell/index.md ).
2022-05-07 20:08:51 +05:30
2022-10-11 01:57:18 +05:30
To learn about the reasoning behind our creation of `gitlab-sshd` , read the blog post
[Why we implemented our own SSHD solution ](https://about.gitlab.com/blog/2022/08/17/why-we-have-implemented-our-own-sshd-solution-on-gitlab-sass/ ).
2022-05-07 20:08:51 +05:30
## GitLab Rails
2022-07-16 23:28:13 +05:30
### Gitaly touch points
2022-05-07 20:08:51 +05:30
2022-07-16 23:28:13 +05:30
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 ](gitaly_touch_points.md ).
### 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 ](rest_endpoints.md ).
2023-03-17 16:20:25 +05:30
An alternative list of the [Source Code endpoints and other owned objects ](https://gitlab-com.gitlab.io/gl-infra/platform/stage-groups-index/source-code.html ) is available.