Comparaison des solutions SCM
Ce chapitre presente une analyse comparative des principales solutions d'hebergement de code source self-hosted. L'objectif est de fournir les éléments nécessaires a une decision architecturale documentee (ADR).
Candidats
| Solution | Éditeur | Licence principale | Première release |
| Gitea | Communauté | MIT | 2016 |
| GitLab CE / EE | GitLab Inc. | MIT / Proprietaire | 2011 |
| GitHub Enterprise | Microsoft | Proprietaire | 2008 (GH) / 2014 (GHE) |
| Bitbucket DC | Atlassian | Proprietaire | 2008 |
Grille de comparaison
Licence et coût
| Critère | Gitea | GitLab CE | GitLab EE | GitHub Enterprise | Bitbucket DC |
| Licence | MIT | MIT | Proprietaire | Proprietaire | Proprietaire |
| Coût annuel | Gratuit | Gratuit | ~$29/user/mois | ~$21/user/mois | ~$6/user/mois |
| Code source | Ouvert | Ouvert | Partiel | Ferme | Ferme |
| Auto-hebergement | Oui | Oui | Oui | Oui (appliance) | Oui |
Empreinte ressources
| Critère | Gitea | GitLab CE | GitHub Enterprise | Bitbucket DC |
| RAM minimum | 256 Mo | 4 Go | 16 Go | 4 Go |
| CPU minimum | 1 vCPU | 4 vCPU | 4 vCPU | 4 vCPU |
| Disque | < 500 Mo | > 10 Go | > 50 Go | > 10 Go |
| Conteneur | ~100 Mo | ~2.5 Go | N/A (VM) | ~1.5 Go |
Empreinte Gitea
Gitea consomme environ 10x moins de ressources que GitLab. Pour une DSI qui deploie de nombreux services, cette legerete est un avantage operationnel majeur.
Protocoles Git
| Critère | Gitea | GitLab | GitHub Enterprise | Bitbucket DC |
| HTTP(S) | Oui | Oui | Oui | Oui |
| SSH | Oui | Oui | Oui | Oui |
| Git protocol (v2) | Oui | Oui | Oui | Oui |
| LFS | Oui | Oui | Oui | Oui |
CI/CD et automatisation
| Critère | Gitea | GitLab | GitHub Enterprise | Bitbucket DC |
| CI/CD integre | Gitea Actions | GitLab CI/CD | GitHub Actions | Bitbucket Pipelines |
| Format de pipeline | YAML (compatible GH Actions) | .gitlab-ci.yml | Workflow YAML | bitbucket-pipelines.yml |
| Runners self-hosted | Oui (act_runner) | Oui | Oui | Oui |
| Webhooks | Complet | Complet | Complet | Complet |
Registre de paquets
| Critère | Gitea | GitLab | GitHub Enterprise | Bitbucket DC |
| Registre integre | Oui (Gitea Packages) | Oui | Oui (GHCR) | Non natif |
| Formats | npm, Maven, PyPI, Docker, NuGet, Cargo, Helm, Generic | npm, Maven, PyPI, Docker, NuGet, Helm, Generic | npm, Maven, NuGet, Docker, RubyGems | Via Artifactory |
| Coût supplémentaire | Inclus | Inclus (limites EE) | Inclus | Licence séparée |
Revue de code
| Critère | Gitea | GitLab | GitHub Enterprise | Bitbucket DC |
| Pull/Merge Requests | Oui | Oui | Oui | Oui |
| Revue inline | Oui | Oui | Oui | Oui |
| Approbations requises | Oui | Oui | Oui | Oui |
| CODEOWNERS | Oui | Oui | Oui | Non natif |
| Suggestions de code | Oui | Oui | Oui | Non |
API et extensibilite
| Critère | Gitea | GitLab | GitHub Enterprise | Bitbucket DC |
| API REST | Swagger/OpenAPI | Complète | Complète | Complète |
| API GraphQL | Non | Oui | Oui | Non |
| SDK officiels | Go | Ruby, Go, Python | JS, Go, Ruby, .NET | Java, Python |
| Marketplace/Apps | Limite | Riche | Tres riche | Marketplace Atlassian |
Authentification et sécurité
| Critère | Gitea | GitLab | GitHub Enterprise | Bitbucket DC |
| LDAP/AD | Oui | Oui | Oui | Oui |
| SAML | Non natif | Oui (EE) | Oui | Oui |
| OIDC/OAuth2 | Oui | Oui | Oui | Oui (via Crowd) |
| 2FA (TOTP) | Oui | Oui | Oui | Oui |
| Audit log | Basique | Complet (EE) | Complet | Complet |
| Commits signes | Oui (GPG/SSH) | Oui (GPG) | Oui (GPG/SSH) | Oui (GPG) |
Outils de migration
| Critère | Gitea | GitLab | GitHub Enterprise | Bitbucket DC |
| Import depuis GitHub | Oui (API) | Oui | N/A | Oui |
| Import depuis GitLab | Oui (API) | N/A | Oui | Oui |
| Import depuis Bitbucket | Oui (API) | Oui | Oui | N/A |
| Migration bulk | Oui (API batch) | Oui | Oui (GEI) | Manuel |
Communauté et maturité
| Critère | Gitea | GitLab | GitHub Enterprise | Bitbucket DC |
| Stars GitHub | ~47k | ~24k | N/A | N/A |
| Contributeurs | ~900 | ~4000 | N/A | N/A |
| Fréquence release | Mensuelle | Mensuelle | Mensuelle | Trimestrielle |
| Documentation | Bonne | Excellente | Excellente | Bonne |
Synthese
Legerete Fonctionnalites Cout Ouverture
Gitea █████ ███ █████ █████
GitLab CE ██ ████ █████ ████
GitLab EE ██ █████ ██ ██
GitHub Enterprise ██ █████ ███ █
Bitbucket DC ███ ███ ████ █
Recommandation
Solution recommandee : Gitea
Gitea est recommande pour une DSI orientee développement pour les raisons suivantes :
- Licence MIT — pas de vendor lock-in, auditabilite complète du code
- Legerete — déploiement sur un conteneur de 100 Mo, 256 Mo de RAM minimum
- API complète — Swagger/OpenAPI, compatible avec les outils existants
- Gitea Actions — CI/CD compatible GitHub Actions, pas besoin d'un outil separe
- Gitea Packages — registre de paquets multi-format integre
- OIDC natif — integration directe avec Keycloak sans plugin supplémentaire
- Migration — API de migration depuis GitHub, GitLab, Bitbucket, Gogs
Alternatives
| Situation | Solution recommandee |
| Besoin d'une plateforme tout-en-un (SCM + CI/CD + registre + SAST) | GitLab EE |
| Ecosysteme GitHub déjà en place | GitHub Enterprise |
| Suite Atlassian déjà déployée (Jira, Confluence) | Bitbucket DC |
ADR : choisir Gitea comme solution SCM
| Champ | Valeur |
| ID | ADR-SCM-001 |
| Date | 2026-04-16 |
| Statut | Accepte |
| Decideurs | Équipe plateforme |
Contexte : la DSI a besoin d'un service SCM self-hosted pour héberger le code source (classifie Confidentiel), integre a la chaîne logicielle existante (Keycloak, CI/CD, registre de paquets).
Decision : déployer Gitea comme solution SCM principale.
Justification :
- Licence MIT compatible avec la politique open source de la DSI
- Empreinte minimale compatible avec l'infrastructure existante (Podman, PostgreSQL)
- OIDC natif pour l'integration Keycloak
- Gitea Actions et Packages couvrent les besoins CI/CD et registre
- API de migration pour rapatrier les dépôts depuis les plateformes existantes
Conséquences :
- Pas de GraphQL API (utiliser REST)
- Ecosysteme de plugins plus reduit que GitLab/GitHub
- Monitoring a mettre en place (pas de dashboard integre)
Alternatives rejetees : GitLab (trop lourd pour le besoin), GitHub Enterprise (licence proprietaire, coût), Bitbucket (dependance Atlassian).