diff options
Diffstat (limited to 'bridge/gitlab')
-rw-r--r-- | bridge/gitlab/config.go | 17 | ||||
-rw-r--r-- | bridge/gitlab/import.go | 4 | ||||
-rw-r--r-- | bridge/gitlab/import_test.go | 3 |
3 files changed, 19 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") } } diff --git a/bridge/gitlab/import.go b/bridge/gitlab/import.go index 4fa37505..fa6bbfb6 100644 --- a/bridge/gitlab/import.go +++ b/bridge/gitlab/import.go @@ -13,6 +13,7 @@ import ( "github.com/MichaelMure/git-bug/bug" "github.com/MichaelMure/git-bug/cache" "github.com/MichaelMure/git-bug/entity" + "github.com/MichaelMure/git-bug/identity" "github.com/MichaelMure/git-bug/util/text" ) @@ -42,6 +43,9 @@ func (gi *gitlabImporter) Init(repo *cache.RepoCache, conf core.Configuration) e if err == nil { opts = append(opts, auth.WithUserId(user.Id())) } + if err == identity.ErrNoIdentitySet { + opts = append(opts, auth.WithUserId(auth.DefaultUserId)) + } creds, err := auth.List(repo, opts...) if err != nil { diff --git a/bridge/gitlab/import_test.go b/bridge/gitlab/import_test.go index 6e378b07..1e2f5d50 100644 --- a/bridge/gitlab/import_test.go +++ b/bridge/gitlab/import_test.go @@ -97,6 +97,9 @@ func TestImport(t *testing.T) { err = author.Commit(repo) require.NoError(t, err) + err = identity.SetUserIdentity(repo, author) + require.NoError(t, err) + token := auth.NewToken(author.Id(), envToken, target) err = auth.Store(repo, token) require.NoError(t, err) |