Skip to content

Commit f92ccfd

Browse files
Update configuration
Signed-off-by: Sascha Schwarze <[email protected]>
1 parent 918ba35 commit f92ccfd

File tree

18 files changed

+137
-46
lines changed

18 files changed

+137
-46
lines changed

.golangci.yaml

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,31 @@
1+
version: "2"
2+
13
linters:
4+
disable:
5+
- errcheck
26
enable:
3-
- ineffassign
4-
- revive
57
- gosec
68
- govet
9+
- ineffassign
710
- misspell
11+
- revive
812
- staticcheck
9-
disable:
10-
- errcheck
13+
- unused
14+
15+
exclusions:
16+
rules:
17+
- path: test
18+
linters:
19+
- revive
1120

12-
linters-settings:
13-
gosec:
14-
excludes:
15-
- G101 # Look for hard coded credentials
16-
- G305 # File traversal when extracting zip/tar archive
17-
- G306 # Poor file permissions used when writing to a new file
21+
settings:
22+
gosec:
23+
excludes:
24+
- G101 # Look for hard coded credentials
25+
- G305 # File traversal when extracting zip/tar archive
26+
- G306 # Poor file permissions used when writing to a new file
1827

19-
issues:
20-
exclude-rules:
21-
- path: test
22-
linters:
23-
- revive
28+
revive:
29+
rules:
30+
- name: package-comments
31+
disabled: true

cmd/bundle/main_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ var _ = Describe("Bundle Loader", func() {
7979
}
8080

8181
filecontent := func(path string) string {
82+
// #nosec G304 ok in tests
8283
data, err := os.ReadFile(path)
8384
Expect(err).ToNot(HaveOccurred())
8485
return string(data)

cmd/git/main.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,7 @@ func checkEnvironment(ctx context.Context) error {
252252
if flagValues.verbose {
253253
log.Printf("Debug: %s %s\n", path, check.versionArg)
254254
}
255+
// #nosec G204 in the default container configuration, it is impossible to inject other binaries, as such it is safe that we have no hard-coded path
255256
out, err := exec.CommandContext(ctx, path, check.versionArg).CombinedOutput()
256257
if err != nil {
257258
log.Printf("Error: %s: %s\n", check.toolName, strings.TrimRight(string(out), "\n"))
@@ -474,13 +475,16 @@ func git(ctx context.Context, args ...string) (string, error) {
474475
fmt.Sprintf("safe.directory=%s", flagValues.target),
475476
}
476477
fullArgs = append(fullArgs, args...)
478+
// #nosec G204 arguments are well-defined by the code
477479
cmd := exec.CommandContext(ctx, "git", fullArgs...)
478480

479481
// Print the command to be executed, but replace the URL with a safe version
480482
log.Print(strings.ReplaceAll(cmd.String(), flagValues.url, displayURL))
481483

482484
// Make sure that the spawned process does not try to prompt for infos
483-
os.Setenv("GIT_TERMINAL_PROMPT", "0")
485+
if err := os.Setenv("GIT_TERMINAL_PROMPT", "0"); err != nil {
486+
return "", err
487+
}
484488
cmd.Stdin = nil
485489

486490
out, err := cmd.CombinedOutput()

cmd/git/main_test.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ var _ = Describe("Git Resource", func() {
7979
}
8080

8181
var filecontent = func(path string) string {
82+
// #nosec: G304 fine in tests
8283
data, err := os.ReadFile(path)
8384
Expect(err).ToNot(HaveOccurred())
8485
return string(data)
@@ -509,6 +510,7 @@ var _ = Describe("Git Resource", func() {
509510
lfsFile := filepath.Join(target, "assets", "shipwright-logo-lightbg-512.png")
510511
Expect(lfsFile).To(BeAnExistingFile())
511512

513+
// #nosec: G304 fine in tests
512514
data, err := os.ReadFile(lfsFile)
513515
Expect(err).ToNot(HaveOccurred())
514516
Expect(http.DetectContentType(data)).To(Equal("image/png"))
@@ -524,14 +526,14 @@ var _ = Describe("Git Resource", func() {
524526
git_config_nosystem := os.Getenv("GIT_CONFIG_NOSYSTEM")
525527

526528
// unset all pre-existing git configurations to avoid credential helpers and authentication
527-
os.Setenv("GIT_CONFIG_NOSYSTEM", "1")
528-
os.Setenv("GIT_CONFIG", "/dev/null")
529-
os.Setenv("GIT_CONFIG_GLOBAL", "/dev/null")
529+
Expect(os.Setenv("GIT_CONFIG_NOSYSTEM", "1")).To(Succeed())
530+
Expect(os.Setenv("GIT_CONFIG", "/dev/null")).To(Succeed())
531+
Expect(os.Setenv("GIT_CONFIG_GLOBAL", "/dev/null")).To(Succeed())
530532

531533
DeferCleanup(func() {
532-
os.Setenv("GIT_CONFIG_NOSYSTEM", git_config_nosystem)
533-
os.Setenv("GIT_CONFIG", git_config)
534-
os.Setenv("GIT_CONFIG_GLOBAL", git_global_config)
534+
Expect(os.Setenv("GIT_CONFIG_NOSYSTEM", git_config_nosystem)).To(Succeed())
535+
Expect(os.Setenv("GIT_CONFIG", git_config)).To(Succeed())
536+
Expect(os.Setenv("GIT_CONFIG_GLOBAL", git_global_config)).To(Succeed())
535537
})
536538
})
537539

cmd/image-processing/main_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ var _ = Describe("Image Processing Resource", Ordered, func() {
153153
}
154154

155155
filecontent := func(path string) string {
156+
// #nosec G304 ok in tests
156157
data, err := os.ReadFile(path)
157158
Expect(err).ToNot(HaveOccurred())
158159
return string(data)

cmd/waiter/main_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ var _ = BeforeSuite(func() {
3131
var _ = Describe("Waiter", func() {
3232
// run creates a exec.Command instance using the arguments informed.
3333
var run = func(args ...string) *gexec.Session {
34+
// #nosec G204 necessary for the test
3435
cmd := exec.Command(executable)
3536
cmd.Args = append(cmd.Args, args...)
3637
stdin := &bytes.Buffer{}

pkg/apis/build/v1beta1/build_conversion.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,10 @@ func (src *Build) ConvertTo(ctx context.Context, obj *unstructured.Unstructured)
3636

3737
alphaBuild.ObjectMeta = src.ObjectMeta
3838

39-
src.Spec.ConvertTo(&alphaBuild.Spec)
39+
if err := src.Spec.ConvertTo(&alphaBuild.Spec); err != nil {
40+
ctxlog.Error(ctx, err, "failed to convert object")
41+
return err
42+
}
4043

4144
alphaBuild.Status = v1alpha1.BuildStatus{
4245
Registered: src.Status.Registered,
@@ -57,6 +60,7 @@ func (src *Build) ConvertTo(ctx context.Context, obj *unstructured.Unstructured)
5760
mapito, err := runtime.DefaultUnstructuredConverter.ToUnstructured(&alphaBuild)
5861
if err != nil {
5962
ctxlog.Error(ctx, err, "failed structuring the newObject")
63+
return err
6064
}
6165
obj.Object = mapito
6266

@@ -73,6 +77,7 @@ func (src *Build) ConvertFrom(ctx context.Context, obj *unstructured.Unstructure
7377
err := runtime.DefaultUnstructuredConverter.FromUnstructured(unstructured, &alphaBuild)
7478
if err != nil {
7579
ctxlog.Error(ctx, err, "failed unstructuring the convertedObject")
80+
return err
7681
}
7782

7883
ctxlog.Info(ctx, "converting Build from alpha to beta", "namespace", alphaBuild.Namespace, "name", alphaBuild.Name)
@@ -81,7 +86,10 @@ func (src *Build) ConvertFrom(ctx context.Context, obj *unstructured.Unstructure
8186
src.TypeMeta = alphaBuild.TypeMeta
8287
src.TypeMeta.APIVersion = betaGroupVersion
8388

84-
src.Spec.ConvertFrom(&alphaBuild.Spec)
89+
if err := src.Spec.ConvertFrom(&alphaBuild.Spec); err != nil {
90+
ctxlog.Error(ctx, err, "failed to convert object")
91+
return err
92+
}
8593

8694
// convert annotation-controlled features
8795
if value, set := alphaBuild.Annotations[v1alpha1.AnnotationBuildRunDeletion]; set {

pkg/apis/build/v1beta1/buildrun_conversion.go

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -187,13 +187,17 @@ func (src *BuildRun) ConvertTo(ctx context.Context, obj *unstructured.Unstructur
187187

188188
aux := &v1alpha1.BuildSpec{}
189189
if src.Status.BuildSpec != nil {
190-
src.Status.BuildSpec.ConvertTo(aux)
190+
if err := src.Status.BuildSpec.ConvertTo(aux); err != nil {
191+
ctxlog.Error(ctx, err, "failed to convert object")
192+
return err
193+
}
191194
alphaBuildRun.Status.BuildSpec = aux
192195
}
193196

194197
mapito, err := runtime.DefaultUnstructuredConverter.ToUnstructured(&alphaBuildRun)
195198
if err != nil {
196199
ctxlog.Error(ctx, err, "failed structuring the newObject")
200+
return err
197201
}
198202
obj.Object = mapito
199203

@@ -210,6 +214,7 @@ func (src *BuildRun) ConvertFrom(ctx context.Context, obj *unstructured.Unstruct
210214
err := runtime.DefaultUnstructuredConverter.FromUnstructured(unstructured, &alphaBuildRun)
211215
if err != nil {
212216
ctxlog.Error(ctx, err, "failed unstructuring the buildrun convertedObject")
217+
return err
213218
}
214219

215220
ctxlog.Info(ctx, "converting BuildRun from alpha to beta", "namespace", alphaBuildRun.Namespace, "name", alphaBuildRun.Name)
@@ -218,7 +223,10 @@ func (src *BuildRun) ConvertFrom(ctx context.Context, obj *unstructured.Unstruct
218223
src.TypeMeta = alphaBuildRun.TypeMeta
219224
src.TypeMeta.APIVersion = betaGroupVersion
220225

221-
src.Spec.ConvertFrom(&alphaBuildRun.Spec)
226+
if err = src.Spec.ConvertFrom(ctx, &alphaBuildRun.Spec); err != nil {
227+
ctxlog.Error(ctx, err, "failed to convert object")
228+
return err
229+
}
222230

223231
var sourceStatus *SourceResult
224232
for _, s := range alphaBuildRun.Status.Sources {
@@ -282,19 +290,25 @@ func (src *BuildRun) ConvertFrom(ctx context.Context, obj *unstructured.Unstruct
282290

283291
buildBeta := Build{}
284292
if alphaBuildRun.Status.BuildSpec != nil {
285-
buildBeta.Spec.ConvertFrom(alphaBuildRun.Status.BuildSpec)
293+
if err = buildBeta.Spec.ConvertFrom(alphaBuildRun.Status.BuildSpec); err != nil {
294+
ctxlog.Error(ctx, err, "failed to convert object")
295+
return err
296+
}
286297
src.Status.BuildSpec = &buildBeta.Spec
287298
}
288299

289300
return nil
290301
}
291302

292-
func (dest *BuildRunSpec) ConvertFrom(orig *v1alpha1.BuildRunSpec) error {
303+
func (dest *BuildRunSpec) ConvertFrom(ctx context.Context, orig *v1alpha1.BuildRunSpec) error {
293304

294305
// BuildRunSpec BuildSpec
295306
if orig.BuildSpec != nil {
296307
dest.Build.Spec = &BuildSpec{}
297-
dest.Build.Spec.ConvertFrom(orig.BuildSpec)
308+
if err := dest.Build.Spec.ConvertFrom(orig.BuildSpec); err != nil {
309+
ctxlog.Error(ctx, err, "failed to convert object")
310+
return err
311+
}
298312
}
299313
if orig.BuildRef != nil {
300314
dest.Build.Name = &orig.BuildRef.Name

pkg/bundle/bundle.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ func Pack(directory string) (io.ReadCloser, error) {
9898
var split = func(path string) []string { return strings.Split(path, string(filepath.Separator)) }
9999

100100
var write = func(w io.Writer, path string) error {
101+
// #nosec G304 names are safe, they come from the listing
101102
file, err := os.Open(path)
102103
if err != nil {
103104
return err
@@ -127,6 +128,7 @@ func Pack(directory string) (io.ReadCloser, error) {
127128
}
128129

129130
var patterns []gitignore.Pattern
131+
// #nosec G304 names are safe
130132
if file, err := os.Open(filepath.Join(directory, shpIgnoreFilename)); err == nil {
131133
defer file.Close()
132134

@@ -293,13 +295,14 @@ func Unpack(in io.Reader, targetPath string) (*UnpackDetails, error) {
293295
return nil, err
294296
}
295297

298+
// #nosec G304 names are safe, they come from the listing
296299
file, err := os.OpenFile(target, os.O_CREATE|os.O_RDWR, fileMode(header))
297300
if err != nil {
298301
return nil, err
299302
}
300303

301304
if _, err := io.Copy(file, tr); err != nil {
302-
file.Close()
305+
_ = file.Close()
303306
return nil, err
304307
}
305308

pkg/config/config_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ func configWithEnvVariableOverrides(settings map[string]string, f func(config *C
285285
backup[k] = nil
286286
}
287287

288-
os.Setenv(k, v)
288+
Expect(os.Setenv(k, v)).To(Succeed())
289289
}
290290

291291
config := NewDefaultConfig()
@@ -298,9 +298,9 @@ func configWithEnvVariableOverrides(settings map[string]string, f func(config *C
298298

299299
for k, v := range backup {
300300
if v != nil {
301-
os.Setenv(k, *v)
301+
Expect(os.Setenv(k, *v)).To(Succeed())
302302
} else {
303-
os.Unsetenv(k)
303+
Expect(os.Unsetenv(k)).To(Succeed())
304304
}
305305
}
306306
}

0 commit comments

Comments
 (0)