Communitygithub.com

AutoDL Sync

Sincronização de projetos com servidores AutoDL usando scripts especializados.

O que é AutoDL Sync?

Este skill fornece scripts robustos para sincronizar projetos locais com instâncias AutoDL, substituindo comandos manuais como scp ou rsync. Ele descobre automaticamente a raiz do projeto, priorizando repositórios Git (pelo .git) ou arquivos de configuração .autodl-sync, e lê configurações como host SSH, diretório remoto, exclusões e comportamento de exclusão. Para upload, usa scripts/push-code.sh com filtros de segurança obrigatórios e modos automáticos (lista de arquivos do Git ou exclusões). Para download, executa scripts/pull-results.sh com suporte a exclusões, tamanho máximo de arquivo e proteção contra sobrescrita. A autenticação SSH é gerenciada por uma chave local dedicada, e scripts como setup-key.sh configuram a primeira conexão. O skill é compatível com ambientes que executam agentes de IA como Claude Code ou Cursor, garantindo segurança ao nunca expor chaves privadas e respeitar rigorosamente exclusões configuradas. Ele também se integra a workflows de codificação, executando validação local antes do push e reportando resultados para o usuário.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add 1zqqx/skill-autodl-auto-sync

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Sincronização AutoDL

Use os scripts incluídos neste skill para sincronização de projetos.

Não construa manualmente comandos scp ou rsync quando estes scripts podem realizar a operação solicitada.

Descoberta do projeto

Os scripts de sincronização determinam dinamicamente a raiz do projeto.

Eles preferem a raiz do repositório Git. Se o diretório atual não estiver dentro de um repositório Git, eles procuram para cima por .autodl-sync.

Não codifique caminhos de projeto locais.

Configuração do projeto

As configurações de sincronização específicas do projeto são armazenadas em:

<raiz-do-projeto>/.autodl-sync

A configuração pode definir:

  • host SSH remoto
  • diretório base remoto
  • nome do projeto remoto
  • diretório remoto explícito
  • exclusões de upload com reconhecimento Git ou explícitas
  • exclusões adicionais de upload
  • downloads de resultados selecionados ou do projeto completo
  • exclusões de pull, tamanho máximo de arquivo, comportamento de exclusão e sobrescrita
  • comportamento do rsync

Leia as configurações de sincronização através dos scripts fornecidos, em vez de duplicar a lógica de configuração.

Upload de código

Quando o usuário pedir para:

  • sincronizar código
  • fazer upload de código
  • implantar código fonte atual
  • atualizar a cópia do AutoDL

execute:

scripts/push-code.sh <raiz-do-projeto>

Se a raiz do projeto já for o diretório de trabalho atual, o argumento pode ser omitido.

O filtro de upload sempre aplica exclusões de segurança obrigatórias. No modo auto, ele usa a lista de arquivos rastreados e não ignorados pelo Git quando a raiz do repositório tem um .gitignore; caso contrário, usa as exclusões configuradas. As entradas EXCLUDES_APPEND do projeto se aplicam em todos os modos.

SYNC_DELETE=true é suportado apenas quando o modo de upload resolvido é excludes; o modo de lista de arquivos do Git não pode identificar com segurança todos os arquivos remotos obsoletos e deve falhar em vez de implicar um espelhamento de exclusão completo.

Download de resultados

Quando o usuário pedir para:

  • puxar resultados de treinamento
  • baixar checkpoints
  • recuperar logs
  • recuperar previsões
  • sincronizar saídas de experimento

execute:

scripts/pull-results.sh <raiz-do-projeto>

As entradas PULL_DIRS são relativas a REMOTE_DIR. Um array vazio não puxa nada. PULL_ALL=true puxa explicitamente todo o projeto remoto e não deve ser combinado com PULL_DIRS não vazio. Exclusões de pull, tamanho máximo de arquivo, exclusão local e proteção contra sobrescrita são independentes da filtragem de upload.

Fluxo de trabalho de codificação

Quando as instruções do projeto exigirem explicitamente sincronização após alterações de código:

  1. Complete as modificações solicitadas no código-fonte.
  2. Execute validação local ou testes apropriados.
  3. Se a validação for bem-sucedida, execute push-code.sh.
  4. Relate se a sincronização foi bem-sucedida.

Não inicie automaticamente o treinamento remoto, a menos que o usuário solicite explicitamente a execução remota.

Autenticação SSH

A autenticação AutoDL usa a chave SSH local dedicada configurada pelo .autodl-sync do projeto.

A chave privada deve permanecer na máquina local.

Se a autenticação por chave pública ainda não foi configurada para uma nova instância AutoDL, execute:

scripts/setup-key.sh <raiz-do-projeto>

Esta operação pode solicitar interativamente a senha da conta AutoDL uma vez para instalar a chave pública.

Após a configuração bem-sucedida, as operações de push e pull devem usar autenticação por chave pública.

Nunca imprima, leia, faça upload, copie ou exponha a chave privada SSH.

Segurança

Nunca inspecione, imprima, copie ou modifique chaves privadas SSH.

As configurações de conexão SSH são lidas do .autodl-sync do projeto e passadas explicitamente para ssh e rsync. Os scripts não exigem uma entrada em ~/.ssh/config.

Não faça upload de credenciais ou segredos.

Respeite as exclusões e o comportamento de sincronização definidos pelo .autodl-sync do projeto.

Não habilite exclusão de upload ou pull a menos que a configuração do projeto solicite explicitamente. Após cada sincronização, relate ao usuário o resumo das operações de arquivo do script.

Habilidades Relacionadas