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
}