aboutsummaryrefslogtreecommitdiffstats
path: root/bridge/jira/import.go
diff options
context:
space:
mode:
authorAlexander Scharinger <rng.dynamics@gmail.com>2021-04-08 22:48:31 +0200
committerAlexander Scharinger <rng.dynamics@gmail.com>2021-04-08 22:48:31 +0200
commit3d14e2e67c4985c429471ea6643f013ade2c2692 (patch)
treedb4938de27b1240220630d6723e321a060866542 /bridge/jira/import.go
parentb2e98ef07f3083db303099fbcedbd98a33ad1164 (diff)
downloadgit-bug-3d14e2e67c4985c429471ea6643f013ade2c2692.tar.gz
Bridges: move credential loading and client creation
Gitlab and Jira bridge: move credential loading and client creation from `Init` to `ImportAll` in order to harmonize the behaviour of the different bridges.
Diffstat (limited to 'bridge/jira/import.go')
-rw-r--r--bridge/jira/import.go52
1 files changed, 27 insertions, 25 deletions
diff --git a/bridge/jira/import.go b/bridge/jira/import.go
index b66b0fa3..54c4ca35 100644
--- a/bridge/jira/import.go
+++ b/bridge/jira/import.go
@@ -34,6 +34,12 @@ type jiraImporter struct {
// Init .
func (ji *jiraImporter) Init(ctx context.Context, repo *cache.RepoCache, conf core.Configuration) error {
ji.conf = conf
+ return nil
+}
+
+// ImportAll iterate over all the configured repository issues and ensure the
+// creation of the missing issues / timeline items / edits / label events ...
+func (ji *jiraImporter) ImportAll(ctx context.Context, repo *cache.RepoCache, since time.Time) (<-chan core.ImportResult, error) {
var cred auth.Credential
@@ -41,44 +47,40 @@ func (ji *jiraImporter) Init(ctx context.Context, repo *cache.RepoCache, conf co
creds, err := auth.List(repo,
auth.WithTarget(target),
auth.WithKind(auth.KindLoginPassword),
- auth.WithMeta(auth.MetaKeyBaseURL, conf[confKeyBaseUrl]),
- auth.WithMeta(auth.MetaKeyLogin, conf[confKeyDefaultLogin]),
- )
- if err != nil {
- return err
- }
- if len(creds) > 0 {
- cred = creds[0]
- goto end
- }
-
- creds, err = auth.List(repo,
- auth.WithTarget(target),
- auth.WithKind(auth.KindLogin),
- auth.WithMeta(auth.MetaKeyBaseURL, conf[confKeyBaseUrl]),
- auth.WithMeta(auth.MetaKeyLogin, conf[confKeyDefaultLogin]),
+ auth.WithMeta(auth.MetaKeyBaseURL, ji.conf[confKeyBaseUrl]),
+ auth.WithMeta(auth.MetaKeyLogin, ji.conf[confKeyDefaultLogin]),
)
if err != nil {
- return err
+ return nil, err
}
if len(creds) > 0 {
cred = creds[0]
+ } else {
+ creds, err = auth.List(repo,
+ auth.WithTarget(target),
+ auth.WithKind(auth.KindLogin),
+ auth.WithMeta(auth.MetaKeyBaseURL, ji.conf[confKeyBaseUrl]),
+ auth.WithMeta(auth.MetaKeyLogin, ji.conf[confKeyDefaultLogin]),
+ )
+ if err != nil {
+ return nil, err
+ }
+ if len(creds) > 0 {
+ cred = creds[0]
+ }
}
-end:
if cred == nil {
- return fmt.Errorf("no credential for this bridge")
+ return nil, fmt.Errorf("no credential for this bridge")
}
// TODO(josh)[da52062]: Validate token and if it is expired then prompt for
// credentials and generate a new one
- ji.client, err = buildClient(ctx, conf[confKeyBaseUrl], conf[confKeyCredentialType], cred)
- return err
-}
+ ji.client, err = buildClient(ctx, ji.conf[confKeyBaseUrl], ji.conf[confKeyCredentialType], cred)
+ if err != nil {
+ return nil, err
+ }
-// ImportAll iterate over all the configured repository issues and ensure the
-// creation of the missing issues / timeline items / edits / label events ...
-func (ji *jiraImporter) ImportAll(ctx context.Context, repo *cache.RepoCache, since time.Time) (<-chan core.ImportResult, error) {
sinceStr := since.Format("2006-01-02 15:04")
project := ji.conf[confKeyProject]