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
b5f1ad49
Commit
b5f1ad49
authored
9 years ago
by
jackgr
Browse files
Options
Download
Patches
Plain Diff
Handle storage object urls in Locator
parent
49795ad9
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
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
pkg/chart/locator.go
+42
-6
pkg/chart/locator.go
pkg/chart/locator_test.go
+14
-0
pkg/chart/locator_test.go
with
56 additions
and
6 deletions
+56
-6
pkg/chart/locator.go
+
42
−
6
View file @
b5f1ad49
...
...
@@ -34,6 +34,8 @@ var ErrRemote = errors.New("cannot use remote Locator as local")
const
(
SchemeHTTP
=
"http"
SchemeHTTPS
=
"https"
SchemeGS
=
"gs"
SchemeS3
=
"s3"
SchemeHelm
=
"helm"
SchemeFile
=
"file"
)
...
...
@@ -85,6 +87,7 @@ func Parse(path string) (*Locator, error) {
if
len
(
parts
)
<
3
{
return
nil
,
fmt
.
Errorf
(
"both bucket and chart name are required in %s: %s"
,
path
,
u
.
Path
)
}
// Need to parse opaque data into bucket and chart.
return
&
Locator
{
Scheme
:
u
.
Scheme
,
...
...
@@ -115,6 +118,26 @@ func Parse(path string) (*Locator, error) {
Version
:
version
,
original
:
path
,
},
nil
case
SchemeGS
,
SchemeS3
:
// Long name
parts
:=
strings
.
SplitN
(
u
.
Path
,
"/"
,
2
)
if
len
(
parts
)
<
2
{
return
nil
,
fmt
.
Errorf
(
"chart name is required in %s"
,
path
)
}
name
,
version
,
err
:=
parseTarName
(
parts
[
1
])
if
err
!=
nil
{
return
nil
,
err
}
return
&
Locator
{
Scheme
:
u
.
Scheme
,
Host
:
u
.
Scheme
,
Bucket
:
u
.
Host
,
Name
:
name
,
Version
:
version
,
original
:
path
,
},
nil
case
SchemeFile
:
return
&
Locator
{
LocalRef
:
u
.
Path
,
...
...
@@ -153,6 +176,7 @@ func (u *Locator) Short() (string, error) {
if
u
.
IsLocal
()
{
return
""
,
ErrLocal
}
fname
:=
fmt
.
Sprintf
(
"%s/%s/%s"
,
u
.
Host
,
u
.
Bucket
,
u
.
Name
)
return
(
&
url
.
URL
{
Scheme
:
SchemeHelm
,
...
...
@@ -171,18 +195,30 @@ func (u *Locator) Long(secure bool) (string, error) {
return
""
,
ErrLocal
}
scheme
:=
SchemeHTTPS
if
!
secure
{
scheme
=
SchemeHTTP
scheme
:=
u
.
Scheme
host
:=
u
.
Host
switch
scheme
{
case
SchemeGS
,
SchemeS3
:
host
=
""
case
SchemeHTTP
,
SchemeHTTPS
,
SchemeHelm
:
switch
host
{
case
SchemeGS
,
SchemeS3
:
scheme
=
host
host
=
""
default
:
scheme
=
SchemeHTTPS
if
!
secure
{
scheme
=
SchemeHTTP
}
}
}
fname
:=
fmt
.
Sprintf
(
"%s/%s-%s.tgz"
,
u
.
Bucket
,
u
.
Name
,
u
.
Version
)
fname
:=
fmt
.
Sprintf
(
"%s/%s-%s.tgz"
,
u
.
Bucket
,
u
.
Name
,
u
.
Version
)
return
(
&
url
.
URL
{
Scheme
:
scheme
,
Host
:
u
.
H
ost
,
Host
:
h
ost
,
Path
:
fname
,
})
.
String
(),
nil
}
// parseTarName parses a long-form tarfile name.
...
...
This diff is collapsed.
Click to expand it.
pkg/chart/locator_test.go
+
14
−
0
View file @
b5f1ad49
...
...
@@ -64,8 +64,12 @@ func TestShort(t *testing.T) {
tests
:=
map
[
string
]
string
{
"https://example.com/foo/bar-1.2.3.tgz"
:
"helm:example.com/foo/bar#1.2.3"
,
"http://example.com/foo/bar-1.2.3.tgz"
:
"helm:example.com/foo/bar#1.2.3"
,
"gs://foo/bar-1.2.3.tgz"
:
"helm:gs/foo/bar#1.2.3"
,
"s3://foo/bar-1.2.3.tgz"
:
"helm:s3/foo/bar#1.2.3"
,
"helm:example.com/foo/bar#1.2.3"
:
"helm:example.com/foo/bar#1.2.3"
,
"helm:example.com/foo/bar#>1.2.3"
:
"helm:example.com/foo/bar#%3E1.2.3"
,
"helm:gs/foo/bar#1.2.3"
:
"helm:gs/foo/bar#1.2.3"
,
"helm:s3/foo/bar#>1.2.3"
:
"helm:s3/foo/bar#%3E1.2.3"
,
}
for
start
,
expect
:=
range
tests
{
...
...
@@ -74,6 +78,9 @@ func TestShort(t *testing.T) {
t
.
Errorf
(
"Failed to parse: %s"
,
err
)
continue
}
t
.
Logf
(
"Parsed reference %s into locator %#v"
,
start
,
u
)
short
,
err
:=
u
.
Short
()
if
err
!=
nil
{
t
.
Errorf
(
"Failed to generate short: %s"
,
err
)
...
...
@@ -103,8 +110,12 @@ func TestLong(t *testing.T) {
tests
:=
map
[
string
]
string
{
"https://example.com/foo/bar-1.2.3.tgz"
:
"https://example.com/foo/bar-1.2.3.tgz"
,
"http://example.com/foo/bar-1.2.3.tgz"
:
"https://example.com/foo/bar-1.2.3.tgz"
,
"gs://foo/bar-1.2.3.tgz"
:
"gs://foo/bar-1.2.3.tgz"
,
"s3://foo/bar-1.2.3.tgz"
:
"s3://foo/bar-1.2.3.tgz"
,
"helm:example.com/foo/bar#1.2.3"
:
"https://example.com/foo/bar-1.2.3.tgz"
,
"helm:example.com/foo/bar#>1.2.3"
:
"https://example.com/foo/bar-%3E1.2.3.tgz"
,
"helm:gs/foo/bar#1.2.3"
:
"gs://foo/bar-1.2.3.tgz"
,
"helm:s3/foo/bar#>1.2.3"
:
"s3://foo/bar-%3E1.2.3.tgz"
,
}
for
start
,
expect
:=
range
tests
{
...
...
@@ -114,6 +125,9 @@ func TestLong(t *testing.T) {
t
.
Errorf
(
"Failed to parse: %s"
,
err
)
continue
}
t
.
Logf
(
"Parsed reference %s into locator %#v"
,
start
,
u
)
long
,
err
:=
u
.
Long
(
true
)
if
err
!=
nil
{
t
.
Errorf
(
"Failed to generate long: %s"
,
err
)
...
...
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