detached b2a9e59

fix(lint): centralise gosec G117/G703/G704/G705 exclusions in config, pin CI to v2.10.1

commit
b2a9e59d226e24350aabd64dd1960cd56364d02d
author
bnema · · 2026-02-25 02:11 UTC
parent
c35e93d
signature
unsigned
2 files · +21 -1
M .github/workflows/ci.yml +1 -1
@@ -47,7 +47,7 @@ jobs:
4747 - name: Run golangci-lint
4848 uses: golangci/golangci-lint-action@v9
4949 with:
50- version: latest
50+ version: v2.10.1
5151
5252 test:
5353 name: Test
@@ -47,7 +47,7 @@ jobs:
47 - name: Run golangci-lint47 - name: Run golangci-lint
48 uses: golangci/golangci-lint-action@v948 uses: golangci/golangci-lint-action@v9
49 with:49 with:
50- version: latest50+ version: v2.10.1
51 51
52 test:52 test:
53 name: Test53 name: Test
M .golangci.yml +20 -0
@@ -58,6 +58,26 @@ linters:
5858 - text: "G104:"
5959 linters:
6060 - gosec
61+ # gosec G117: exported struct fields matching secret-name patterns are intentional DTOs
62+ # (OCI registry tokens, CLI credential request bodies, telemetry config, JWT response frames).
63+ # These fields must be exported and carry credentials by design — they are not accidental leaks.
64+ - text: "G117:"
65+ linters:
66+ - gosec
67+ # gosec G703/G704/G705: taint-analysis false positives for a CLI tool and reverse proxy.
68+ # G704 (SSRF): target URLs come from operator-configured routing tables or explicit CLI flags,
69+ # not from untrusted user input. G703 (path traversal): XDG_RUNTIME_DIR is a trusted env var
70+ # set by the login session, not user-supplied. G705 (XSS): registry manifest data is binary
71+ # OCI content served with an explicit Content-Type, not rendered as HTML.
72+ - text: "G703:"
73+ linters:
74+ - gosec
75+ - text: "G704:"
76+ linters:
77+ - gosec
78+ - text: "G705:"
79+ linters:
80+ - gosec
6181
6282 formatters:
6383 enable:
@@ -58,6 +58,26 @@ linters:
58 - text: "G104:"58 - text: "G104:"
59 linters:59 linters:
60 - gosec60 - gosec
61+ # gosec G117: exported struct fields matching secret-name patterns are intentional DTOs
62+ # (OCI registry tokens, CLI credential request bodies, telemetry config, JWT response frames).
63+ # These fields must be exported and carry credentials by design — they are not accidental leaks.
64+ - text: "G117:"
65+ linters:
66+ - gosec
67+ # gosec G703/G704/G705: taint-analysis false positives for a CLI tool and reverse proxy.
68+ # G704 (SSRF): target URLs come from operator-configured routing tables or explicit CLI flags,
69+ # not from untrusted user input. G703 (path traversal): XDG_RUNTIME_DIR is a trusted env var
70+ # set by the login session, not user-supplied. G705 (XSS): registry manifest data is binary
71+ # OCI content served with an explicit Content-Type, not rendered as HTML.
72+ - text: "G703:"
73+ linters:
74+ - gosec
75+ - text: "G704:"
76+ linters:
77+ - gosec
78+ - text: "G705:"
79+ linters:
80+ - gosec
61 81
62 formatters:82 formatters:
63 enable:83 enable:

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 7

Tags 106

↑↓ moveenter openesc close