Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
DevSecOps embeds security testing into every stage of the development pipeline — not as a gate before release, but as continuous feedback during development. The goal is to find and fix vulnerabilities when they're cheapest to address: at commit time, not in production.
# .pre-commit-config.yamlrepos:-repo:https://github.com/gitleaks/gitleaksrev:v8.18.0hooks:-id:gitleaksname:Detectsecrets# Blocks commit if credentials found in diff-repo:https://github.com/trufflesecurity/trufflehogrev:v3.67.0hooks:-id:trufflehogname:Detecthigh-entropysecrets-repo:https://github.com/pre-commit/pre-commit-hooksrev:v4.5.0hooks:-id:detect-private-key-id:check-added-large-filesargs: ['--maxkb=500']
# Install: pre-commit install# Run manually: pre-commit run --all-files
|
pip install bandit
bandit -r src/ -f json -o bandit.json -ll # Medium severity and above
python3 -c "
import json, sys
with open('bandit.json') as f: r = json.load(f)
critical = [i for i in r.get('results',[]) if i['issue_severity']=='HIGH']
if critical:
print(f'BLOCKING: {len(critical)} high-severity findings')
for c in critical: print(f' {c[\"filename\"]}:{c[\"line_number\"]} - {c[\"issue_text\"]}')
sys.exit(1)
print(f'SAST passed ({len(r[\"results\"])} total findings, 0 HIGH)')
"
|
pip install pip-licenses
pip-licenses --fail-on "GPL;AGPL" --format=json \
| python3 -c "
import json,sys; data=json.load(sys.stdin)
violations = [p for p in data if any(l in p['License'] for l in ['GPL','AGPL'])]
if violations:
print('BLOCKING: GPL/AGPL licences detected:')
for v in violations: print(f' {v[\"Name\"]} {v[\"Version\"]}: {v[\"License\"]}')
sys.exit(1)
"
|
for i in {1..30}; do
curl -sf http://localhost:8080/health && break || sleep 2
done
-
name:
OWASP
ZAP
baseline
scan
uses:
zaproxy/action-baseline@v0.10.0
with:
target:
'http://localhost:8080'
rules_file_name:
'.zap/rules.tsv'
cmd_options:
'-a'
# Include alpha-level passive scan rules
fail_action:
true
allow_issue_writing:
true
-
name:
Nuclei
vulnerability
scan
run:
|
docker run -v $(pwd):/app projectdiscovery/nuclei:latest \
-u http://localhost:8080 \
-t cves/,exposures/,misconfigurations/ \
-severity high,critical \
-json -o /app/nuclei.json
python3 -c "
import json
findings = [json.loads(l) for l in open('nuclei.json') if l.strip()]
critical = [f for f in findings if f.get('info',{}).get('severity') in ['critical','high']]
if critical:
print(f'BLOCKING: {len(critical)} critical/high DAST findings')
import sys; sys.exit(1)
"