aboutsummaryrefslogtreecommitdiffstats
path: root/bridge/github
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2019-12-26 21:42:47 +0100
committerGitHub <noreply@github.com>2019-12-26 21:42:47 +0100
commit3a3a4ffacd288627f84b367e9a735c3b1451c78b (patch)
tree94ee4e247291de89abd842cd77a39dfb3919fe55 /bridge/github
parente96d8e6771086e20639a16abf6af30f2faa006a0 (diff)
parent864d3ed33597211f22177fce6ecb7e741db795b5 (diff)
downloadgit-bug-3a3a4ffacd288627f84b367e9a735c3b1451c78b.tar.gz
Merge pull request #278 from MichaelMure/bridge-conf-workflow
bridge: allow to configure and pull without having set a user first
Diffstat (limited to 'bridge/github')
-rw-r--r--bridge/github/config.go17
-rw-r--r--bridge/github/import.go4
-rw-r--r--bridge/github/import_test.go3
3 files changed, 19 insertions, 5 deletions
diff --git a/bridge/github/config.go b/bridge/github/config.go
index bc26a2fc..ea4b622f 100644
--- a/bridge/github/config.go
+++ b/bridge/github/config.go
@@ -25,6 +25,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"
"github.com/MichaelMure/git-bug/util/interrupt"
@@ -89,10 +90,16 @@ func (g *Github) 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 {
@@ -101,13 +108,13 @@ func (g *Github) 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(), owner, project)
+ cred, err = promptTokenOptions(repo, userId, owner, project)
if err != nil {
return nil, err
}
@@ -326,7 +333,7 @@ func promptToken() (string, error) {
return token, nil
}
- fmt.Println("token is invalid")
+ fmt.Println("token has incorrect format")
}
}
diff --git a/bridge/github/import.go b/bridge/github/import.go
index 092e3e71..dfc851fd 100644
--- a/bridge/github/import.go
+++ b/bridge/github/import.go
@@ -12,6 +12,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"
)
@@ -47,6 +48,9 @@ func (gi *githubImporter) 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/github/import_test.go b/bridge/github/import_test.go
index 304229a0..57bab61e 100644
--- a/bridge/github/import_test.go
+++ b/bridge/github/import_test.go
@@ -143,6 +143,9 @@ func Test_Importer(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)