3 pontos por GN⁺ 2024-10-21 | 2 comentários | Compartilhar no WhatsApp
  • Biblioteca da awslabs que permite usar o Amazon S3 como remoto do git e servidor LFS
  • Implementação de um git remote helper para usar o S3 como servidor Git serverless
  • Também inclui uma implementação de custom transfer do git-lfs que permite fazer push de arquivos de gerenciamento do LFS para o mesmo bucket S3
  • Script em Python. Funciona na versão 3.9 ou superior
  • Todos os dados são criptografados por padrão em repouso e em trânsito. Para uma camada extra de segurança, é possível criptografar os dados no bucket S3 com chaves KMS gerenciadas pelo cliente. Para reduzir custos, recomenda-se usar bucket keys
  • O controle de acesso ao remoto é garantido por permissões IAM. É possível controlar no nível do bucket, do prefixo e da chave KMS
  • Devido à natureza distribuída do git, embora seja raro, vários usuários podem executar git push ao mesmo tempo no mesmo branch. Nesse caso, vários bundles podem ser armazenados no S3 e pushes posteriores com git push podem falhar. Para resolver esse problema, é necessário executar o comando git-remote-s3 doctor

Resumo do GN⁺

  • git-remote-s3 é uma ferramenta útil que permite usar o Amazon S3 como servidor remoto Git e LFS serverless.
  • A segurança pode ser reforçada por meio de criptografia de dados e controle de acesso.
  • Também oferece ferramentas para resolver problemas de escrita simultânea, aumentando a confiabilidade.
  • Outro projeto com funcionalidade semelhante é o lfs-s3.

2 comentários

 
ganadist 2024-10-22

Parece que, ao usar uma autenticação separada para o LFS além do git, acabam surgindo surpreendentemente muitas complicações incômodas.

 
GN⁺ 2024-10-21
Comentários do Hacker News
  • Se você quer usar o S3 como git remote, mas se preocupa com privacidade, foi criada uma ferramenta que usa o Restic para usar o S3 como um git remote não confiável

  • É preciso lembrar que a unidade mínima de cobrança do AWS S3 é 128 KB. Se a árvore de código-fonte estiver cheia de arquivos pequenos, o custo do repositório Git pode acabar sendo maior do que o esperado

  • Fiquei surpreso por isso poder ser implementado apenas com um bucket S3. Eu estava tentando dar suporte a um bucket S3 usando API Gateway, funções Lambda e tabelas DynamoDB. Não tinha pensado em implementar isso do lado do cliente

  • É uma pena fazer mock de tudo mesmo existindo o moto

  • Uma forma de resolver o problema é usar o moto, mas existem muitas implementações de armazenamento S3. Isso inclui também a versão Apache 2 do minio, e para algo tão estável quanto a API do S3 não há necessidade de usar a versão mais recente

  • Estou usando o rudolfs, escrito em Rust. O desempenho é excelente, mas ele não tem todos os recursos de que preciso, como autenticação

  • Uso há muito tempo um template do CloudFormation para LFS no S3

  • O GitHub deveria reduzir o preço do LFS

  • Dá para reduzir as etapas de configuração e as partes móveis usando Cloudflare Workers

  • Na parte de LFS, o dvc funciona melhor que o git-lfs e oferece suporte nativo ao S3

  • O git-annex também oferece suporte nativo ao S3

  • No S3, não é possível fazer push com transações e consistência, então isso parece a ferramenta errada

  • Parece a ferramenta errada para hospedar um repositório Git