Skip to content

gitlabhq/gitlab-shell

Repository files navigation

stage group info
Create
Source Code
To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments

pipeline status coverage report Code Climate

GitLab Shell

GitLab Shell handles Git SSH sessions for GitLab and modifies the list of authorized keys. GitLab Shell is not a Unix shell nor a replacement for Bash or Zsh.

GitLab supports Git LFS authentication through SSH.

Development Documentation

Development documentation for GitLab Shell has moved into the gitlab repository.

Project structure

Directory Description
cmd/ 'Commands' that will ultimately be compiled into binaries.
internal/ Internal Go source code that is not intended to be used outside of the project/module.
client/ HTTP and GitLab client logic that is used internally and by other modules, e.g. Gitaly.
bin/ Compiled binaries are created here.
support/ Scripts and tools that assist in development and/or testing.
spec/ Ruby based integration tests.

Building

Run make or make build.

Testing

Run make test.

Release Process

  1. Create a gitlab-org/gitlab-shell MR to update VERSION and CHANGELOG files, e.g. Release v14.39.0.
  2. Once gitlab-org/gitlab-shell MR is merged, create the corresponding git tag, e.g. https://gitlab.com/gitlab-org/gitlab-shell/-/tags/v14.39.0.
  3. Create a gitlab-org/gitlab MR to update GITLAB_SHELL_VERSION to the proposed tag, e.g. Bump GitLab Shell to 14.39.0.
  4. Announce in #gitlab-shell a new version has been created.

Licensing

See the LICENSE file for licensing information as it pertains to files in this repository.