From a5b7727c8fba5b45aa910daf8bd74571ee111fbb Mon Sep 17 00:00:00 2001 From: Kyle Isom Date: Sat, 15 Nov 2025 13:05:00 -0800 Subject: [PATCH] Add linting stage. --- .circleci/config.yml | 18 +++++++++++++++++- backoff/backoff.go | 6 +++++- backoff/backoff_test.go | 2 +- cmd/cert-bundler/prompt.txt | 3 +++ logging/example_test.go | 2 +- 5 files changed, 27 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 87ba58a..819fd8e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -33,10 +33,26 @@ jobs: command: go build ./... - store_test_results: path: /tmp/test-reports - + lint: + docker: + - image: golangci/golangci-lint:v2.6.2-alpine + steps: + - checkout + - run: golangci-lint run + test: + docker: + # We use golang:bookworm instead of golang:alpine because we want to run + # tests with the race detector enabled. The race detector requires glibc, + # which is only present in the Debian-based containers. + - image: golang:1.25-bookworm + working_directory: ~/repo + steps: + - checkout + - run: go test -v -race ./... # Invoke jobs via workflows # See: https://circleci.com/docs/2.0/configuration-reference/#workflows workflows: testbuild: jobs: - testbuild + - lint diff --git a/backoff/backoff.go b/backoff/backoff.go index ee054e1..fd8b513 100644 --- a/backoff/backoff.go +++ b/backoff/backoff.go @@ -99,7 +99,11 @@ func init() { panic(err.Error()) } - n = int64(binary.LittleEndian.Uint64(buf[:])) + // G115: Intentional uint64->int64 conversion. Overflow is acceptable here + // since math/rand.NewSource accepts any int64 value (positive or negative) + // as a valid seed. The conversion ensures uniform distribution across the + // entire int64 range. + n = int64(binary.LittleEndian.Uint64(buf[:])) // #nosec G115 src := mrand.NewSource(n) prng = mrand.New(src) diff --git a/backoff/backoff_test.go b/backoff/backoff_test.go index 7b1be7b..21cc8cb 100644 --- a/backoff/backoff_test.go +++ b/backoff/backoff_test.go @@ -44,7 +44,7 @@ func TestSetup(t *testing.T) { } } -// Ensure that tries incremenets as expected. +// Ensure that tries increments as expected. func TestTries(t *testing.T) { b := NewWithoutJitter(5, 1) diff --git a/cmd/cert-bundler/prompt.txt b/cmd/cert-bundler/prompt.txt index 9a3ea61..bcb414d 100644 --- a/cmd/cert-bundler/prompt.txt +++ b/cmd/cert-bundler/prompt.txt @@ -1,3 +1,6 @@ +This project is an exploration into the utility of Jetbrains' Junie +to write smaller but tedious programs. + Task: build a certificate bundling tool in cmd/cert-bundler. It creates archives of certificates chains. diff --git a/logging/example_test.go b/logging/example_test.go index 0245df7..70bc191 100644 --- a/logging/example_test.go +++ b/logging/example_test.go @@ -23,7 +23,7 @@ func Example() { map[string]string{"when": time.Now().String()}) } -func ExampleNewFromFile() { +func ExampleNewSplitFile() { flog, err := logging.NewSplitFile("example.log", "example.err", true) if err != nil { log.Fatal("filelog", "failed to open logger",