From d1926327c9da5890453e9ba2449553d14b39b62c Mon Sep 17 00:00:00 2001 From: MaineK00n Date: Mon, 16 May 2022 09:55:17 +0900 Subject: [PATCH 1/4] chore: print to stderr --- commands/fetch-kevuln.go | 6 ------ main.go | 2 +- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/commands/fetch-kevuln.go b/commands/fetch-kevuln.go index fc38800..e630b54 100644 --- a/commands/fetch-kevuln.go +++ b/commands/fetch-kevuln.go @@ -26,12 +26,6 @@ func init() { } func fetchKEVuln(_ *cobra.Command, _ []string) (err error) { - defer func() { - if err != nil { - log15.Error("failed to fetchKEVuln", "err", err) - } - }() - if err := utils.SetLogger(viper.GetBool("log-to-file"), viper.GetString("log-dir"), viper.GetBool("debug"), viper.GetBool("log-json")); err != nil { return xerrors.Errorf("Failed to SetLogger. err: %w", err) } diff --git a/main.go b/main.go index 636fda8..1b8fd4c 100644 --- a/main.go +++ b/main.go @@ -9,7 +9,7 @@ import ( func main() { if err := commands.RootCmd.Execute(); err != nil { - fmt.Println(err) + fmt.Fprintln(os.Stderr, err) os.Exit(1) } os.Exit(0) From 4b4e06151a73baaf3fa07591148678b25f4ed59c Mon Sep 17 00:00:00 2001 From: MaineK00n Date: Mon, 16 May 2022 11:45:07 +0900 Subject: [PATCH 2/4] chore: update to go1.18 --- .github/workflows/golangci.yml | 2 +- .github/workflows/goreleaser.yml | 2 +- .github/workflows/test.yml | 2 +- go.mod | 3 +-- go.sum | 5 ----- 5 files changed, 4 insertions(+), 10 deletions(-) diff --git a/.github/workflows/golangci.yml b/.github/workflows/golangci.yml index b0dfb7d..a8084f7 100644 --- a/.github/workflows/golangci.yml +++ b/.github/workflows/golangci.yml @@ -16,7 +16,7 @@ jobs: uses: golangci/golangci-lint-action@v2 with: # Required: the version of golangci-lint is required and must be specified without patch version: we always use the latest patch version. - version: v1.42 + version: v1.45 args: --timeout=10m # Optional: working directory, useful for monorepos diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml index ab5a8fa..e661dd7 100644 --- a/.github/workflows/goreleaser.yml +++ b/.github/workflows/goreleaser.yml @@ -19,7 +19,7 @@ jobs: name: Set up Go uses: actions/setup-go@v2 with: - go-version: 1.17 + go-version: 1.18 - name: Run GoReleaser uses: goreleaser/goreleaser-action@v2 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 413c9ea..a22439e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,7 +11,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v2 with: - go-version: 1.17.x + go-version: 1.18.x id: go - name: Check out code into the Go module directory diff --git a/go.mod b/go.mod index e4bcbf7..7605b13 100644 --- a/go.mod +++ b/go.mod @@ -1,11 +1,10 @@ module github.com/vulsio/go-kev -go 1.17 +go 1.18 require ( github.com/cheggaaa/pb/v3 v3.0.8 github.com/go-redis/redis/v8 v8.11.4 - github.com/gocarina/gocsv v0.0.0-20211020200912-82fc2684cc48 github.com/inconshreveable/log15 v0.0.0-20201112154412-8562bdadbbac github.com/labstack/echo v3.3.10+incompatible github.com/mattn/go-sqlite3 v1.14.9 diff --git a/go.sum b/go.sum index 2c0513a..274dfce 100644 --- a/go.sum +++ b/go.sum @@ -58,7 +58,6 @@ github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgI github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -120,8 +119,6 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= -github.com/gocarina/gocsv v0.0.0-20211020200912-82fc2684cc48 h1:hLeicZW4XBuaISuJPfjkprg0SP0xxsQmb31aJZ6lnIw= -github.com/gocarina/gocsv v0.0.0-20211020200912-82fc2684cc48/go.mod h1:5YoVOkjYAQumqlV356Hj3xeYh4BdZuLE0/nRkf2NKkI= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= @@ -234,7 +231,6 @@ github.com/inconshreveable/log15 v0.0.0-20201112154412-8562bdadbbac h1:n1DqxAo4o github.com/inconshreveable/log15 v0.0.0-20201112154412-8562bdadbbac/go.mod h1:cOaXtrgN4ScfRrD9Bre7U1thNq5RtJ8ZoP4iXVGRj6o= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/jackc/chunkreader v1.0.0 h1:4s39bBR8ByfqH+DKm8rQA3E1LHZWB9XWcrz8fqaZbe0= github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= @@ -255,7 +251,6 @@ github.com/jackc/pgmock v0.0.0-20210724152146-4ad1a8207f65 h1:DadwsjnMwFjfWc9y5W github.com/jackc/pgmock v0.0.0-20210724152146-4ad1a8207f65/go.mod h1:5R2h2EEX+qri8jOWMbJCtaPWkrrNc7OHwsp2TCqp7ak= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= -github.com/jackc/pgproto3 v1.1.0 h1:FYYE4yRw+AgI8wXIinMlNjBbp/UitDJwfj5LqqewP1A= github.com/jackc/pgproto3 v1.1.0/go.mod h1:eR5FA3leWg7p9aeAqi37XOTgTIbkABlvcPB3E5rlc78= github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190420180111-c116219b62db/go.mod h1:bhq50y+xrl9n5mRYyCBFKkpRVTLYJVWeCc+mEAI3yXA= github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190609003834-432c2951c711/go.mod h1:uH0AWtUmuShn0bcesswc4aBTWGvw0cAxIJp+6OB//Wg= From f99d3fe56bfc985aa61e16dcce4dfa8bb33ef1ce Mon Sep 17 00:00:00 2001 From: MaineK00n Date: Mon, 16 May 2022 16:18:01 +0900 Subject: [PATCH 3/4] chore: add arm64 and update workflows --- .github/workflows/docker-build.yml | 13 +++++++------ .github/workflows/golangci.yml | 11 +++++++---- .github/workflows/goreleaser.yml | 7 +++++-- .github/workflows/test.yml | 4 ++-- .goreleaser.yml | 22 +++++++++++++++++++--- GNUmakefile | 7 ++++++- 6 files changed, 46 insertions(+), 18 deletions(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index bdd2680..da8ebf8 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -12,16 +12,16 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 - name: Login to DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -29,14 +29,14 @@ jobs: - name: Docker meta id: meta - uses: docker/metadata-action@v3 + uses: docker/metadata-action@v4 with: images: vuls/go-kev tags: | type=ref,event=tag - name: Build and push - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v3 with: push: true tags: | @@ -44,3 +44,4 @@ jobs: ${{ steps.meta.outputs.tags }} secrets: | "github_token=${{ secrets.GITHUB_TOKEN }}" + platforms: linux/amd64,linux/arm64 diff --git a/.github/workflows/golangci.yml b/.github/workflows/golangci.yml index a8084f7..e907e78 100644 --- a/.github/workflows/golangci.yml +++ b/.github/workflows/golangci.yml @@ -11,12 +11,15 @@ jobs: name: lint runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/setup-go@v3 + with: + go-version: 1.18 + - uses: actions/checkout@v3 - name: golangci-lint - uses: golangci/golangci-lint-action@v2 + uses: golangci/golangci-lint-action@v3 with: - # Required: the version of golangci-lint is required and must be specified without patch version: we always use the latest patch version. - version: v1.45 + # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version + version: v1.46 args: --timeout=10m # Optional: working directory, useful for monorepos diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml index e661dd7..ea5ea80 100644 --- a/.github/workflows/goreleaser.yml +++ b/.github/workflows/goreleaser.yml @@ -11,13 +11,16 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 + - + name: install package for cross compile + run: sudo apt update && sudo apt install -y gcc-aarch64-linux-gnu - name: Unshallow run: git fetch --prune --unshallow - name: Set up Go - uses: actions/setup-go@v2 + uses: actions/setup-go@v3 with: go-version: 1.18 - diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a22439e..3cd6554 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,13 +9,13 @@ jobs: steps: - name: Set up Go 1.x - uses: actions/setup-go@v2 + uses: actions/setup-go@v3 with: go-version: 1.18.x id: go - name: Check out code into the Go module directory - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Test run: make test diff --git a/.goreleaser.yml b/.goreleaser.yml index c7a2d38..e6a859a 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -3,11 +3,27 @@ release: github: owner: vulsio name: go-kev +env: + - GO111MODULE=on + - CGO_ENABLED=1 builds: -- goos: - - linux +- id: linux-amd64 + goos: + - linux goarch: - - amd64 + - amd64 + env: + - CC=x86_64-linux-gnu-gcc + main: . + ldflags: -s -w -X github.com/vulsio/go-kev/config.Version={{.Version}} -X github.com/vulsio/go-kev/config.Revision={{.Commit}} + binary: go-kev +- id: linux-arm64 + goos: + - linux + goarch: + - arm64 + env: + - CC=aarch64-linux-gnu-gcc main: . ldflags: -s -w -X github.com/vulsio/go-kev/config.Version={{.Version}} -X github.com/vulsio/go-kev/config.Revision={{.Commit}} binary: go-kev diff --git a/GNUmakefile b/GNUmakefile index 41ca512..eae34a8 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -4,6 +4,7 @@ install \ vendor \ lint \ + golangci \ vet \ fmt \ fmtcheck \ @@ -41,9 +42,13 @@ install: main.go $(GO) install -ldflags "$(LDFLAGS)" lint: - $(GO_OFF) get -u github.com/mgechev/revive + $(GO) install github.com/mgechev/revive@latest revive -config ./.revive.toml -formatter plain $(PKGS) +golangci: + $(GO) install github.com/golangci/golangci-lint/cmd/golangci-lint@latest + golangci-lint run + vet: echo $(PKGS) | xargs env $(GO) vet || exit; From f1f6eabd7c42af33207229bff4492a0bc383540f Mon Sep 17 00:00:00 2001 From: MaineK00n Date: Fri, 24 Jun 2022 18:51:58 +0900 Subject: [PATCH 4/4] chore: disable staticcheck SA1019 for xerrors.Errorf --- .golangci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.golangci.yml b/.golangci.yml index 9244a42..7c483ae 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -31,6 +31,9 @@ linters-settings: - name: unused-parameter - name: unreachable-code - name: redefines-builtin-id + staticcheck: + # https://staticcheck.io/docs/options#checks + checks: ["all", "-SA1019"] # errcheck: #exclude: /path/to/file.txt