aboutsummaryrefslogtreecommitdiffstats
path: root/bridge/gitlab/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'bridge/gitlab/config.go')
-rw-r--r--bridge/gitlab/config.go17
1 files changed, 12 insertions, 5 deletions
diff --git a/bridge/gitlab/config.go b/bridge/gitlab/config.go
index ce066766..1f542d39 100644
--- a/bridge/gitlab/config.go
+++ b/bridge/gitlab/config.go
@@ -19,6 +19,7 @@ import (
"github.com/MichaelMure/git-bug/bridge/core/auth"
"github.com/MichaelMure/git-bug/cache"
"github.com/MichaelMure/git-bug/entity"
+ "github.com/MichaelMure/git-bug/identity"
"github.com/MichaelMure/git-bug/repository"
"github.com/MichaelMure/git-bug/util/colors"
)
@@ -73,10 +74,16 @@ func (g *Gitlab) Configure(repo *cache.RepoCache, params core.BridgeParams) (cor
}
user, err := repo.GetUserIdentity()
- if err != nil {
+ if err != nil && err != identity.ErrNoIdentitySet {
return nil, err
}
+ // default to a "to be filled" user Id if we don't have a valid one yet
+ userId := auth.DefaultUserId
+ if user != nil {
+ userId = user.Id()
+ }
+
var cred auth.Credential
switch {
@@ -85,13 +92,13 @@ func (g *Gitlab) Configure(repo *cache.RepoCache, params core.BridgeParams) (cor
if err != nil {
return nil, err
}
- if cred.UserId() != user.Id() {
+ if user != nil && cred.UserId() != user.Id() {
return nil, fmt.Errorf("selected credential don't match the user")
}
case params.TokenRaw != "":
- cred = auth.NewToken(user.Id(), params.TokenRaw, target)
+ cred = auth.NewToken(userId, params.TokenRaw, target)
default:
- cred, err = promptTokenOptions(repo, user.Id())
+ cred, err = promptTokenOptions(repo, userId)
if err != nil {
return nil, err
}
@@ -289,7 +296,7 @@ func promptToken() (string, error) {
return token, nil
}
- fmt.Println("token format is invalid")
+ fmt.Println("token has incorrect format")
}
}