3 points par GN⁺ 2024-10-21 | 2 commentaires | Partager sur WhatsApp
  • Bibliothèque d'awslabs qui permet d'utiliser Amazon S3 comme dépôt distant git et serveur LFS
  • Implémentation d'un helper de dépôt distant git pour utiliser S3 comme serveur Git serverless
  • Inclut նաև une implémentation de transfert personnalisé git-lfs permettant de pousser les fichiers de gestion LFS dans le même bucket S3
  • Script Python. Fonctionne à partir de la version 3.9
  • Toutes les données sont chiffrées par défaut au stockage et en transit. Pour une couche de sécurité supplémentaire, il est possible de chiffrer les données du bucket S3 avec des clés KMS gérées par le client. L'utilisation de bucket keys est recommandée pour réduire les coûts
  • Le contrôle d'accès au dépôt distant est assuré via les permissions IAM. Contrôle possible au niveau du bucket, du préfixe et de la clé KMS
  • En raison de la nature distribuée de git, il est rare mais possible que plusieurs utilisateurs exécutent simultanément git push sur la même branche. Dans ce cas, plusieurs bundles peuvent être stockés dans S3 et les git push suivants peuvent échouer. Pour résoudre ce problème, il faut exécuter la commande git-remote-s3 doctor

Le résumé de GN⁺

  • git-remote-s3 est un outil utile qui permet d'utiliser Amazon S3 comme serveur Git distant serverless et serveur LFS.
  • La sécurité peut être renforcée grâce au chiffrement des données et au contrôle d'accès.
  • Un outil est également fourni pour résoudre les problèmes d'écriture concurrente et améliorer la fiabilité.
  • Un autre projet offrant des fonctions similaires est lfs-s3.

2 commentaires

 
ganadist 2024-10-22

Je me dis que si on ajoute une authentification distincte à Git LFS en plus de Git, ça risque de créer pas mal de complications assez pénibles, de façon assez inattendue.

 
GN⁺ 2024-10-21
Commentaires sur Hacker News
  • Si vous souhaitez utiliser S3 comme git remote mais que la confidentialité vous inquiète, quelqu’un a créé un outil qui utilise Restic pour employer S3 comme git remote non fiable

  • Il faut se rappeler que l’unité minimale de facturation d’AWS S3 est de 128 KB. Si l’arborescence des sources est remplie de petits fichiers, le coût du dépôt Git peut être plus élevé que prévu

  • J’ai été surpris qu’on puisse l’implémenter avec un simple bucket S3. J’avais essayé de faire fonctionner un bucket S3 avec API Gateway, une fonction Lambda et une table DynamoDB. Je n’avais pas pensé à une implémentation côté client

  • C’est dommage de tout mocker alors que moto existe

  • moto est une façon de résoudre le problème, mais il existe de très nombreuses implémentations de stockage S3. Cela inclut aussi la version Apache 2 de minio, et pour quelque chose d’aussi stable que l’API S3, il n’est pas nécessaire d’utiliser la toute dernière version

  • J’utilise rudolfs, écrit en Rust. Les performances sont excellentes, mais il lui manque toutes les fonctionnalités dont j’ai besoin (authentification)

  • J’utilise depuis longtemps un template CloudFormation pour LFS sur S3

  • GitHub devrait baisser le prix de LFS

  • On peut réduire les étapes de configuration et le nombre de composants avec Cloudflare Workers

  • Pour la partie LFS, dvc fonctionne mieux que git-lfs et prend en charge S3 nativement

  • git-annex fournit aussi une prise en charge native de S3

  • Cela semble être le mauvais outil, car avec S3 il n’est pas possible de faire des push transactionnels et cohérents

  • Cela semble être le mauvais outil pour héberger un dépôt Git