Skip to content

Commit

Permalink
make sure repo name is not empty
Browse files Browse the repository at this point in the history
  • Loading branch information
danielm-codefresh committed Feb 20, 2023
1 parent c969559 commit c5acda2
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 2 deletions.
3 changes: 2 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ require (
code.gitea.io/sdk/gitea v0.15.1
github.com/argoproj/argo-cd/v2 v2.5.9
github.com/argoproj/gitops-engine v0.7.1-0.20221004132320-98ccd3d43fd9
github.com/beaconsoftwarellc/gadget v1.3.8
github.com/briandowns/spinner v1.18.1
github.com/ghodss/yaml v1.0.0
github.com/go-git/go-billy/v5 v5.3.1
Expand Down Expand Up @@ -96,7 +97,7 @@ require (
github.com/go-openapi/validate v0.19.8 // indirect
github.com/go-redis/cache/v8 v8.4.2 // indirect
github.com/go-redis/redis/v8 v8.11.3 // indirect
github.com/go-stack/stack v1.8.0 // indirect
github.com/go-stack/stack v1.8.1 // indirect
github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.4.0 // indirect
github.com/gobwas/glob v0.2.3 // indirect
github.com/gogits/go-gogs-client v0.0.0-20190616193657-5a05380e4bc2 // indirect
Expand Down
5 changes: 4 additions & 1 deletion go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,8 @@ github.com/aws/aws-sdk-go v1.33.16/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZve
github.com/aws/aws-sdk-go v1.35.24/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k=
github.com/aws/aws-sdk-go v1.38.49/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
github.com/beaconsoftwarellc/gadget v1.3.8 h1:B9E4VyUeZhg6WwDhEkDOF07dQ9ds1J7oke/0o2kwbBo=
github.com/beaconsoftwarellc/gadget v1.3.8/go.mod h1:VjsazzjXTA2Aibxhh9b4oouC4/Qk0MQHyq89gO13/6s=
github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg=
github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
Expand Down Expand Up @@ -473,8 +475,9 @@ github.com/go-redis/redis/v8 v8.11.3 h1:GCjoYp8c+yQTJfc0n69iwSiHjvuAdruxl7elnZCx
github.com/go-redis/redis/v8 v8.11.3/go.mod h1:xNJ9xDG09FsIPwh3bWdk+0oDWHbtF9rPN0F/oD9XeKc=
github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw=
github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4=
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.4.0 h1:Mr3JcvBjQEhCN9wld6OHKHuHxWaoXTaQfYKmj7QwP18=
github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.4.0/go.mod h1:A2S0CWkNylc2phvKXWBBdD3K0iGnDBGbzRpISP2zBl8=
Expand Down
6 changes: 6 additions & 0 deletions pkg/git/repository.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
"github.com/argoproj-labs/argocd-autopilot/pkg/log"
"github.com/argoproj-labs/argocd-autopilot/pkg/store"
"github.com/argoproj-labs/argocd-autopilot/pkg/util"
"github.com/beaconsoftwarellc/gadget/stringutil"

billy "github.com/go-git/go-billy/v5"
gg "github.com/go-git/go-git/v5"
Expand Down Expand Up @@ -505,6 +506,11 @@ var createRepo = func(ctx context.Context, opts *CloneOptions) (defaultBranch st
}

_, orgRepo, _, _, _, _, _ := util.ParseGitUrl(opts.Repo)
// It depends on the provider, but org repo strucure should at least contain org and repo name
if len(stringutil.CleanWhiteSpace(strings.Split(orgRepo, "/"))) < 2 {
return "", errors.New("repo name can't be empty")
}

return provider.CreateRepository(ctx, orgRepo)
}

Expand Down
11 changes: 11 additions & 0 deletions pkg/git/repository_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1340,6 +1340,17 @@ func Test_createRepo(t *testing.T) {
},
want: "main",
},
"Should fail if repo name is empty": {
opts: &CloneOptions{
Repo: "https://github.com/owner/",
Provider: "github",
Auth: Auth{
Username: "username",
Password: "password",
},
},
wantErr: "repo name can't be empty",
},
}

orgGetProvider := getProvider
Expand Down

0 comments on commit c5acda2

Please sign in to comment.