Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
1105 Внедрение механизмов обеспечения безопасности цепочки поставки программных проектов
Legacy
scanned-projects
helm
Commits
abd1a5c1
Commit
abd1a5c1
authored
9 years ago
by
Michelle Noorali
Browse files
Options
Download
Plain Diff
Merge pull request #489 from michelleN/valid-repo
feat(repo): validate repo url
parents
fab58c7a
d732e838
main
Release
add-codeql
dependabot/go_modules/github.com/docker/distribution-2.8.2incompatible
dependabot/go_modules/github.com/lib/pq-1.10.9
dependabot/go_modules/github.com/rubenv/sql-migrate-1.4.0
dependabot/go_modules/golang.org/x/crypto-0.9.0
dependabot/go_modules/golang.org/x/term-0.8.0
dependabot/go_modules/k8s.io/klog/v2-2.100.1
dev-v2
feat-v3/event-emitter-lua
kube-update-test
release-2.0
release-2.1
release-2.10
release-2.11
release-2.12
release-2.13
release-2.14
release-2.15
release-2.16
release-2.17
release-2.2
release-2.3
release-2.4
release-2.5
release-2.6
release-2.7
release-2.8
release-2.9
release-3.0
release-3.1
release-3.10
release-3.11
release-3.12
release-3.2
release-3.3
release-3.4
release-3.5
release-3.6
release-3.6.1
release-3.6.2
release-3.7
release-3.8
release-3.9
release-v3.0.0-beta.4
1.999.0
v3.12.0
v3.12.0-rc.1
v3.12.0-dev.1
v3.11.3
v3.11.2
v3.11.1
v3.11.0
v3.11.0-rc.2
v3.11.0-rc.1
v3.10.3
v3.10.2
v3.10.1
v3.10.0
v3.10.0-rc.1
v3.9.4
v3.9.3
v3.9.2
v3.9.1
v3.9.0
v3.9.0-rc.1
v3.8.2
v3.8.1
v3.8.0
v3.8.0-rc.2
v3.8.0-rc.1
v3.7.2
v3.7.1
v3.7.0
v3.7.0-rc.3
v3.7.0-rc.2
v3.7.0-rc.1
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.6.0-rc.1
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.5.0-rc.2
v3.5.0-rc.1
v3.4.2
v3.4.1
v3.4.0
v3.4.0-rc.1
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.3.0-rc.2
v3.3.0-rc.1
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.2.0-rc.1
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.1.0-rc.3
v3.1.0-rc.2
v3.1.0-rc.1
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v3.0.0-rc.4
v3.0.0-rc.3
v3.0.0-rc.2
v3.0.0-rc.1
v3.0.0-beta.5
v3.0.0-beta.4
v3.0.0-beta.3
v3.0.0-beta.2
v3.0.0-beta.1
v3.0.0-alpha.2
v3.0.0-alpha.1
v2.17.0
v2.17.0-rc.1
v2.16.12
v2.16.11
v2.16.10
v2.16.9
v2.16.8
v2.16.7
v2.16.6
v2.16.5
v2.16.4
v2.16.3
v2.16.2
v2.16.1
v2.16.0
v2.16.0-rc.2
v2.16.0-rc.1
v2.15.2
v2.15.1
v2.15.0
v2.15.0-rc.2
v2.15.0-rc.1
v2.14.3
v2.14.2
v2.14.1
v2.14.0
v2.14.0-rc.2
v2.14.0-rc.1
v2.13.1
v2.13.1-rc.1
v2.13.0
v2.13.0-rc.2
v2.13.0-rc.1
v2.12.3
v2.12.2
v2.12.1
v2.12.0
v2.12.0-rc.2
v2.12.0-rc.1
v2.11.0
v2.11.0-rc.4
v2.11.0-rc.3
v2.11.0-rc.2
v2.11.0-rc.1
v2.10.0
v2.10.0-rc.3
v2.10.0-rc.2
v2.10.0-rc.1
v2.9.1
v2.9.0
v2.9.0-rc5
v2.9.0-rc4
v2.9.0-rc3
v2.9.0-rc2
v2.9.0-rc1
v2.8.2
v2.8.2-rc1
v2.8.1
v2.8.0
v2.8.0-rc.1
v2.7.2
v2.7.1
v2.7.0
v2.7.0-rc1
v2.6.2
v2.6.1
v2.6.0
v2.5.1
v2.5.0
v2.4.2
v2.4.1
v2.4.0
v2.3.1
v2.3.0
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.2
v2.0.1
v2.0.0
v2.0.0-rc.2
v2.0.0-rc.1
v2.0.0-beta.2
v2.0.0-beta.1
v2.0.0-alpha.5
v2.0.0-alpha.4
v2.0.0-alpha.3
v2.0.0-alpha.2
v2.0.0-alpha.1
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
cmd/helm/repository.go
+14
-5
cmd/helm/repository.go
pkg/repo/inmem_repo_service.go
+6
-0
pkg/repo/inmem_repo_service.go
pkg/repo/inmem_repo_service_test.go
+14
-1
pkg/repo/inmem_repo_service_test.go
with
34 additions
and
6 deletions
+34
-6
cmd/helm/repository.go
+
14
−
5
View file @
abd1a5c1
...
@@ -43,6 +43,14 @@ const repoDesc = `Helm repositories store Helm charts.
...
@@ -43,6 +43,14 @@ const repoDesc = `Helm repositories store Helm charts.
For more details, use 'helm repo CMD -h'.
For more details, use 'helm repo CMD -h'.
`
`
const
addRepoDesc
=
`The add repository command is used to add a name a repository url to your
chart repository list. The repository url must begin with a valid protocoal. At the moment,
we only support google cloud storage for chart repositories.
A valid command might look like:
$ helm repo add charts gs://kubernetes-charts
`
func
repoCommands
()
cli
.
Command
{
func
repoCommands
()
cli
.
Command
{
return
cli
.
Command
{
return
cli
.
Command
{
Name
:
"repository"
,
Name
:
"repository"
,
...
@@ -51,10 +59,11 @@ func repoCommands() cli.Command {
...
@@ -51,10 +59,11 @@ func repoCommands() cli.Command {
Description
:
repoDesc
,
Description
:
repoDesc
,
Subcommands
:
[]
cli
.
Command
{
Subcommands
:
[]
cli
.
Command
{
{
{
Name
:
"add"
,
Name
:
"add"
,
Usage
:
"Add a chart repository to the remote manager."
,
Usage
:
"Add a chart repository to the remote manager."
,
ArgsUsage
:
"[NAME] [REPOSITORY_URL]"
,
Description
:
addRepoDesc
,
Action
:
func
(
c
*
cli
.
Context
)
{
run
(
c
,
addRepo
)
},
ArgsUsage
:
"[NAME] [REPOSITORY_URL]"
,
Action
:
func
(
c
*
cli
.
Context
)
{
run
(
c
,
addRepo
)
},
},
},
{
{
Name
:
"list"
,
Name
:
"list"
,
...
@@ -66,7 +75,7 @@ func repoCommands() cli.Command {
...
@@ -66,7 +75,7 @@ func repoCommands() cli.Command {
Name
:
"remove"
,
Name
:
"remove"
,
Aliases
:
[]
string
{
"rm"
},
Aliases
:
[]
string
{
"rm"
},
Usage
:
"Remove a chart repository from the remote manager."
,
Usage
:
"Remove a chart repository from the remote manager."
,
ArgsUsage
:
"REPOSITORY_
URL
"
,
ArgsUsage
:
"REPOSITORY_
NAME
"
,
Action
:
func
(
c
*
cli
.
Context
)
{
run
(
c
,
removeRepo
)
},
Action
:
func
(
c
*
cli
.
Context
)
{
run
(
c
,
removeRepo
)
},
},
},
},
},
...
...
This diff is collapsed.
Click to expand it.
pkg/repo/inmem_repo_service.go
+
6
−
0
View file @
abd1a5c1
...
@@ -17,6 +17,7 @@ limitations under the License.
...
@@ -17,6 +17,7 @@ limitations under the License.
package
repo
package
repo
import
(
import
(
"errors"
"fmt"
"fmt"
"strings"
"strings"
"sync"
"sync"
...
@@ -62,6 +63,11 @@ func (rs *inmemRepoService) CreateRepo(repository IRepo) error {
...
@@ -62,6 +63,11 @@ func (rs *inmemRepoService) CreateRepo(repository IRepo) error {
URL
:=
repository
.
GetURL
()
URL
:=
repository
.
GetURL
()
name
:=
repository
.
GetName
()
name
:=
repository
.
GetName
()
valid
:=
GCSRepoURLMatcher
.
MatchString
(
URL
)
if
!
valid
{
return
errors
.
New
(
URL
+
" is an invalid Repo URL"
)
}
for
u
,
r
:=
range
rs
.
repositories
{
for
u
,
r
:=
range
rs
.
repositories
{
if
u
==
URL
{
if
u
==
URL
{
return
fmt
.
Errorf
(
"Repository with URL %s already exists"
,
URL
)
return
fmt
.
Errorf
(
"Repository with URL %s already exists"
,
URL
)
...
...
This diff is collapsed.
Click to expand it.
pkg/repo/inmem_repo_service_test.go
+
14
−
1
View file @
abd1a5c1
...
@@ -85,6 +85,19 @@ func TestCreateRepoWithDuplicateURL(t *testing.T) {
...
@@ -85,6 +85,19 @@ func TestCreateRepoWithDuplicateURL(t *testing.T) {
}
}
}
}
func
TestCreateRepoWithInvalidURL
(
t
*
testing
.
T
)
{
rs
:=
NewInmemRepoService
()
invalidURL
:=
"fake://sfds"
r
,
err
:=
newRepo
(
invalidURL
,
""
,
TestName
,
GCSRepoFormat
,
GCSRepoType
)
if
err
!=
nil
{
t
.
Fatalf
(
"cannot create test repo: %v"
,
err
)
}
if
err
=
rs
.
CreateRepo
(
r
);
err
==
nil
{
t
.
Fatalf
(
"created repo with invalid URL: %s"
,
invalidURL
)
}
}
func
TestGetRepoWithInvalidURL
(
t
*
testing
.
T
)
{
func
TestGetRepoWithInvalidURL
(
t
*
testing
.
T
)
{
invalidURL
:=
"https://not.a.valid/url"
invalidURL
:=
"https://not.a.valid/url"
rs
:=
NewInmemRepoService
()
rs
:=
NewInmemRepoService
()
...
@@ -96,7 +109,7 @@ func TestGetRepoWithInvalidURL(t *testing.T) {
...
@@ -96,7 +109,7 @@ func TestGetRepoWithInvalidURL(t *testing.T) {
func
TestGetRepoURLByName
(
t
*
testing
.
T
)
{
func
TestGetRepoURLByName
(
t
*
testing
.
T
)
{
rs
:=
NewInmemRepoService
()
rs
:=
NewInmemRepoService
()
testURL
:=
"g
c
s://helm-test-charts"
testURL
:=
"gs://helm-test-charts"
r
,
err
:=
newRepo
(
testURL
,
""
,
TestName
,
GCSRepoFormat
,
GCSRepoType
)
r
,
err
:=
newRepo
(
testURL
,
""
,
TestName
,
GCSRepoFormat
,
GCSRepoType
)
err
=
rs
.
CreateRepo
(
r
)
err
=
rs
.
CreateRepo
(
r
)
if
err
!=
nil
{
if
err
!=
nil
{
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets