ci: CI-gate gitleaks (scan secrets au push)
Build & Deploy / build (push) Successful in 20s
Gitleaks (secret scan) / gitleaks (push) Successful in 4s

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-22 23:04:58 +02:00
co-authored by Claude Opus 4.8
parent 29bda37948
commit d2f79c049b
2 changed files with 44 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
name: Gitleaks (secret scan)
on:
push:
branches: [main]
workflow_dispatch: {}
jobs:
gitleaks:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Secret scan (gitleaks)
run: |
set -e
curl -fsSL https://github.com/gitleaks/gitleaks/releases/download/v8.18.4/gitleaks_8.18.4_linux_x64.tar.gz | tar xz gitleaks
./gitleaks detect --source . -c .gitleaks.toml --no-git --redact --no-banner --exit-code 1
echo "✓ aucun secret détecté"
+27
View File
@@ -0,0 +1,27 @@
title = "homelab"
[extend]
useDefault = true
[[rules]]
id = "groq-key"
description = "Groq API key"
regex = '''gsk_[A-Za-z0-9]{20,}'''
[[rules]]
id = "plane-key"
description = "Plane API key"
regex = '''plane_api_[A-Za-z0-9]{10,}'''
[[rules]]
id = "vault-token"
description = "Vault token"
regex = '''hvs\.[A-Za-z0-9_-]{15,}'''
[[rules]]
id = "hex40-token-ctx"
description = "40-hex token in credential context (Gitea etc.)"
regex = '''(?i)(?:tok|token|secret|key|auth|bearer|pass|pwd)['"=: ]{0,12}([a-f0-9]{40})'''
[allowlist]
description = "vendored / lock / build artifacts"
paths = [
'''.*\.min\.(js|css)$''',
'''.*-lock\.json$''',
'''.*\.lock$''',
'''(^|/)(vendor|dist|node_modules|build|three\.min|mermaid\.min)''',
]