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 deps, import order, fix linter errors #65

Merged
merged 2 commits into from
Aug 28, 2024
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
6 changes: 3 additions & 3 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@429e1977040da7a23b6822b13c129cd1ba93dbb2 # v3.26.2
uses: github/codeql-action/init@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
Expand All @@ -50,7 +50,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@429e1977040da7a23b6822b13c129cd1ba93dbb2 # v3.26.2
uses: github/codeql-action/autobuild@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5

# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
Expand All @@ -64,4 +64,4 @@ jobs:
# make release

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@429e1977040da7a23b6822b13c129cd1ba93dbb2 # v3.26.2
uses: github/codeql-action/analyze@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
go test -race -covermode=atomic -coverprofile=coverage.out ./...

- name: coverage
uses: codecov/codecov-action@84508663e988701840491b86de86b666e8a86bed # v4.5.0
uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4.5.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: coverage.out
108 changes: 60 additions & 48 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@
# outputs it results from the linters it executes.
output:
# colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number"
format: colored-line-number
formats:
- format: json
path: stderr
- format: colored-line-number

# print lines of code with issue, default is true
print-issued-lines: true
Expand All @@ -32,6 +35,18 @@ linters-settings:
lines: 160
statements: 70

# https://github.com/daixiang0/gci
# ensure import order is consistent
# gci write --custom-order -s standard -s default -s blank -s dot -s "prefix(github.com/go-vela)" .
gci:
custom-order: true
sections:
- standard
- default
- blank
- dot
- prefix(github.com/go-vela)

# https://github.com/denis-tingaikin/go-header
goheader:
template: |-
Expand All @@ -43,9 +58,9 @@ linters-settings:

# https://github.com/golangci/golangci-lint/blob/master/pkg/golinters/nolintlint
nolintlint:
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
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 @@ -56,46 +71,42 @@ linters:

# enable a specific set of linters to run
enable:
- 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

- 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
- dupl # code clone detection
- errcheck # checks for unchecked errors
- errorlint # find misuses of errors
- exportloopref # check for exported loop vars
- funlen # detects long functions
- gci # consistent import ordering
- 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
- 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
- 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
- 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
- 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 - non-critical
Expand All @@ -111,7 +122,7 @@ linters:
# - gci - use goimports
# - gochecknoinits - unused
# - gochecknoglobals - global variables allowed
# - gocognit - unused complexity metric
# - gocognit - unused complexity metric
# - gocritic - style preference
# - godox - to be used in the future
# - goerr113 - to be used in the future
Expand All @@ -122,7 +133,7 @@ linters:
# - ifshort - use both styles
# - ireturn - allow interfaces to be returned
# - importas - want flexibility with naming
# - lll - not too concerned about line length
# - lll - not too concerned about line length
# - interfacer - archived
# - nestif - non-critical
# - nilnil - style preference
Expand All @@ -131,7 +142,7 @@ linters:
# - paralleltest - false-positives
# - prealloc - don't use
# - predeclared - unused
# - promlinter - style preference
# - promlinter - style preference
# - rowserrcheck - unused
# - scopelint - deprecated - replaced with exportloopref
# - sqlclosecheck - unused
Expand All @@ -143,7 +154,7 @@ linters:
# - wrapcheck - style preference

# This section provides the configuration for how golangci
# will report the issues it finds.
# will report the issues it finds.
issues:
# Excluding configuration per-path, per-linter, per-text and per-source
exclude-rules:
Expand All @@ -154,3 +165,4 @@ issues:
- funlen
- goconst
- gocyclo
- wsl
5 changes: 3 additions & 2 deletions cmd/vela-npm/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,11 @@ import (
"os"
"strings"

"github.com/go-vela/vela-npm/internal/npm"
"github.com/go-vela/vela-npm/version"
log "github.com/sirupsen/logrus"
"github.com/urfave/cli/v2"

"github.com/go-vela/vela-npm/internal/npm"
"github.com/go-vela/vela-npm/version"
)

func main() {
Expand Down
13 changes: 8 additions & 5 deletions internal/npm/plugin.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@ import (
"strconv"
"strings"

"github.com/go-vela/vela-npm/internal/shell"
log "github.com/sirupsen/logrus"
"github.com/spf13/afero"

"github.com/go-vela/vela-npm/internal/shell"
)

// Plugin interface.
Expand Down Expand Up @@ -301,7 +302,9 @@ func (p *plugin) createNpmrc() error {
} else {
// user username/password
auth64 := b64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("%s:%s", p.config.UserName, p.config.Password)))

auth := fmt.Sprintf("%s_auth=%s", registryString, auth64)

if _, err = f.WriteString(auth + "\n"); err != nil {
return fmt.Errorf("failed to write _auth: %w", err)
}
Expand Down Expand Up @@ -418,15 +421,15 @@ func (p *plugin) validatePackageVersion(nodePackage packageJSON) error {
}

if errResp.ErrorBlock.Code == "ENOTFOUND" { // ENOTFOUND -> not a valid registry
return fmt.Errorf(errResp.ErrorBlock.Summary)
return errors.New(errResp.ErrorBlock.Summary)
} else if errResp.ErrorBlock.Code == "E404" { // E404 -> valid registry but package doesn't exist yet... so it's ours to take!
// Notify that we are publishing with a novel package name
log.Info("Package does not already exist in the registry, publish will claim `" + nodePackage.Name + "`")

return nil
}
// Unknown error response code
return fmt.Errorf(errResp.ErrorBlock.Summary)
return errors.New(errResp.ErrorBlock.Summary)
}

var versions []string
Expand Down Expand Up @@ -473,11 +476,11 @@ func (p *plugin) audit() error {
var errResp shell.NPMErrorResponse
if err := json.Unmarshal(out, &errResp); (err == nil && errResp != shell.NPMErrorResponse{}) {
if errResp.ErrorBlock.Code == "ENOLOCK" { // ENOLOCK -> requires lockfile
return fmt.Errorf(errResp.ErrorBlock.Summary + " " + errResp.ErrorBlock.Detail)
return errors.New(errResp.ErrorBlock.Summary + " " + errResp.ErrorBlock.Detail)
} else if errResp.ErrorBlock.Code == "ENOAUDIT" { // ENOAUDIT -> valid registry but it doesn't support audits
log.Warn(errResp.ErrorBlock.Summary + " Try adding a .npmrc to your project directory or set `audit-level: none`.")
} else { // Unknown error response code
return fmt.Errorf(errResp.ErrorBlock.Summary + " " + errResp.ErrorBlock.Detail)
return errors.New(errResp.ErrorBlock.Summary + " " + errResp.ErrorBlock.Detail)
}
}
}
Expand Down
3 changes: 2 additions & 1 deletion internal/npm/plugin_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@ import (
"strings"
"testing"

"github.com/go-vela/vela-npm/test"
gomock "github.com/golang/mock/gomock"
"github.com/spf13/afero"

"github.com/go-vela/vela-npm/test"
)

const npmrcDefaults = "json=true\ncolor=false\nloglevel=silent\nupdate-notifier=false\n"
Expand Down
5 changes: 2 additions & 3 deletions version/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,10 @@ import (
"fmt"
"runtime"

"github.com/go-vela/types/version"

"github.com/Masterminds/semver/v3"

"github.com/sirupsen/logrus"

"github.com/go-vela/types/version"
)

var (
Expand Down
Loading