Communitygithub.com

AutoDL Sync

Scripts de synchronisation de projet avec AutoDL utilisant scp/rsync, la découverte automatique du répertoire racine et des exclusions de sécurité.

Qu'est-ce que AutoDL Sync ?

Le skill AutoDL Sync automatise la synchronisation bidirectionnelle entre un projet local et une instance AutoDL distante. Il utilise des scripts bash (`push-code.sh`, `pull-results.sh`, `setup-key.sh`) plutôt que des commandes manuelles scp/rsync. Le skill détecte automatiquement la racine du projet (dépôt Git ou fichier `.autodl-sync`), lit la configuration de synchronisation depuis `.autodl-sync`, et applique des exclusions de sécurité obligatoires. Il gère l'upload de code avec filtrage basé sur Git ou sur des motifs d'exclusion configurés, et le téléchargement des résultats (logs, checkpoints, prédictions) avec des règles de taille, suppression et écrasement configurables. L'authentification SSH est gérée via une clé privée locale, avec un script d'installation de clé publique dédié. Le skill respecte des règles de sécurité strictes : ne jamais exposer la clé privée, ne pas activer la suppression sans configuration explicite, et rapporter le résumé des opérations effectuées. Il est conçu pour être utilisé avec des agents comme Claude Code, Cursor ou Codex.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Synchronisation AutoDL

Utilisez les scripts fournis avec ce skill pour synchroniser votre projet.

Ne construisez pas manuellement des commandes scp ou rsync quand ces scripts peuvent effectuer l'opération demandée.

Découverte du projet

Les scripts de synchronisation déterminent dynamiquement la racine du projet.

Ils préfèrent la racine du dépôt Git. Si le répertoire courant ne se trouve pas dans un dépôt Git, ils recherchent vers le haut un fichier .autodl-sync.

Ne codez pas en dur les chemins locaux du projet.

Configuration du projet

Les paramètres de synchronisation spécifiques au projet sont stockés dans :

<racine-du-projet>/.autodl-sync

La configuration peut définir :

  • l'hôte SSH distant
  • le répertoire de base distant
  • le nom du projet distant
  • un répertoire distant explicite
  • les exclusions d'upload tenant compte de Git ou explicites
  • des exclusions d'upload supplémentaires
  • les téléchargements de résultats sélectionnés ou du projet complet
  • les exclusions de téléchargement, la taille maximale des fichiers, la suppression et le comportement d'écrasement
  • le comportement de rsync

Lisez les paramètres de synchronisation via les scripts fournis plutôt que de dupliquer la logique de configuration.

Upload de code

Lorsque l'utilisateur demande de :

  • synchroniser le code
  • uploader le code
  • déployer le code source actuel
  • mettre à jour la copie AutoDL

exécutez :

scripts/push-code.sh <racine-du-projet>

Si la racine du projet est déjà le répertoire de travail courant, l'argument peut être omis.

Le filtre d'upload applique toujours les exclusions de sécurité obligatoires. En mode auto, il utilise la liste des fichiers suivis par Git et non ignorés lorsque la racine du dépôt contient un fichier .gitignore ; sinon, il utilise les exclusions configurées. Les entrées EXCLUDES_APPEND du projet s'appliquent dans tous les modes.

SYNC_DELETE=true n'est pris en charge que lorsque le mode d'upload résolu est excludes ; le mode liste de fichiers Git ne peut pas identifier en toute sécurité tous les fichiers distants obsolètes et doit échouer plutôt que d'impliquer un miroir de suppression complet.

Téléchargement des résultats

Lorsque l'utilisateur demande de :

  • tirer les résultats d'entraînement
  • télécharger les points de contrôle
  • récupérer les logs
  • récupérer les prédictions
  • synchroniser les sorties d'expérimentation

exécutez :

scripts/pull-results.sh <racine-du-projet>

Les entrées PULL_DIRS sont relatives à REMOTE_DIR. Un tableau vide ne tire rien. PULL_ALL=true tire explicitement tout le projet distant et ne doit pas être combiné avec des PULL_DIRS non vides. Les exclusions de téléchargement, la taille maximale des fichiers, la suppression locale et la protection contre l'écrasement sont indépendantes du filtrage d'upload.

Flux de travail de codage

Lorsque les instructions du projet exigent explicitement une synchronisation après des modifications de code :

  1. Effectuez les modifications du code source demandées.
  2. Exécutez les tests ou validations locales appropriés.
  3. Si la validation réussit, exécutez push-code.sh.
  4. Signalez si la synchronisation a réussi.

Ne démarrez pas automatiquement l'entraînement distant sauf si l'utilisateur demande explicitement une exécution distante.

Authentification SSH

L'authentification AutoDL utilise la clé SSH locale dédiée configurée par le .autodl-sync du projet.

La clé privée doit rester sur la machine locale.

Si l'authentification par clé publique n'a pas encore été configurée pour une nouvelle instance AutoDL, exécutez :

scripts/setup-key.sh <racine-du-projet>

Cette opération peut demander de manière interactive le mot de passe du compte AutoDL une fois afin d'installer la clé publique.

Après la configuration réussie, les opérations push et pull doivent utiliser l'authentification par clé publique.

N'imprimez, ne lisez, n'uploadez, ne copiez ou n'exposez jamais la clé privée SSH.

Sécurité

N'inspectez, n'imprimez, ne copiez ou ne modifiez jamais les clés privées SSH.

Les paramètres de connexion SSH sont lus depuis le .autodl-sync du projet et passés explicitement à ssh et rsync. Les scripts n'ont pas besoin d'une entrée dans ~/.ssh/config.

N'uploadez pas d'identifiants ou de secrets.

Respectez les exclusions et le comportement de synchronisation définis par le .autodl-sync du projet.

N'activez pas la suppression lors de l'upload ou du téléchargement sauf si la configuration du projet le demande explicitement. Après chaque synchronisation, rapportez le résumé des opérations sur les fichiers à l'utilisateur.

Skills associés