ci(go-lint): golangci-lint v1.64.8 (go1.24) + new-from-merge-base
CI / detect-changes (pull_request) Successful in 19s
CI / branch-name (pull_request) Successful in 1s
CI / guardrail-integrity (pull_request) Successful in 5s
CI / secret-scan (pull_request) Successful in 14s
CI / dep-audit (pull_request) Failing after 1m2s
CI / sbom-scan (pull_request) Failing after 1m8s
CI / build-sha-integrity (pull_request) Successful in 12s
CI / validate-canonical-controls (pull_request) Successful in 13s
CI / loc-budget (pull_request) Successful in 30s
CI / go-lint (pull_request) Successful in 1m7s
CI / python-lint (pull_request) Failing after 23s
CI / nodejs-lint (pull_request) Failing after 1m7s
CI / nodejs-build (pull_request) Successful in 3m8s
CI / test-go (pull_request) Successful in 1m8s
CI / iace-gt-coverage (pull_request) Successful in 24s
CI / test-python-backend (pull_request) Successful in 34s
CI / test-python-document-crawler (pull_request) Successful in 20s
CI / test-python-dsms-gateway (pull_request) Successful in 19s

go-lint failed on every PR: golangci-lint v1.62-alpine is built with go1.23 and
refuses to load a go1.24.0 module's config ("language version go1.23 lower than
targeted 1.24.0"), so it never actually linted.

- container v1.62-alpine -> v1.64.8-alpine (built with go1.24.1)
- revive `exported` used the old map-argument form, which v1.64 rejects
  ("expecting a string, got map") -> string form (disableStutteringCheck)
- running golangci for the first time surfaces ~15 pre-existing findings in
  unrelated packages (academy/whistleblower/iace/training + a few tests);
  switch issues.new:false -> new-from-merge-base:main so only newly changed
  lines fail (the config already anticipated this)
- new-from-merge-base needs the merge base -> go-lint checkout now does a full
  clone (local `main` ref) instead of a shallow single-branch clone

Verified locally with v1.64.8: a clean branch over main lints to 0 issues
(pre-existing debt ignored), config loads cleanly. Touches only CI config.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-06-23 12:44:32 +02:00
parent a1f425d43a
commit b5f7cc9e9b
2 changed files with 8 additions and 7 deletions
+4 -2
View File
@@ -136,12 +136,14 @@ jobs:
runs-on: docker runs-on: docker
needs: detect-changes needs: detect-changes
if: github.event_name == 'pull_request' && needs.detect-changes.outputs.sdk == 'true' if: github.event_name == 'pull_request' && needs.detect-changes.outputs.sdk == 'true'
container: golangci/golangci-lint:v1.62-alpine container: golangci/golangci-lint:v1.64.8-alpine
steps: steps:
- name: Checkout - name: Checkout
run: | run: |
apk add --no-cache git apk add --no-cache git
git clone --depth 1 --branch ${GITHUB_HEAD_REF:-${GITHUB_REF_NAME}} ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git . # Full clone so `main` is a local ref — new-from-merge-base needs the merge base.
git clone ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git .
git checkout ${GITHUB_HEAD_REF:-${GITHUB_REF_NAME}}
- name: Lint ai-compliance-sdk - name: Lint ai-compliance-sdk
run: | run: |
[ -d "ai-compliance-sdk" ] || exit 0 [ -d "ai-compliance-sdk" ] || exit 0
+4 -5
View File
@@ -55,8 +55,7 @@ linters-settings:
rules: rules:
- name: exported - name: exported
arguments: arguments:
- checkPrivateReceivers: false - disableStutteringCheck
- disableStutteringCheck: true
- name: error-return - name: error-return
- name: increment-decrement - name: increment-decrement
- name: var-declaration - name: var-declaration
@@ -83,6 +82,6 @@ issues:
max-issues-per-linter: 50 max-issues-per-linter: 50
max-same-issues: 5 max-same-issues: 5
# New code only: don't fail on pre-existing issues in files we haven't touched. # New code only: lint lines changed vs main, so pre-existing debt doesn't fail CI.
# Remove this once a clean baseline is established. # Needs the go-lint job to clone with a local `main` ref (see .gitea/workflows/ci.yaml).
new: false new-from-merge-base: main