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
088c2bd2
Commit
088c2bd2
authored
8 years ago
by
Ferran Rodenas
Browse files
Options
Download
Patches
Plain Diff
Linter validations for Chart icon property
parent
fd950629
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
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
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
No related merge requests found
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
pkg/lint/lint_test.go
+9
-4
pkg/lint/lint_test.go
pkg/lint/rules/chartfile.go
+16
-0
pkg/lint/rules/chartfile.go
pkg/lint/rules/chartfile_test.go
+33
-1
pkg/lint/rules/chartfile_test.go
pkg/lint/rules/testdata/albatross/Chart.yaml
+1
-0
pkg/lint/rules/testdata/albatross/Chart.yaml
pkg/lint/rules/testdata/badvaluesfile/Chart.yaml
+1
-0
pkg/lint/rules/testdata/badvaluesfile/Chart.yaml
pkg/lint/rules/testdata/goodone/Chart.yaml
+1
-0
pkg/lint/rules/testdata/goodone/Chart.yaml
with
61 additions
and
5 deletions
+61
-5
pkg/lint/lint_test.go
+
9
−
4
View file @
088c2bd2
...
@@ -31,13 +31,18 @@ const goodChartDir = "rules/testdata/goodone"
...
@@ -31,13 +31,18 @@ const goodChartDir = "rules/testdata/goodone"
func
TestBadChart
(
t
*
testing
.
T
)
{
func
TestBadChart
(
t
*
testing
.
T
)
{
m
:=
All
(
badChartDir
)
.
Messages
m
:=
All
(
badChartDir
)
.
Messages
if
len
(
m
)
!=
4
{
if
len
(
m
)
!=
5
{
t
.
Errorf
(
"Number of errors %v"
,
len
(
m
))
t
.
Errorf
(
"Number of errors %v"
,
len
(
m
))
t
.
Errorf
(
"All didn't fail with expected errors, got %#v"
,
m
)
t
.
Errorf
(
"All didn't fail with expected errors, got %#v"
,
m
)
}
}
// There should be 2 WARNINGs and one ERROR messages, check for them
// There should be
one INFO,
2 WARNINGs and one ERROR messages, check for them
var
w
,
e
,
e2
,
e3
bool
var
i
,
w
,
e
,
e2
,
e3
bool
for
_
,
msg
:=
range
m
{
for
_
,
msg
:=
range
m
{
if
msg
.
Severity
==
support
.
InfoSev
{
if
strings
.
Contains
(
msg
.
Err
.
Error
(),
"icon is recommended"
)
{
i
=
true
}
}
if
msg
.
Severity
==
support
.
WarningSev
{
if
msg
.
Severity
==
support
.
WarningSev
{
if
strings
.
Contains
(
msg
.
Err
.
Error
(),
"directory not found"
)
{
if
strings
.
Contains
(
msg
.
Err
.
Error
(),
"directory not found"
)
{
w
=
true
w
=
true
...
@@ -55,7 +60,7 @@ func TestBadChart(t *testing.T) {
...
@@ -55,7 +60,7 @@ func TestBadChart(t *testing.T) {
}
}
}
}
}
}
if
!
e
||
!
e2
||
!
e3
||
!
w
{
if
!
e
||
!
e2
||
!
e3
||
!
w
||
!
i
{
t
.
Errorf
(
"Didn't find all the expected errors, got %#v"
,
m
)
t
.
Errorf
(
"Didn't find all the expected errors, got %#v"
,
m
)
}
}
}
}
...
...
This diff is collapsed.
Click to expand it.
pkg/lint/rules/chartfile.go
+
16
−
0
View file @
088c2bd2
...
@@ -54,6 +54,8 @@ func Chartfile(linter *support.Linter) {
...
@@ -54,6 +54,8 @@ func Chartfile(linter *support.Linter) {
linter
.
RunLinterRule
(
support
.
ErrorSev
,
chartFileName
,
validateChartEngine
(
chartFile
))
linter
.
RunLinterRule
(
support
.
ErrorSev
,
chartFileName
,
validateChartEngine
(
chartFile
))
linter
.
RunLinterRule
(
support
.
ErrorSev
,
chartFileName
,
validateChartMaintainer
(
chartFile
))
linter
.
RunLinterRule
(
support
.
ErrorSev
,
chartFileName
,
validateChartMaintainer
(
chartFile
))
linter
.
RunLinterRule
(
support
.
ErrorSev
,
chartFileName
,
validateChartSources
(
chartFile
))
linter
.
RunLinterRule
(
support
.
ErrorSev
,
chartFileName
,
validateChartSources
(
chartFile
))
linter
.
RunLinterRule
(
support
.
InfoSev
,
chartFileName
,
validateChartIconPresence
(
chartFile
))
linter
.
RunLinterRule
(
support
.
ErrorSev
,
chartFileName
,
validateChartIconURL
(
chartFile
))
}
}
func
validateChartYamlNotDirectory
(
chartPath
string
)
error
{
func
validateChartYamlNotDirectory
(
chartPath
string
)
error
{
...
@@ -152,3 +154,17 @@ func validateChartSources(cf *chart.Metadata) error {
...
@@ -152,3 +154,17 @@ func validateChartSources(cf *chart.Metadata) error {
}
}
return
nil
return
nil
}
}
func
validateChartIconPresence
(
cf
*
chart
.
Metadata
)
error
{
if
cf
.
Icon
==
""
{
return
errors
.
New
(
"icon is recommended"
)
}
return
nil
}
func
validateChartIconURL
(
cf
*
chart
.
Metadata
)
error
{
if
cf
.
Icon
!=
""
&&
!
govalidator
.
IsRequestURL
(
cf
.
Icon
)
{
return
fmt
.
Errorf
(
"invalid icon URL '%s'"
,
cf
.
Icon
)
}
return
nil
}
This diff is collapsed.
Click to expand it.
pkg/lint/rules/chartfile_test.go
+
33
−
1
View file @
088c2bd2
...
@@ -194,12 +194,39 @@ func TestValidateChartSources(t *testing.T) {
...
@@ -194,12 +194,39 @@ func TestValidateChartSources(t *testing.T) {
}
}
}
}
func
TestValidateChartIconPresence
(
t
*
testing
.
T
)
{
err
:=
validateChartIconPresence
(
badChart
)
if
err
==
nil
{
t
.
Errorf
(
"validateChartIconPresence to return a linter error, got no error"
)
}
}
func
TestValidateChartIconURL
(
t
*
testing
.
T
)
{
var
failTest
=
[]
string
{
"RiverRun"
,
"john@winterfell"
,
"riverrun.io"
}
var
successTest
=
[]
string
{
"http://riverrun.io"
,
"https://riverrun.io"
,
"https://riverrun.io/blackfish.png"
}
for
_
,
test
:=
range
failTest
{
badChart
.
Icon
=
test
err
:=
validateChartIconURL
(
badChart
)
if
err
==
nil
||
!
strings
.
Contains
(
err
.
Error
(),
"invalid icon URL"
)
{
t
.
Errorf
(
"validateChartIconURL(%s) to return
\"
invalid icon URL
\"
, got no error"
,
test
)
}
}
for
_
,
test
:=
range
successTest
{
badChart
.
Icon
=
test
err
:=
validateChartSources
(
badChart
)
if
err
!=
nil
{
t
.
Errorf
(
"validateChartIconURL(%s) to return no error, got %s"
,
test
,
err
.
Error
())
}
}
}
func
TestChartfile
(
t
*
testing
.
T
)
{
func
TestChartfile
(
t
*
testing
.
T
)
{
linter
:=
support
.
Linter
{
ChartDir
:
badChartDir
}
linter
:=
support
.
Linter
{
ChartDir
:
badChartDir
}
Chartfile
(
&
linter
)
Chartfile
(
&
linter
)
msgs
:=
linter
.
Messages
msgs
:=
linter
.
Messages
if
len
(
msgs
)
!=
3
{
if
len
(
msgs
)
!=
4
{
t
.
Errorf
(
"Expected 3 errors, got %d"
,
len
(
msgs
))
t
.
Errorf
(
"Expected 3 errors, got %d"
,
len
(
msgs
))
}
}
...
@@ -214,4 +241,9 @@ func TestChartfile(t *testing.T) {
...
@@ -214,4 +241,9 @@ func TestChartfile(t *testing.T) {
if
!
strings
.
Contains
(
msgs
[
2
]
.
Err
.
Error
(),
"version 0.0.0 is less than or equal to 0"
)
{
if
!
strings
.
Contains
(
msgs
[
2
]
.
Err
.
Error
(),
"version 0.0.0 is less than or equal to 0"
)
{
t
.
Errorf
(
"Unexpected message 2: %s"
,
msgs
[
2
]
.
Err
)
t
.
Errorf
(
"Unexpected message 2: %s"
,
msgs
[
2
]
.
Err
)
}
}
if
!
strings
.
Contains
(
msgs
[
3
]
.
Err
.
Error
(),
"icon is recommended"
)
{
t
.
Errorf
(
"Unexpected message 3: %s"
,
msgs
[
3
]
.
Err
)
}
}
}
This diff is collapsed.
Click to expand it.
pkg/lint/rules/testdata/albatross/Chart.yaml
+
1
−
0
View file @
088c2bd2
name
:
albatross
name
:
albatross
description
:
testing chart
description
:
testing chart
version
:
199.44.12345-Alpha.1+cafe009
version
:
199.44.12345-Alpha.1+cafe009
icon
:
http://riverrun.io
This diff is collapsed.
Click to expand it.
pkg/lint/rules/testdata/badvaluesfile/Chart.yaml
+
1
−
0
View file @
088c2bd2
...
@@ -2,3 +2,4 @@ name: badvaluesfile
...
@@ -2,3 +2,4 @@ name: badvaluesfile
description
:
A Helm chart for Kubernetes
description
:
A Helm chart for Kubernetes
version
:
0.0.1
version
:
0.0.1
home
:
"
"
home
:
"
"
icon
:
http://riverrun.io
This diff is collapsed.
Click to expand it.
pkg/lint/rules/testdata/goodone/Chart.yaml
+
1
−
0
View file @
088c2bd2
name
:
goodone
name
:
goodone
description
:
good testing chart
description
:
good testing chart
version
:
199.44.12345-Alpha.1+cafe009
version
:
199.44.12345-Alpha.1+cafe009
icon
:
http://riverrun.io
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