gitlab-shell

module
v14.40.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 2, 2025 License: MIT

README


stage: Create group: Source Code info: 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.

Directories

Path Synopsis
Package client provides a client for interacting with GitLab API
Package client provides a client for interacting with GitLab API
cmd
gitlab-shell-authorized-keys-check
Package main is the entry point for the gitlab-shell-authorized-keys-check command
Package main is the entry point for the gitlab-shell-authorized-keys-check command
gitlab-shell-authorized-keys-check/command
Package command provides functionality for handling gitlab-shell authorized keys commands
Package command provides functionality for handling gitlab-shell authorized keys commands
gitlab-shell-authorized-principals-check
Package main is the entry point for the GitLab Shell authorized principals check command.
Package main is the entry point for the GitLab Shell authorized principals check command.
gitlab-shell-authorized-principals-check/command
Package command handles command creation and initialization in GitLab Shell.
Package command handles command creation and initialization in GitLab Shell.
gitlab-shell-check
Package main is the entry point for the GitLab Shell health check command.
Package main is the entry point for the GitLab Shell health check command.
gitlab-shell-check/command
Package command provides functionality for executing commands
Package command provides functionality for executing commands
gitlab-shell/command
Package command provides functionality for handling GitLab Shell commands
Package command provides functionality for handling GitLab Shell commands
gitlab-sshd
Package main implements the GitLab SSH daemon.
Package main implements the GitLab SSH daemon.
internal
command/authorizedkeys
Package authorizedkeys handles fetching and printing authorized SSH keys.
Package authorizedkeys handles fetching and printing authorized SSH keys.
command/authorizedprincipals
Package authorizedprincipals handles printing authorized principals in GitLab Shell.
Package authorizedprincipals handles printing authorized principals in GitLab Shell.
command/commandargs
Package commandargs defines structures and methods for handling command-line arguments related to authorized key checks in the GitLab shell.
Package commandargs defines structures and methods for handling command-line arguments related to authorized key checks in the GitLab shell.
command/discover
Package discover implements the "discover" command for fetching user info and displaying a welcome message.
Package discover implements the "discover" command for fetching user info and displaying a welcome message.
command/gitauditevent
Package gitauditevent handles Git audit events for GitLab.
Package gitauditevent handles Git audit events for GitLab.
command/githttp
Package githttp provides functionality to handle Git operations over HTTP(S) and SSH, including executing Git commands like git-upload-pack and converting responses to the expected format for SSH protocols.
Package githttp provides functionality to handle Git operations over HTTP(S) and SSH, including executing Git commands like git-upload-pack and converting responses to the expected format for SSH protocols.
command/healthcheck
Package healthcheck provides functionality to perform health checks.
Package healthcheck provides functionality to perform health checks.
command/lfsauthenticate
Package lfsauthenticate provides functionality for authenticating Git LFS requests
Package lfsauthenticate provides functionality for authenticating Git LFS requests
command/lfstransfer
Package lfstransfer wraps https://github.com/charmbracelet/git-lfs-transfer logic
Package lfstransfer wraps https://github.com/charmbracelet/git-lfs-transfer logic
command/personalaccesstoken
Package personalaccesstoken handles operations related to personal access tokens, including parsing arguments, requesting tokens, and formatting responses.
Package personalaccesstoken handles operations related to personal access tokens, including parsing arguments, requesting tokens, and formatting responses.
command/receivepack
Package receivepack provides functionality for handling Git receive-pack commands
Package receivepack provides functionality for handling Git receive-pack commands
command/shared/accessverifier
Package accessverifier handles the verification of access permission.
Package accessverifier handles the verification of access permission.
command/shared/customaction
Package customaction provides functionality for handling custom actions
Package customaction provides functionality for handling custom actions
command/shared/disallowedcommand
Package disallowedcommand provides an error for handling disallowed commands.
Package disallowedcommand provides an error for handling disallowed commands.
command/twofactorrecover
Package twofactorrecover defines logic for 2FA codes recovery
Package twofactorrecover defines logic for 2FA codes recovery
command/twofactorverify
Package twofactorverify provides functionality for two-factor verification
Package twofactorverify provides functionality for two-factor verification
command/uploadarchive
Package uploadarchive provides functionality for uploading archives
Package uploadarchive provides functionality for uploading archives
command/uploadpack
Package uploadpack provides functionality for handling upload-pack command
Package uploadpack provides functionality for handling upload-pack command
console
Package console provides functions for displaying console messages.
Package console provides functions for displaying console messages.
executable
Package executable provides utilities for managing and locating executables related to GitLab Shell.
Package executable provides utilities for managing and locating executables related to GitLab Shell.
gitaly
Package gitaly provides a client for interacting with Gitaly services over gRPC.
Package gitaly provides a client for interacting with Gitaly services over gRPC.
gitlabnet/accessverifier
Package accessverifier provides functionality for verifying access to GitLab resources
Package accessverifier provides functionality for verifying access to GitLab resources
gitlabnet/authorizedcerts
Package authorizedcerts implements functions for authorizing users with ssh certificates
Package authorizedcerts implements functions for authorizing users with ssh certificates
gitlabnet/authorizedkeys
Package authorizedkeys provides functionality for interacting with authorized keys.
Package authorizedkeys provides functionality for interacting with authorized keys.
gitlabnet/discover
Package discover provides functionality for discovering GitLab users
Package discover provides functionality for discovering GitLab users
gitlabnet/git
Package git provides functionality for interacting with Git repositories.
Package git provides functionality for interacting with Git repositories.
gitlabnet/gitauditevent
Package gitauditevent handles Git audit events for GitLab.
Package gitauditevent handles Git audit events for GitLab.
gitlabnet/healthcheck
Package healthcheck implements a HTTP client to request healthcheck endpoint
Package healthcheck implements a HTTP client to request healthcheck endpoint
gitlabnet/lfsauthenticate
Package lfsauthenticate provides functionality for authenticating Large File Storage (LFS) requests
Package lfsauthenticate provides functionality for authenticating Large File Storage (LFS) requests
gitlabnet/lfstransfer
Package lfstransfer provides functionality for handling LFS (Large File Storage) transfers.
Package lfstransfer provides functionality for handling LFS (Large File Storage) transfers.
gitlabnet/personalaccesstoken
Package personalaccesstoken provides functionality for managing personal access tokens
Package personalaccesstoken provides functionality for managing personal access tokens
gitlabnet/twofactorrecover
Package twofactorrecover provides functionality for interacting with GitLab Two-Factor Authentication recovery codes
Package twofactorrecover provides functionality for interacting with GitLab Two-Factor Authentication recovery codes
gitlabnet/twofactorverify
Package twofactorverify provides functionality for verifying two-factor authentication in GitLab.
Package twofactorverify provides functionality for verifying two-factor authentication in GitLab.
handler
Package handler provides functionality for executing Gitaly commands
Package handler provides functionality for executing Gitaly commands
keyline
Package keyline provides functionality for managing SSH key lines
Package keyline provides functionality for managing SSH key lines
logger
Package logger provides logging configuration utilities for the gitlab-shell
Package logger provides logging configuration utilities for the gitlab-shell
metrics
Package metrics provides Prometheus metrics for monitoring gitlab-shell components.
Package metrics provides Prometheus metrics for monitoring gitlab-shell components.
pktline
Package pktline provides utility functions for working with the Git pkt-line format.
Package pktline provides utility functions for working with the Git pkt-line format.
sshd
Package sshd provides functionality for SSH daemon connections.
Package sshd provides functionality for SSH daemon connections.
sshenv
Package sshenv provides functionality for handling SSH environment variables
Package sshenv provides functionality for handling SSH environment variables
testhelper
Package testhelper consists of various helper functions to setup the test environment.
Package testhelper consists of various helper functions to setup the test environment.
testhelper/requesthandlers
Package requesthandlers provides functions for building test request handlers.
Package requesthandlers provides functions for building test request handlers.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL