Compare commits

..
Author SHA1 Message Date
jarvis b519ad2c33 ops: scans vuln Trivy en Actions (.gitea/workflows)
- trivy-registry-image.yml : scan image conteneur publiee (registry_package published)
- trivy-repo-weekly.yml : scan lockfiles hebdo (lundi 06:00) + dispatch manuel

Dormants tant que les Actions ne sont pas activees + runner enregistre.
2026-08-31 20:36:25 +02:00
tophe 61e9135070 Ajout pre-commit hook anti-secrets et renforcement .gitignore 2026-05-27 15:24:20 +02:00
tophe 161b6828e3 Retait des .env inutiles 2026-05-27 11:52:26 +02:00
tophe f68ddc6dc6 Add visible error handler for debugging blank page 2026-05-27 01:44:37 +02:00
tophe 57285aeb17 Ajout de 2 .env 2026-05-27 01:44:37 +02:00
tophe 339bdc2280 Trigger Vercel redeploy 2026-05-27 01:44:37 +02:00
tophe a5e1e3e206 Add vercel.json for SPA routing 2026-05-27 01:44:37 +02:00
tophe d1a92299ec Delete .agents/skills directory
Pas besoin de publier...
2026-05-27 01:44:37 +02:00
tophe f1c39eaae2 Maj du titre de la page index 2026-05-26 22:30:12 +02:00
tophe a52b4baddc Merge branch 'master' into main 2026-05-26 18:47:09 +02:00
tophe dc9fd58f66 Ajout de nv fichier de migration SQL 2026-05-26 01:12:28 +02:00
tophe 65a6c50fec Optimisation DB et Migration 2026-05-26 01:11:11 +02:00
tophe e6d2eee9ea Ajout de visuels sur la matrice pour sélection 2026-05-25 20:55:58 +02:00
tophe 24e08fca4f Ajout du composant Form Skill Member 2026-05-25 01:36:29 +02:00
tophe ac1b35b1d9 Ajout de visualisations pratiques de la matrice 2026-05-25 01:34:18 +02:00
tophe 24afa9a8e8 Ajout gitignore pour les opencode stuff 2026-05-24 21:05:03 +02:00
tophe 2ee7decbfd Remaster avec skill supabase only et grillme 2026-05-24 20:30:45 +02:00
tophe e38a3df248 Fix: Add .env to .gitignore and create .env.example
- Uncomment .env in .gitignore to prevent accidental commits
- Remove .env from git tracking
- Add .env.example with placeholder values for documentation
- Fixes security issue where .env was committed with credentials
2026-05-23 17:29:19 +02:00
3 changed files with 158 additions and 0 deletions

No files matched your search

+41
View File
@@ -0,0 +1,41 @@
---
# Trivy — scan image conteneur publiée sur le registre Gitea (git.ccado.fr)
# Déclencheur : package (type container) publié / lié au dépôt.
# NB Gitea 1.27 : l'événement registry_package ne supporte QUE `published`
# (le type `updated` n'existe pas — cf. modules/actions/workflows.go).
name: trivy-registry-image
on:
registry_package:
types: [published]
workflow_dispatch:
concurrency:
group: trivy-image-${{ gitea.ref_name }}
cancel-in-progress: true
jobs:
scan-image:
# Ne scanner que les images conteneur du registre lié à ce dépôt
if: gitea.event.package.type == 'container'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Scan Trivy — image publiée (auth registre via GITEA_TOKEN)
uses: aquasecurity/trivy-action@v0.36.0
with:
image-ref: git.ccado.fr/${{ gitea.event.package.name }}:${{ gitea.event.package.version }}
format: table
exit-code: 1 # échoue sur HIGH/CRITICAL
severity: HIGH,CRITICAL
ignore-unfixed: true # vulns sans fix dispo = bruit
timeout: 15m
env:
TRIVY_CACHE_DIR: /tmp/.trivy
TRIVY_USERNAME: ${{ github.actor }}
TRIVY_PASSWORD: ${{ secrets.GITEA_TOKEN }}
- name: Résultat
if: failure()
run: echo "::warning::Vulnérabilités HIGH/CRITICAL détectées sur l'image ${{ gitea.event.package.name }}:${{ gitea.event.package.version }}"
+36
View File
@@ -0,0 +1,36 @@
---
# Trivy — scan hebdomadaire du dépôt (lockfiles : package-lock.json, go.sum,
# requirements*.txt, Gemfile.lock, ...). Lundi 06:00 + dispatch manuel.
name: trivy-repo-weekly
on:
schedule:
- cron: '0 6 * * 1' # lundi 06:00 Europe/Paris (fuseau runner)
workflow_dispatch:
concurrency:
group: trivy-repo-weekly
cancel-in-progress: false
jobs:
scan-fs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Scan Trivy — lockfiles du dépôt
uses: aquasecurity/trivy-action@v0.36.0
with:
scan-type: fs
scan-ref: .
format: table
exit-code: 1 # échoue sur HIGH/CRITICAL
severity: HIGH,CRITICAL
ignore-unfixed: true
timeout: 15m
env:
TRIVY_CACHE_DIR: /tmp/.trivy
- name: Résultat
if: failure()
run: echo "::warning::Vulnérabilités HIGH/CRITICAL dans les dépendances du dépôt (voir logs ci-dessus)"
+81
View File
@@ -0,0 +1,81 @@
#!/bin/sh
RED='\033[0;31m'
NC='\033[0m'
detected=false
check_file() {
while IFS=: read -r file score; do
[ -z "$file" ] && continue
detected=true
done <<EOF
$(git diff --cached --name-only | while read -r f; do
[ ! -f "$f" ] && continue
case "$f" in
.env|.env.*)
[ "$f" = ".env.example" ] && continue
echo "$f|1"
;;
esac
case "$(basename "$f")" in
.env|.env.*)
[ "$f" = ".env.example" ] && continue
echo "$f|1"
;;
esac
done)
EOF
}
check_diff() {
content=$(git diff --cached --diff-filter=ACM -- "$@" 2>/dev/null)
[ -z "$content" ] && return
patterns='VITE_SUPABASE_SERVICE_ROLE_KEY|SUPABASE_SERVICE_ROLE|eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9|ghp_[0-9a-zA-Z]{36}|gho_[0-9a-zA-Z]{36}|sk_live_|sk_test_|AKIA[0-9A-Z]{16}|-----BEGIN[ A-Z]*PRIVATE KEY-----'
echo "$content" | while read -r line; do
case "$line" in
*VITE_SUPABASE_SERVICE_ROLE_KEY*)
printf "${RED}⛔ Secret détecté : VITE_SUPABASE_SERVICE_ROLE_KEY (clé admin Supabase)${NC}\n"
return 1
;;
*eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9*)
printf "${RED}⛔ Secret détecté : JWT token (eyJ...) dans le diff${NC}\n"
return 1
;;
*ghp_*|*gho_*)
printf "${RED}⛔ Secret détecté : GitHub token (ghp_/gho_)${NC}\n"
return 1
;;
*sk_live_*|*sk_test_*)
printf "${RED}⛔ Secret détecté : clé Stripe${NC}\n"
return 1
;;
*AKIA[0-9A-Z]*)
printf "${RED}⛔ Secret détecté : clé AWS (AKIA)${NC}\n"
return 1
;;
*-----BEGIN*PRIVATE*KEY*-----*)
printf "${RED}⛔ Secret détecté : clé privée RSA/EC${NC}\n"
return 1
;;
esac
done
}
check_file
for f in $(git diff --cached --name-only); do
case "$f" in .githooks/*) continue ;; esac
check_diff "$f"
[ $? -eq 1 ] && detected=true
done
if [ "$detected" = true ]; then
printf "${RED}⛔ Commit bloqué : secret(s) détecté(s) dans les fichiers indexés.${NC}\n"
printf " Vérifie le contenu et utilise 'git rm --cached' si nécessaire.\n"
exit 1
fi
exit 0