Documentation
Demande de jeton de dépôt
Bientôt disponible. Contrat d’API prévu, sujet à changement. Ces fonctions ne sont pas encore offertes en production.
Authentification et chemin
Préfixe : /v1/customer/tenants/{tenantId}/sandboxes/{sandboxId}. Les requêtes utiliseront un jeton d’accès bearer ou une clé API de l’espace de travail. Les droits de bac à sable et de dépôt indiqués sont des permissions, pas des scopes hérités. Une clé all:all fonctionnera aussi, dans les limites des permissions actuelles de son créateur. Le relais SSH utilise son ticket plutôt qu’un jeton bearer.
POST /repository-token
Le champ JSON repository sera obligatoire. Utilisez un owner/name GitHub sans URL ni suffixe .git, d’au plus 140 caractères. Le champ facultatif push vaudra false par défaut. Le bac à sable devra être en cours d’exécution et non expiré. Le dépôt devra être autorisé dans l’installation GitHub App de l’espace de travail. La lecture exigera sandboxes:write et repositories:read. L’écriture exigera sandboxes:write et repositories:write. La clé API devra accorder les deux.
Réponse 200
La réponse retournera repository, username=x-access-token, token, expires_at et permission (read ou write), avec Cache-Control: no-store. Gardez le jeton en mémoire. Il expirera normalement après une heure, selon le champ expires_at fourni par GitHub. Il fonctionnera aussi hors du bac à sable jusqu’à son expiration. L’écriture accordera contents:write, y compris la suppression de branches et d’étiquettes et les versions. Elle n’accordera pas la modification des fichiers de flux de travail. Aucune livraison automatique au bac à sable n’est prévue. N’envoyez jamais le jeton par exec ou dans une URL Git.
Refus
Une requête invalide retournera 400. Les échecs d’authentification et de permission retourneront 401 ou 403. Un code 404 indiquera sandbox_not_found ou repository_not_authorized. Un conflit de bac à sable retournera 409. Trop de tentatives retourneront 429 sandbox_repository_token_rate_limited avec Retry-After: 60. Une erreur interne retournera 500. Un échec GitHub retournera 502 sandbox_repository_token_failed. Une fonction désactivée ou une App non configurée retournera 503 sandbox_repository_tokens_unavailable. Les prérequis manquants du bac à sable retourneront sandboxes_unavailable. Limites prévues : dix tentatives admises par espace de travail et cinq par appelant par minute glissante.