Skip to content

Commit d7cbde1

Browse files
chore: add .gitleaksignore with triaged secret-scan findings
Full scan of 2502 blobs across every branch and tag found no real exposed secrets. This records the triage so nobody re-investigates it. Suppressed: - 10 generic-api-key hits in the imagepullsecret helm-unittest suites. They are myuser/mypass fixtures; the flagged base64 decodes to `myuser:mypass`. - .env in working-tree scans only. It holds real Quay credentials but is untracked and ignored and has never been committed; gitleaks dir scans ignored files regardless. No git-mode entry, because a .env in history would be a genuine incident and must not be pre-suppressed. Deliberately NOT suppressed: azure/install_cert_on_appgw/test-cert.{key,pfx}. Real private key material, so a true positive — but self-signed (CN=test~), expired Feb 2023, with no trust chain or real hostname. Left visible so a clean run reports exactly one known finding rather than a zero that hides a key. The file documents the preferred fix (generate the pair on demand) and why rewriting history is not worth it for an expired self-signed key in a repo with 11 forks. Both fingerprint forms are listed since gitleaks git and gitleaks dir compute them differently.
1 parent 034c579 commit d7cbde1

1 file changed

Lines changed: 82 additions & 0 deletions

File tree

.gitleaksignore

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# gitleaks allowlist — triaged 2026-08-12 against gitleaks 8.30.0
2+
#
3+
# Each line is a finding fingerprint. Two forms exist and BOTH are needed, because the
4+
# fingerprint depends on how gitleaks was invoked:
5+
#
6+
# gitleaks git . -> <commit-sha>:<file>:<rule-id>:<line>
7+
# gitleaks dir . -> <file>:<rule-id>:<line>
8+
#
9+
# ⚠️ Fingerprints embed line numbers, so editing a listed file shifts its lines and
10+
# invalidates its entry. If a suppressed finding reappears, re-triage it rather than
11+
# blindly re-adding the new fingerprint. For something sturdier, a `.gitleaks.toml`
12+
# [allowlist] matching paths or regexes survives edits — worth switching to if these
13+
# entries start needing maintenance.
14+
#
15+
# Verify with: gitleaks git . --no-banner --redact / gitleaks dir . --no-banner --redact
16+
17+
# ---------------------------------------------------------------------------------
18+
# FALSE POSITIVES — synthetic helm-unittest fixtures, not credentials.
19+
#
20+
# These suites test that imagePullSecret rendering base64-encodes correctly, including
21+
# the awkward cases (a quote and a backslash in the password). The literals are
22+
# `myuser` / `mypass`, and the base64 blobs are just those strings encoded —
23+
# `bXl1c2VyOm15cGFzcw==` decodes to `myuser:mypass`. gitleaks' generic-api-key rule
24+
# matches the base64, not a real key.
25+
# ---------------------------------------------------------------------------------
26+
27+
# gitleaks git (introduced in 70238c9e)
28+
70238c9e2237d3c865491e438ae9b908cb178c56:charts/ontoserver/tests/imagepullsecret_test.yaml:generic-api-key:51
29+
70238c9e2237d3c865491e438ae9b908cb178c56:charts/ontoserver/tests/imagepullsecret_test.yaml:generic-api-key:54
30+
70238c9e2237d3c865491e438ae9b908cb178c56:charts/ontoserver/tests/imagepullsecret_test.yaml:generic-api-key:63
31+
70238c9e2237d3c865491e438ae9b908cb178c56:charts/ontoserver/tests/imagepullsecret_test.yaml:generic-api-key:74
32+
70238c9e2237d3c865491e438ae9b908cb178c56:charts/ontoserver/tests/imagepullsecret_test.yaml:generic-api-key:86
33+
70238c9e2237d3c865491e438ae9b908cb178c56:charts/ontoserver-indexer/tests/imagepullsecret_test.yaml:generic-api-key:43
34+
70238c9e2237d3c865491e438ae9b908cb178c56:charts/ontoserver-indexer/tests/imagepullsecret_test.yaml:generic-api-key:46
35+
70238c9e2237d3c865491e438ae9b908cb178c56:charts/ontoserver-indexer/tests/imagepullsecret_test.yaml:generic-api-key:54
36+
70238c9e2237d3c865491e438ae9b908cb178c56:charts/ontoserver-indexer/tests/imagepullsecret_test.yaml:generic-api-key:64
37+
70238c9e2237d3c865491e438ae9b908cb178c56:charts/ontoserver-indexer/tests/imagepullsecret_test.yaml:generic-api-key:78
38+
39+
# gitleaks dir (working tree)
40+
charts/ontoserver/tests/imagepullsecret_test.yaml:generic-api-key:51
41+
charts/ontoserver/tests/imagepullsecret_test.yaml:generic-api-key:54
42+
charts/ontoserver/tests/imagepullsecret_test.yaml:generic-api-key:63
43+
charts/ontoserver/tests/imagepullsecret_test.yaml:generic-api-key:74
44+
charts/ontoserver/tests/imagepullsecret_test.yaml:generic-api-key:86
45+
charts/ontoserver-indexer/tests/imagepullsecret_test.yaml:generic-api-key:43
46+
charts/ontoserver-indexer/tests/imagepullsecret_test.yaml:generic-api-key:46
47+
charts/ontoserver-indexer/tests/imagepullsecret_test.yaml:generic-api-key:54
48+
charts/ontoserver-indexer/tests/imagepullsecret_test.yaml:generic-api-key:64
49+
charts/ontoserver-indexer/tests/imagepullsecret_test.yaml:generic-api-key:78
50+
51+
# ---------------------------------------------------------------------------------
52+
# LOCAL-ONLY CREDENTIALS — `.env` holds real QUAY_USERNAME / QUAY_PASSWORD for the
53+
# integration tests. It is untracked and ignored (.gitignore), and has never been
54+
# committed — verified across all refs. `gitleaks dir` scans ignored files anyway,
55+
# which is the only reason it shows up. Suppressed for the working-tree scan only;
56+
# there is deliberately no git-mode entry, because a `.env` appearing in history
57+
# would be a genuine incident and must not be pre-suppressed.
58+
# ---------------------------------------------------------------------------------
59+
.env:generic-api-key:2
60+
61+
# ---------------------------------------------------------------------------------
62+
# NOT SUPPRESSED, DELIBERATELY: azure/install_cert_on_appgw/test-cert.{key,pfx}
63+
#
64+
# This is real private key material, so it is a true positive — just a low-risk one:
65+
# self-signed (CN=test~, subject == issuer), expired February 2023, RSA 2048, and the
66+
# key does match its cert. No trust chain, no real hostname.
67+
#
68+
# It is left visible on purpose. A clean run should report exactly these findings and
69+
# nothing else, which is a more honest signal than a zero that hides a known key.
70+
#
71+
# Preferred fix: delete the .key and .pfx from the tree and have
72+
# install-cert-appgw.sh generate a throwaway pair on demand:
73+
# openssl req -x509 -newkey rsa:2048 -nodes -days 1 -subj '/CN=test' \
74+
# -keyout test-cert.key -out test-cert.crt
75+
# Rewriting history to purge them is NOT recommended — it means a force-push against
76+
# a repo with 11 forks to remove an expired self-signed test key.
77+
#
78+
# If you decide to keep the files as-is, uncomment these three lines to silence them:
79+
# d685ca249e512c244c448e1eee7b3883025bc3b2:azure/install_cert_on_appgw/test-cert.key:private-key:1
80+
# azure/install_cert_on_appgw/test-cert.key:private-key:1
81+
# azure/install_cert_on_appgw/test-cert.pfx:pkcs12-file:0
82+
# ---------------------------------------------------------------------------------

0 commit comments

Comments
 (0)