diff options
Diffstat (limited to 'bridge/jira')
-rw-r--r-- | bridge/jira/import.go | 52 |
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] |