From ca0148816a68e3cb657ae83e55b57610a39a35d6 Mon Sep 17 00:00:00 2001 From: Karan Saraswat Date: Thu, 16 May 2024 06:30:35 +0000 Subject: [PATCH] feat: [CODE-1908]: Worked on ADO import functionality review comments (#2044) --- app/services/importer/provider.go | 16 ++++++++-------- go.mod | 2 +- go.sum | 2 ++ web/src/utils/GitUtils.ts | 4 +++- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/app/services/importer/provider.go b/app/services/importer/provider.go index e0abd02e6..84cb4926a 100644 --- a/app/services/importer/provider.go +++ b/app/services/importer/provider.go @@ -222,7 +222,7 @@ func getScmClientWithTransport(provider Provider, slug string, authReq bool) (*s case ProviderTypeAzure: org, project, err := extractOrgAndProjectFromSlug(slug) if err != nil { - return nil, err + return nil, fmt.Errorf("invalid slug format: %w", err) } if provider.Host != "" { c, err = azure.New(provider.Host, org, project) @@ -272,7 +272,7 @@ func LoadRepositoryFromProvider( if provider.Type == ProviderTypeAzure { repoSlug, err = extractRepoFromSlug(repoSlug) if err != nil { - return RepositoryInfo{}, provider, err + return RepositoryInfo{}, provider, usererror.BadRequestf("invalid slug format: %s", err) } } scmRepo, scmResp, err := scmClient.Repositories.Find(ctx, repoSlug) @@ -357,8 +357,7 @@ func LoadRepositoriesFromProviderSpace( for _, scmRepo := range scmRepos { // in some cases the namespace filter isn't working (e.g. Gitlab) - // in some cases the namespace doesn't get generated (e.g. Azure) - if provider.Type != ProviderTypeAzure && !strings.EqualFold(scmRepo.Namespace, spaceSlug) { + if !strings.EqualFold(scmRepo.Namespace, spaceSlug) { continue } @@ -388,9 +387,10 @@ func LoadRepositoriesFromProviderSpace( func extractOrgAndProjectFromSlug(slug string) (string, string, error) { res := strings.Split(slug, "/") if len(res) < 2 { - return "", "", usererror.BadRequest("invalid slug format: organization or project info missing") - } else if len(res) > 3 { - return "", "", usererror.BadRequest("invalid slug format: too many parts") + return "", "", fmt.Errorf("organization or project info missing") + } + if len(res) > 3 { + return "", "", fmt.Errorf("too many parts") } return res[0], res[1], nil } @@ -400,7 +400,7 @@ func extractRepoFromSlug(slug string) (string, error) { if len(res) == 3 { return res[2], nil } - return "", usererror.BadRequest("invalid slug format: repo name missing") + return "", fmt.Errorf("repo name missing") } func convertSCMError(provider Provider, slug string, r *scm.Response, err error) error { diff --git a/go.mod b/go.mod index 4c6a0605c..8becdd055 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/drone/funcmap v0.0.0-20190918184546-d4ef6e88376d github.com/drone/go-convert v0.0.0-20230919093251-7104c3bcc635 github.com/drone/go-generate v0.0.0-20230920014042-6085ee5c9522 - github.com/drone/go-scm v1.36.0 + github.com/drone/go-scm v1.37.1 github.com/drone/runner-go v1.12.0 github.com/drone/spec v0.0.0-20230919004456-7455b8913ff5 github.com/fatih/color v1.16.0 diff --git a/go.sum b/go.sum index 2d5d49300..7610b8a59 100644 --- a/go.sum +++ b/go.sum @@ -198,6 +198,8 @@ github.com/drone/go-scm v1.31.2 h1:6hZxf0aETV17830fMCPrgcA4y8j/8Gdfy0xEdInUeqQ= github.com/drone/go-scm v1.31.2/go.mod h1:DFIJJjhMj0TSXPz+0ni4nyZ9gtTtC40Vh/TGRugtyWw= github.com/drone/go-scm v1.36.0 h1:5d9lJVoXGJvLqG2CFwLcZvMMiZPNxCrmHbxRVzu19qM= github.com/drone/go-scm v1.36.0/go.mod h1:DFIJJjhMj0TSXPz+0ni4nyZ9gtTtC40Vh/TGRugtyWw= +github.com/drone/go-scm v1.37.1 h1:U42+3JRFvmBJXZnKqphF377h2mT9Pe+Oin/lDD1fnJ8= +github.com/drone/go-scm v1.37.1/go.mod h1:DFIJJjhMj0TSXPz+0ni4nyZ9gtTtC40Vh/TGRugtyWw= github.com/drone/runner-go v1.12.0 h1:zUjDj9ylsJ4n4Mvy4znddq/Z4EBzcUXzTltpzokKtgs= github.com/drone/runner-go v1.12.0/go.mod h1:vu4pPPYDoeN6vdYQAY01GGGsAIW4aLganJNaa8Fx8zE= github.com/drone/signal v1.0.0/go.mod h1:S8t92eFT0g4WUgEc/LxG+LCuiskpMNsG0ajAMGnyZpc= diff --git a/web/src/utils/GitUtils.ts b/web/src/utils/GitUtils.ts index e4030b606..a7d9a796a 100644 --- a/web/src/utils/GitUtils.ts +++ b/web/src/utils/GitUtils.ts @@ -185,7 +185,7 @@ export enum GitProviders { BITBUCKET_SERVER = 'Bitbucket Server', GITEA = 'Gitea', GOGS = 'Gogs', - AZURE = 'Azure' + AZURE = 'Azure DevOps' } export enum ConvertPipelineLabel { @@ -405,6 +405,8 @@ export const getProviderTypeMapping = (provider: GitProviders): string => { return 'github' case GitProviders.GITLAB_SELF_HOSTED: return 'gitlab' + case GitProviders.AZURE: + return 'azure' default: return provider.toLowerCase() }