Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: update golangci config and clean repo #53

Merged
merged 3 commits into from
Mar 9, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 0 additions & 30 deletions .chglog/CHANGELOG.tpl.md

This file was deleted.

28 changes: 0 additions & 28 deletions .chglog/config.yml

This file was deleted.

53 changes: 0 additions & 53 deletions .github/workflows/release.yml

This file was deleted.

172 changes: 97 additions & 75 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,38 +28,27 @@ linters-settings:

# https://github.com/ultraware/funlen
funlen:
lines: 100
statements: 50
# accounting for comments
lines: 160
statements: 70

# https://github.com/golang/lint
golint:
min-confidence: 0

# https://github.com/tommy-muehle/go-mnd
gomnd:
settings:
mnd:
# don't include the "operation" and "assign"
checks: argument,case,condition,return

# https://github.com/walle/lll
lll:
line-length: 100

# https://github.com/mdempsky/maligned
maligned:
suggest-new: true
# https://github.com/denis-tingaikin/go-header
goheader:
template: |-
Copyright (c) {{ YEAR }} Target Brands, Inc. All rights reserved.

Use of this source code is governed by the LICENSE file in this repository.

# https://github.com/client9/misspell
misspell:
locale: US

# https://github.com/golangci/golangci-lint/blob/master/pkg/golinters/nolintlint
nolintlint:
allow-leading-space: true # don't require machine-readable nolint directives (i.e. with no leading space)
allow-unused: false # report any unused nolint directives
require-explanation: false # don't require an explanation for nolint directives
require-specific: false # don't require nolint directives to be specific about which linter is being skipped
allow-leading-space: true # allow non-"machine-readable" format (ie. with leading space)
allow-unused: false # allow nolint directives that don't address a linting issue
require-explanation: true # require an explanation for nolint directives
require-specific: true # require nolint directives to be specific about which linter is being skipped

# This section provides the configuration for which linters
# golangci will execute. Several of them were disabled by
Expand All @@ -70,58 +59,91 @@ linters:

# enable a specific set of linters to run
enable:
- bodyclose
- deadcode # enabled by default
- dupl
- errcheck # enabled by default
- funlen
- goconst
- gocyclo
- godot
- gofmt
- goimports
- golint
- gomnd
- goprintffuncname
- gosec
- gosimple # enabled by default
- govet # enabled by default
- ineffassign # enabled by default
- lll
- maligned
- misspell
- nakedret
- nolintlint
- staticcheck # enabled by default
- structcheck # enabled by default
- stylecheck
- typecheck # enabled by default
- unconvert
- unparam
- unused # enabled by default
- varcheck # enabled by default
- whitespace

- bidichk # checks for dangerous unicode character sequences
- bodyclose # checks whether HTTP response body is closed successfully
- contextcheck # check the function whether use a non-inherited context
- deadcode # finds unused code
- dupl # code clone detection
- errcheck # checks for unchecked errors
- errorlint # find misuses of errors
- exportloopref # check for exported loop vars
- funlen # detects long functions
- goconst # finds repeated strings that could be replaced by a constant
- gocyclo # computes and checks the cyclomatic complexity of functions
- godot # checks if comments end in a period
- gofmt # checks whether code was gofmt-ed
- goheader # checks is file header matches to pattern
- goimports # fixes imports and formats code in same style as gofmt
- gomoddirectives # manage the use of 'replace', 'retract', and 'excludes' directives in go.mod
- goprintffuncname # checks that printf-like functions are named with f at the end
- gosec # inspects code for security problems
- gosimple # linter that specializes in simplifying a code
- govet # reports suspicious constructs, ex. Printf calls whose arguments don't align with the format string
- ineffassign # detects when assignments to existing variables aren't used
- makezero # finds slice declarations with non-zero initial length
- misspell # finds commonly misspelled English words in comments
- nakedret # finds naked returns in functions greater than a specified function length
- nilerr # finds the code that returns nil even if it checks that the error is not nil
- noctx # noctx finds sending http request without context.Context
- nolintlint # reports ill-formed or insufficient nolint directives
- revive # linter for go
- staticcheck # applies static analysis checks, go vet on steroids
- structcheck # finds unused struct fields
- stylecheck # replacement for golint
- tenv # analyzer that detects using os.Setenv instead of t.Setenv since Go1.17
- typecheck # parses and type-checks go code, like the front-end of a go compiler
- unconvert # remove unnecessary type conversions
- unparam # reports unused function parameters
- unused # checks for unused constants, variables, functions and types
- varcheck # finds unused global variables and constants
- whitespace # detects leading and trailing whitespace
- wsl # forces code to use empty lines

# static list of linters we know golangci can run but we've
# chosen to leave disabled for now
# - asciicheck
# - depguard
# - dogsled
# - exhaustive
# - gochecknoinits
# - gochecknoglobals
# - gocognit
# - gocritic
# - godox
# - goerr113
# - interfacer
# - nestif
# - noctx
# - prealloc
# - rowserrcheck
# - scopelint
# - testpackage
# - wsl
# - asciicheck - non-critical
# - cyclop - unused complexity metric
# - depguard - unused
# - dogsled - blanks allowed
# - durationcheck - unused
# - errname - unused
# - exhaustive - unused
# - exhaustivestruct - style preference
# - forbidigo - unused
# - forcetypeassert - unused
# - gci - use goimports
# - gochecknoinits - unused
# - gochecknoglobals - global variables allowed
# - gocognit - unused complexity metric
# - gocritic - style preference
# - godox - to be used in the future
# - goerr113 - to be used in the future
# - golint - archived, replaced with revive
# - gofumpt - use gofmt
# - gomnd - get too many false-positives
# - gomodguard - unused
# - ifshort - use both styles
# - ireturn - allow interfaces to be returned
# - importas - want flexibility with naming
# - lll - not too concerned about line length
# - interfacer - archived
# - nestif - non-critical
# - nilnil - style preference
# - nlreturn - style preference
# - maligned - archived, replaced with govet 'fieldalignment'
# - paralleltest - false-positives
# - prealloc - don't use
# - predeclared - unused
# - promlinter - style preference
# - rowserrcheck - unused
# - scopelint - deprecated - replaced with exportloopref
# - sqlclosecheck - unused
# - tagliatelle - use a mix of variable naming
# - testpackage - don't use this style of testing
# - thelper - false-positives
# - varnamelen - unused
# - wastedassign - duplicate functionality
# - wrapcheck - style preference

# This section provides the configuration for how golangci
# will report the issues it finds.
Expand All @@ -131,7 +153,7 @@ issues:
# prevent linters from running on *_test.go files
- path: _test\.go
linters:
- dupl
- funlen
- goconst
- gocyclo
- gomnd
24 changes: 9 additions & 15 deletions cmd/vela-docker/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,10 @@ import (
"github.com/urfave/cli/v2"
)

// nolint
const buildAction = "build"

type (
// Build represents the plugin configuration for build information.
// nolint // ignoring length on comments
Build struct {
// enables adding a custom host-to-IP mapping (host:ip)
AddHosts []string
Expand Down Expand Up @@ -83,7 +81,7 @@ type (
// enables setting squash newly built layers into a single new layer
Squash bool
// enables setting an ssh agent socket or keys to expose to the build (only if BuildKit enabled) (format: default|<id>[=<socket>|<key>[,<key>]])
SshComponents []string
SSHComponents []string
// enables streaming attaches to server to negotiate build context
Stream bool
// enables naming and optionally a tag in the 'name:tag' format
Expand Down Expand Up @@ -126,7 +124,6 @@ type (
)

// buildFlags represents for build settings on the cli.
// nolint // ignoring line length on file paths on comments
var buildFlags = []cli.Flag{
&cli.StringSliceFlag{
EnvVars: []string{"PARAMETER_ADD_HOSTS", "DOCKER_ADD_HOSTS"},
Expand Down Expand Up @@ -359,8 +356,8 @@ var buildFlags = []cli.Flag{

// Command formats and outputs the Build command from
// the provided configuration to build a Docker image.
// nolint
func (b *Build) Command() (*exec.Cmd, error) {
// nolint:funlen,gocyclo // Ignore line length
func (b *Build) Command() *exec.Cmd {
logrus.Trace("creating docker build command from plugin configuration")

// variable to store flags for command
Expand Down Expand Up @@ -520,8 +517,8 @@ func (b *Build) Command() (*exec.Cmd, error) {
}

// iterate through the SSH components provided
for _, s := range b.SshComponents {
// add flag for SshComponents from provided build command
for _, s := range b.SSHComponents {
// add flag for SSHComponents from provided build command
flags = append(flags, "--ssh", s)
}

Expand Down Expand Up @@ -560,9 +557,9 @@ func (b *Build) Command() (*exec.Cmd, error) {
// add the required directory param
flags = append(flags, b.Context)

// nolint // this functionality is not exploitable the way
// nolint:gosec // this functionality is not exploitable the way
// the plugin accepts configuration
return exec.Command(_docker, append([]string{buildAction}, flags...)...), nil
return exec.Command(_docker, append([]string{buildAction}, flags...)...)
}

// Exec formats and runs the commands for building a Docker image.
Expand All @@ -573,13 +570,10 @@ func (b *Build) Exec() error {
b.Labels = append(b.Labels, b.AddLabels()...)

// create the build command for the file
cmd, err := b.Command()
if err != nil {
return err
}
cmd := b.Command()

// run the build command for the file
err = execCmd(cmd)
err := execCmd(cmd)
if err != nil {
return err
}
Expand Down
Loading