Aller au contenu principal

Template — Security

StatutActif — v1.0 — 2026-06-27
UsageCopier dans .github/workflows/security.yml
Voir aussiPlaybook Security

Usage

Copier dans .github/workflows/security.yml du projet.

Ce workflow tourne sur chaque PR. Il est informatif par défaut — ajouter aux required checks progressivement selon la maturité du projet.

Les jobs deps-npm et deps-composer ne tournent que si les fichiers de lock correspondants existent dans le projet.

Template

name: Security

# Standard DMV — minimal security checks on every PR.
# Detects secrets, vulnerable dependencies.
# Informational by default — add to required checks once team is familiar.

on:
pull_request:

permissions:
contents: read

jobs:
secrets:
name: Secret Detection
runs-on: ubuntu-latest
timeout-minutes: 5

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Gitleaks
uses: gitleaks/gitleaks-action@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

deps-npm:
name: npm Audit
runs-on: ubuntu-latest
timeout-minutes: 5
if: hashFiles('package-lock.json') != ''

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22

- name: Audit dependencies
# --audit-level=high : only fail on high/critical vulnerabilities
run: npm audit --audit-level=high

deps-composer:
name: Composer Audit
runs-on: ubuntu-latest
timeout-minutes: 5
if: hashFiles('composer.lock') != ''

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.4'
coverage: none

- name: Audit dependencies
run: composer audit