func Build()

in cmd/gitlab-shell/command/command.go [110:139]


func Build(args *commandargs.Shell, config *config.Config, readWriter *readwriter.ReadWriter) command.Command {
	switch args.CommandType {
	case commandargs.Discover:
		return &discover.Command{Config: config, Args: args, ReadWriter: readWriter}
	case commandargs.TwoFactorRecover:
		return &twofactorrecover.Command{Config: config, Args: args, ReadWriter: readWriter}
	case commandargs.TwoFactorVerify:
		return &twofactorverify.Command{Config: config, Args: args, ReadWriter: readWriter}
	case commandargs.LfsAuthenticate:
		metrics.LfsHTTPConnectionsTotal.Inc()
		return &lfsauthenticate.Command{Config: config, Args: args, ReadWriter: readWriter}
	case commandargs.LfsTransfer:
		if config.LFSConfig.PureSSHProtocol {
			metrics.LfsSSHConnectionsTotal.Inc()
			return &lfstransfer.Command{Config: config, Args: args, ReadWriter: readWriter}
		}
	case commandargs.ReceivePack:
		return &receivepack.Command{Config: config, Args: args, ReadWriter: readWriter}
	case commandargs.UploadPack:
		return &uploadpack.Command{Config: config, Args: args, ReadWriter: readWriter}
	case commandargs.UploadArchive:
		return &uploadarchive.Command{Config: config, Args: args, ReadWriter: readWriter}
	case commandargs.PersonalAccessToken:
		if config.PATConfig.Enabled {
			return &personalaccesstoken.Command{Config: config, Args: args, ReadWriter: readWriter}
		}
	}

	return nil
}