> ## Documentation Index
> Fetch the complete documentation index at: https://infra-docs.kaeyros.org/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub Secrets : gestion des secrets pour les pipelines CI/CD

> Distinction entre secrets d'organisation et de dépôt GitHub. Organisation : GHCR_TOKEN, SEMGREP_TOKEN, SONAR_TOKEN. Rotation trimestrielle recommandée.

GitHub Secrets alimentent les workflows GitHub Actions qui construisent les images, lancent les analyses de sécurité et déclenchent les déploiements via ArgoCD. Les secrets se divisent en deux niveaux : ceux de l'organisation (partagés par tous les dépôts) et ceux propres à chaque dépôt. Cette page précise lesquels sont définis, leur usage et les règles de rotation.

## Secrets d'organisation

Ces secrets sont définis au niveau de l'organisation `kaeyros-analytics-org` et sont accessibles par tous les dépôts :

| Secret | Usage |
| - | - |
| `GHCR_TOKEN` | Authentification auprès de ghcr.io pour pousser les images Docker construites par les workflows |
| `SEMGREP_TOKEN` | Token d'authentification Semgrep pour l'analyse SAST dans les pipelines |
| `SONAR_TOKEN` | Token SonarQube pour l'analyse de qualité et de sécurité du code |

## Secrets de dépôt

Chaque dépôt peut définir ses propres secrets pour des besoins spécifiques :

| Type d'usage | Exemple |
| - | - |
| Clés API externes | Token d'API de test pour les tests d'intégration d'un microservice |
| Tokens spécifiques | Clé de déploiement propre à une application legacy |
| Credentials base de données | URI de connexion temporaire pour les tests en CI |

## Rotation trimestrielle

La rotation des secrets est planifiée chaque début de trimestre. Le calendrier détaillé est partagé dans le canal d'astreinte. Les responsabilités sont les suivantes :

**1. Préparation**

L'équipe DevOps génère les nouveaux tokens (GHCR, Semgrep, SonarQube) et les teste sur un dépôt pilote.

**2. Mise à jour organisation**

Les nouveaux secrets d'organisation sont injectés dans les paramètres de l'organisation GitHub.

**3. Notification**

Un message est posté dans le canal d'astreinte pour informer que la rotation est effective. Les équipes vérifient que leurs pipelines passent correctement.

> [!WARNING]
>
> GitHub masque automatiquement les secrets dans les logs, mais ce mécanisme n'est pas infaillible. Ne faites jamais `echo $SECRET` dans un workflow et évitez de passer des secrets en argument de ligne de commande. Préférez toujours les variables d'environnement (`env:`) dans les fichiers `.github/workflows/*.yml`.

> [!TIP]
>
> Pour vérifier qu'un secret est correctement masqué, consultez les logs d'une exécution récente et assurez-vous que la valeur sensible est remplacée par des astérisques (`***`).

> [!NOTE]
>
> Pour toute demande de création, rotation ou révocation d'un secret GitHub, contactez l'équipe DevOps à l'adresse [devops@kaeyros-analytics.com](mailto:devops@kaeyros-analytics.com).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.