Un fondateur transfère l’annonce AWS : à compter du 25 juillet 2024, aucun nouveau client ne peut être intégré à CodeCommit. Les dépôts existants continuent de fonctionner, les comptes existants gardent l’accès, mais le service est passé en « maintenance » sans feuille de route. Les dépôts CodeCommit de l’équipe alimentent encore des déclencheurs CodePipeline, le modèle IAM est branché à leur stratégie d’identité, et migrer toucherait CI, build et expérience développeur. Le bon réflexe n’est ni « migration paniquée » ni « ignorer » — c’est une lecture posée des cas où CodeCommit garde l’avantage, des cas où GitHub gagne, et de la façon dont l’horizon de dépréciation change les calculs.
Ce qui se passe
CodeCommit a été livré en 2015 comme la réponse Git infogérée native d’AWS. Sa valeur de conception n’a jamais été l’UX Git — l’interface web a toujours été mince, l’expérience de revue PR plus faible que GitHub. La valeur tenait à trois choses : l’identité passait par IAM (pas d’annuaire utilisateur séparé), les données restaient à l’intérieur de la limite du compte AWS (résidence, journaux d’audit dans CloudTrail), et CodePipeline / CodeBuild s’intégraient nativement sans poignée de main OAuth.
En juillet 2024, AWS a annoncé l’arrêt des nouveaux clients. La formulation était soignée : les clients existants conservent l’accès, le service n’est pas « déprécié » avec une date d’extinction, mais il n’y a plus de travail de fonctionnalité. Le motif correspond à ce qu’AWS a fait avec CodeStar — retrait silencieux sur des horizons pluriannuels. La lecture juste : CodeCommit tournera encore plusieurs années pour les comptes existants, et le coût de migration ne fera qu’augmenter avec le nombre de dépôts, l’historique et les dépendances CI.
La valeur de conception de GitHub a évolué dans la direction opposée. L’expérience PR est la norme du secteur pour la revue de code. Actions a mangé l’essentiel du marché CI autonome. Copilot a inversé le calcul de coût sur le code fermé — les ingénieurs s’attendent à l’assistance, et CodeCommit n’a pas d’équivalent. La visibilité open-source sur GitHub est un signal d’embauche ; sur CodeCommit, elle n’existe pas.
La lecture honnête de qui gagne encore :
- CodeCommit gagne quand la charge doit rester à l’intérieur d’une seule limite de compte AWS (résidence des données, charges réglementées où le périmètre d’audit du client s’arrête au compte AWS), quand la fédération IAM est la seule histoire d’identité (pas de SAML/OIDC vers GitHub), et quand l’intégration CodePipeline est le chemin de déploiement dominant et que l’équipe n’a pas l’appétit pour entretenir GitHub Actions ou un pont de webhook.
- GitHub gagne dans tous les autres cas. Code open-source, Copilot dans l’IDE, écosystème Actions (Marketplace, workflows réutilisables, OIDC-vers-AWS sans clés longue durée) et l’outillage de revue PR plus profond (CODEOWNERS, règles de protection de branche, réviseurs requis liés aux équipes, file de fusion) vivent tous sur GitHub et ne viendront pas dans CodeCommit.
L’unique asymétrie qui compte : une migration CodeCommit-vers-GitHub est mécanique et bien éprouvée. Une migration GitHub-vers-CodeCommit en 2026 est un choix que personne ne fait. L’annonce de dépréciation a transformé une décision à deux voies en cliquet à sens unique.
Comment vérifier
Trois questions tranchent de quel côté de la ligne votre charge se trouve. Exécutez-les sur un dépôt représentatif avant de décider.
# 1. À quel point le dépôt est-il câblé aux déclencheurs CodePipeline vs webhooks génériques ?
aws codepipeline list-pipelines --query 'pipelines[].name' --output text | \
while read p; do
aws codepipeline get-pipeline --name "$p" \
--query 'pipeline.stages[].actions[?actionTypeId.provider==`CodeCommit`].configuration' \
--output json
done
Une sortie qui renvoie une longue liste signifie que CodePipeline est le chemin de déploiement et qu’une migration doit remplacer ces déclencheurs. Une sortie vide signifie que CodePipeline est décoratif et que le dépôt est prêt pour la migration.
# 2. Combien de principaux IAM distincts détiennent des permissions codecommit:* ?
aws iam get-account-authorization-details \
--query 'Policies[?DefaultVersion.Document.Statement[?Action[?contains(@, `codecommit`) == `true`]]].PolicyName' \
--output text
Une petite liste (sous les 10) signifie que le modèle d’identité est contenu ; vous pouvez recréer des permissions d’équipe GitHub équivalentes en un après-midi. Une longue liste qui s’étale sur des stratégies inline personnalisées sur des dizaines de rôles signifie que la migration touche IAM largement.
# 3. Combien d'historique le dépôt porte-t-il ?
git clone codecommit::us-east-1://my-repo /tmp/audit && \
cd /tmp/audit && \
echo "Commits: $(git rev-list --all --count)" && \
echo "Refs: $(git for-each-ref | wc -l)" && \
echo "LFS objects: $(git lfs ls-files | wc -l)" && \
echo "Size: $(du -sh .git | cut -f1)"
Les dépôts sous 1 Go avec des arbres de refs simples migrent en un après-midi. Les dépôts avec LFS, des centaines de branches ou des sous-modules réclament le runbook de migration et une fenêtre de bascule plus longue.
La correction
Le flux décisionnel, séquencé par ce qui change les calculs :
-
Confirmer la contrainte de résidence de la charge. Si le contrat ou le régulateur exige que le code source reste à l’intérieur d’une région AWS canadienne sous le compte AWS du client, CodeCommit est aujourd’hui le seul service Git-sur-AWS qui le satisfait sans monter Gitea ou GitHub Enterprise Server sur EC2. Le compromis est d’accepter l’ombre de la dépréciation. Voir Options Git-sur-AWS après la dépréciation de CodeCommit pour les alternatives si l’histoire de résidence peut bouger.
-
Auditer la surface CI et identité. Utilisez les requêtes ci-dessus pour énumérer les déclencheurs CodePipeline et les principaux IAM. Un dépôt avec deux déclencheurs CodePipeline et une poignée de rôles IAM est une migration d’une demi-journée. Un dépôt dont les déclencheurs s’étalent sur douze pipelines, chacun avec son IAM personnalisé, est un projet de plusieurs semaines — et l’horizon de dépréciation reste assez long pour le planifier proprement plutôt que de basculer dans la panique.
-
Décider d’un horizon, pas d’une date. AWS n’a pas annoncé de date d’arrêt de CodeCommit. Agir comme s’il y en avait une demain mène à des coupes précipitées ; agir comme s’il n’y en aurait jamais mène à une migration paniquée le jour où la date tombe. Fixez un horizon interne (nous utilisons T4 2026 pour tout dépôt sans contrainte dure de résidence) et migrez vers lui délibérément.
-
Migrer les dépôts faciles d’abord. Les dépôts à intégration CodePipeline superficielle, petit historique et sans LFS sont l’échauffement. Ils font émerger les motifs GitHub Actions, la fédération OIDC-vers-AWS et les changements de flux d’équipe. Le temps que les dépôts plus durs doivent bouger, le motif est en mémoire musculaire.
-
Garder le périmètre IAM même après la migration. GitHub Actions appelant AWS via OIDC (
aws-actions/configure-aws-credentials) vous donne des identifiants courte durée et une histoire d’audit plus propre que des clés d’accès longue durée. Le contrôle IAM que vous aviez avec CodeCommit ne disparaît pas — il se déplace vers la frontière d’assomption de rôle. Beaucoup d’équipes profitent de la migration pour retirer totalement les clés AWS statiques.
Deux règles que nous tenons sur les migrations :
Ne pas argumenter la migration sur la préférence développeur seule. L’expérience PR de GitHub est meilleure, mais ce n’est pas le bon dossier pour déplacer la source de vérité d’une organisation. Les dossiers qui font bouger les dépôts sont le risque de dépréciation, la vélocité CI et la simplification de l’identité. Menez avec ceux-là.
Ne pas migrer le périmètre d’audit sans refaire le modèle de menace. Les données CodeCommit sont à l’intérieur du compte AWS du client ; les données GitHub sont dans le locataire de GitHub. Pour la plupart des charges, c’est correct. Pour les charges où le contrat précise l’emplacement des données, le déplacement est un amendement de contrat, pas un déploiement. Faites surface tôt.
Une équipe qui décide aujourd’hui de rester sur CodeCommit deux ans de plus prend une décision défendable. Une équipe qui découvre par une bannière de dépréciation qu’elle a 90 jours pour migrer en prend une bien pire. Le point de la décision est de posséder l’horizon.
Stack Harbor opère CodePipeline + CodeCommit (et les variantes GitHub sur AWS) dans le cadre de l’onboarding Gestion AWS et des Environnements infogérés en continu. Si vous devez lire l’horizon CodeCommit honnêtement avant de vous engager dans une migration, commencez par une consultation d’infrastructure.