1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-07-28 16:02:01 +03:00

Add Token credential request handling

Asking for 2FA Token prompt when an additional authentication is configured for git over SSH
This commit is contained in:
Aleksei Larkov
2024-06-09 22:13:07 +03:00
committed by Jesse Duffield
parent 13bd4b964f
commit 8813587961
4 changed files with 14 additions and 0 deletions

View File

@ -284,6 +284,7 @@ const (
Username
Passphrase
PIN
Token
)
// Whenever we're asked for a password we just enter a newline, which will
@ -376,6 +377,7 @@ func (self *cmdObjRunner) getCheckForCredentialRequestFunc() func([]byte) (Crede
`Username\s*for\s*'.+':`: Username,
`Enter\s*passphrase\s*for\s*key\s*'.+':`: Passphrase,
`Enter\s*PIN\s*for\s*.+\s*key\s*.+:`: PIN,
`.*2FA Token.*`: Token,
}
compiledPrompts := map[*regexp.Regexp]CredentialType{}

View File

@ -39,6 +39,8 @@ func TestProcessOutput(t *testing.T) {
return "passphrase"
case PIN:
return "pin"
case Token:
return "token"
default:
panic("unexpected credential type")
}
@ -92,6 +94,12 @@ func TestProcessOutput(t *testing.T) {
output: "Enter PIN for key '123':",
expectedToWrite: "pin",
},
{
name: "2FA token prompt",
promptUserForCredential: defaultPromptUserForCredential,
output: "testuser 2FA Token (citadel)",
expectedToWrite: "token",
},
{
name: "username and password prompt",
promptUserForCredential: defaultPromptUserForCredential,

View File

@ -56,6 +56,8 @@ func (self *CredentialsHelper) getTitleAndMask(passOrUname oscommands.Credential
return self.c.Tr.CredentialsPassphrase, true
case oscommands.PIN:
return self.c.Tr.CredentialsPIN, true
case oscommands.Token:
return self.c.Tr.CredentialsToken, true
}
// should never land here

View File

@ -36,6 +36,7 @@ type TranslationSet struct {
CredentialsPassword string
CredentialsPassphrase string
CredentialsPIN string
CredentialsToken string
PassUnameWrong string
Commit string
CommitTooltip string
@ -1004,6 +1005,7 @@ func EnglishTranslationSet() *TranslationSet {
CredentialsPassword: "Password",
CredentialsPassphrase: "Enter passphrase for SSH key",
CredentialsPIN: "Enter PIN for SSH key",
CredentialsToken: "Enter Token for SSH key",
PassUnameWrong: "Password, passphrase and/or username wrong",
Commit: "Commit",
CommitTooltip: "Commit staged changes.",