Aller au contenu principal

GitHub Actions

Préambule

L'intégration CI/CD GitGuardian avec GitHub se présente sous la forme de GitHub Actions et est exécuté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 voulez assurer une couverture complète de vos dépôts GitHub ainsi que des scans complets de l'historique git et des reportings, vous pourriez être intéressé par l'utilisation de l'intégration GitHub de GitGuardian.

Aperçu

GitHub Actions output

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é.

GitHub Actions checks list

Veillez à ajouter GitGuardian scan à vos status checks requis dans les paramètres de votre dépôt pour 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 sous notre plan Business, et leur administration est limité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.

  1. 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).
  2. Ajoutez cette clé API à la variable d'environnement GITGUARDIAN_API_KEY dans les paramètres de votre projet. Vous pouvez définir la valeur GITGUARDIAN_API_KEY dans la page « Secrets » des paramètres de votre dépôt.
  3. 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.50.3
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 }}