Gérer le code source¶
Le code source est le patrimoine intellectuel central d'une DSI orientee développement. Le service SCM (Source Code Management) fournit l'hebergement des dépôts Git, la revue de code par pull requests, la gestion des branches et l'integration avec la chaîne logicielle.
Classification¶
| Propriété | Valeur |
|---|---|
| Zone de confiance | Chaîne logicielle |
| Niveau | Confidentiel |
| Justification | Le code source constitue la propriété intellectuelle de l'organisation |
| Référence | Classification et zones de confiance |
Confidentiel
Le code source, les configurations et les secrets associes sont classifies Confidentiel. L'accès est restreint par rôle (RBAC), les flux sont limites a la zone Chaîne logicielle, et les sauvegardes sont chiffrees.
Solutions evaluees¶
| Solution | Licence | Modèle | Recommandation |
|---|---|---|---|
| Gitea | MIT | Self-hosted | Recommandee |
| GitLab CE/EE | MIT / Prop. | Self-hosted | Alternative |
| GitHub Enterprise | Proprietaire | Self-hosted/SaaS | Alternative |
| Bitbucket Data Center | Proprietaire | Self-hosted | Alternative |
La solution recommandee est Gitea : leger, MIT, self-hosted, API complète, ecosysteme en croissance (Actions, Packages).
Chapitres¶
| Chapitre | Sujet |
|---|---|
| Fondamentaux | Concepts du contrôle de version, Git, modèles d'accès, workflows |
| Comparaison des solutions | Grille multi-critères Gitea vs GitLab vs GitHub Enterprise vs Bitbucket |
| Architecture de référence | Architecture HA Gitea : PostgreSQL, Redis, S3, reverse proxy |
| Installation et configuration | Déploiement pas-a-pas avec Podman Compose |
| Integration | SSO, CI/CD, registre de paquets, observabilité, DNS |
| Confidentialite | Application du modèle de classification Confidentiel |
| Bonnes pratiques et cas avances | HA, sauvegardes, migration, troubleshooting |
Dependances¶
graph LR
IAM["IAM (Keycloak)"] --> SCM["SCM (Gitea)"]
SCM --> CICD["CI/CD (Gitea Actions)"]
SCM --> Registre["Registre de paquets<br/>(Gitea Packages)"]
SCM --> Obs["Observabilite<br/>(Grafana / Prometheus)"]
SCM --> DNS["DNS interne"]