GitHub Actions
Prélude
L'intégration CI/CD de GitGuardian avec GitHub prend la forme de GitHub Actions et est réalisée via notre application CLI : ggshield.
ggshield est un wrapper autour de l'API GitGuardian pour la détection de secrets ; une clé API est requise pour l'authentification.
Les actions ggshield se trouvent dans le répertoire actions du dépôt GitHub.
Note : Si vous souhaitez garantir une couverture complète de vos dépôts GitHub ainsi que des scans complets de l'historique git et du reporting, vous pourriez être intéressé par l'utilisation de l'intégration GitHub de GitGuardian.
Aperçu

S'il y a des fuites de secrets ou d'autres problèmes de sécurité dans votre commit, votre workflow sera marqué comme échoué.

Veillez à ajouter GitGuardian scan à vos status checks requis dans les paramètres de votre dépôt afin d'empêcher la fusion des pull requests présentant des problèmes de sécurité.
Installation
Les comptes de service sont recommandés pour exécuter cette intégration.
Veuillez noter que les comptes de service ne sont disponibles que pour les workspaces souscrits à notre plan Business, et leur administration est réservée aux Managers. Si votre workspace est sous le plan Free, vous pouvez toujours utiliser un personal access token pour exécuter cette intégration.
- Créez un compte de service depuis la section API de votre workspace GitGuardian (ou un personal access token si vous êtes sur le plan Free).
- Ajoutez cette clé API à la variable d'environnement
GITGUARDIAN_API_KEYdans les paramètres de votre projet. Vous pouvez définir la valeur deGITGUARDIAN_API_KEYdans la page "Secrets" des paramètres de votre dépôt. - Ajoutez un nouveau job à votre workflow GitHub en utilisant l'action GitGuardian/ggshield-action
.github/workflows/gitguardian.
Modèle pour le scan de secrets
name: GitGuardian scan
on: [push, pull_request]
jobs:
scanning:
name: GitGuardian scan
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0 # fetch all history so multiple commits can be scanned
- name: GitGuardian scan
uses: GitGuardian/ggshield/actions/secret@v1.51.0
env:
GITHUB_PUSH_BEFORE_SHA: ${{ github.event.before }}
GITHUB_PUSH_BASE_SHA: ${{ github.event.base }}
GITHUB_PULL_BASE_SHA: ${{ github.event.pull_request.base.sha }}
GITHUB_DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
GITGUARDIAN_API_KEY: ${{ secrets.GITGUARDIAN_API_KEY }}