Passer au contenu principal
Un token d’accès personnel (PAT) GitHub est le seul identifiant nécessaire pour accéder à tous les artefacts AgentEye. Avec un seul token, vous pouvez récupérer les images Docker, télécharger les binaires de version et installer les wheels Python, sans connexion par composant ni secrets partagés à faire circuler. Tous les artefacts AgentEye sont distribués depuis l’organisation GitHub agenteye-enterprise ; une fois l’accès accordé à votre organisation, chaque développeur ou opérateur génère et renouvelle son propre token, ce qui garantit un accès traçable et révocable par personne. Définissez le token comme variable d’environnement et identifiant Docker une fois par machine :
Remarque sur le nom d’utilisateur : GHCR ignore le nom d’utilisateur fourni à docker login et s’authentifie entièrement depuis le token, donc n’importe quelle valeur non vide fonctionne. Cette documentation utilise -u x par souci de concision ; les manifestes de déploiement qui créent un secret d’extraction d’image Kubernetes peuvent utiliser un nom d’utilisateur plus descriptif comme agenteye-enterprise. Les deux sont acceptés.

Option A : Token classique (recommandée)

Un token classique est le choix le plus fiable pour AgentEye, car le flux docker login et d’extraction d’image de GHCR offre le support le plus large et le plus cohérent pour les tokens classiques. Deux portées couvrent tout ce dont vous avez besoin (extraction d’images et téléchargement d’assets de version), vous vous authentifiez une seule fois et pouvez avancer sans avoir à résoudre des problèmes de registre. L’une d’elles, read:packages, est véritablement en lecture seule ; l’autre, repo, est la seule portée classique qui accorde l’accès aux assets de version privés, et elle est délibérément large — GitHub la définit comme le contrôle total (lecture et écriture) des dépôts privés.

1. Créer le token

Accédez à GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic) → Generate new token (classic).
ChampValeur
Noteagenteye-<nom-machine-ou-équipe> (ex. : agenteye-prod-server)
ExpirationDéfinissez une expiration adaptée à votre politique de sécurité ; 90 jours est une valeur par défaut raisonnable
Remarque sur l’étiquette : GitHub nomme ce champ Note pour les tokens classiques et Token name pour les tokens à portée fine. Ils ont le même objectif : un identifiant lisible par l’humain pour faciliter les audits et les révocations ultérieurs.

2. Sélectionner les portées

PortéeRaison
read:packagesExtraction des images Docker depuis ghcr.io/agenteye-enterprise/ et téléchargement des assets de packages
repoLecture du contenu des dépôts privés, des fichiers bruts et des assets de version depuis agenteye-enterprise/releases. Il s’agit de la portée GitHub large intitulée « Full control of private repositories » (lecture et écriture), et non d’une portée en lecture seule — c’est simplement la seule portée classique qui accorde l’accès aux assets de version privés
Aucune autre portée n’est requise.

3. Générer et copier le token

Cliquez sur Generate token et copiez la valeur immédiatement ; elle n’est affichée qu’une seule fois. Stockez-la dans votre gestionnaire de secrets ou dans votre environnement.

Option B : Token à portée fine

Les tokens à portée fine limitent l’accès à des dépôts et des permissions spécifiques, ce qui en fait l’option la plus stricte selon le principe du moindre privilège. Choisissez cette voie lorsque la politique de sécurité de votre organisation impose l’utilisation de tokens à portée fine.
Remarque : Le support de GHCR pour les tokens à portée fine est moins cohérent que pour les tokens classiques. Si docker login ou docker pull échoue après avoir suivi ces étapes, revenez à un token classique (Option A).

1. Créer le token

Accédez à GitHub → Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token.
ChampValeur
Token nameagenteye-<nom-machine-ou-équipe> (ex. : agenteye-prod-server)
ExpirationDéfinissez une expiration adaptée à votre politique de sécurité ; 90 jours est une valeur par défaut raisonnable
Resource owneragenteye-enterprise
Repository accessOnly select repositoriesagenteye-enterprise/releases

2. Définir les permissions du dépôt

Sous Permissions → Repository permissions, configurez :
PermissionAccès
ContentsRead-only
PackagesRead-only
Toutes les autres permissions peuvent rester sur No access.
Remarque : Si les images de conteneur (ghcr.io/agenteye-enterprise/...) sont publiées en tant que packages au niveau de l’organisation plutôt que liés à un dépôt, la connexion Docker peut échouer avec des permissions limitées au dépôt. Dans ce cas, ajoutez une permission au niveau de l’organisation : Permissions → Organization permissions → Packages: Read-only.

3. Ce que chaque permission accorde

PermissionUtilisée pour
Contents: Read-onlyTéléchargement de docker-compose.yml, des binaires de version et des wheels Python depuis agenteye-enterprise/releases
Packages: Read-onlyExtraction des images Docker depuis ghcr.io/agenteye-enterprise/

4. Générer et copier le token

Cliquez sur Generate token et copiez la valeur immédiatement ; elle n’est affichée qu’une seule fois. Stockez-la dans votre gestionnaire de secrets ou dans votre environnement.

Renouvellement d’un token

Le renouvellement régulier des tokens maintient l’accès traçable et limite l’impact en cas de fuite d’un identifiant. Les tokens peuvent également expirer ou être révoqués à tout moment, ce qui fait du renouvellement la méthode courante pour rester authentifié. Pour renouveler :
  1. Générez un nouveau token en suivant les étapes ci-dessus.
  2. Mettez à jour AGENTEYE_TOKEN dans votre environnement ou gestionnaire de secrets.
  3. Ré-authentifiez Docker : echo $AGENTEYE_TOKEN | docker login ghcr.io -u x --password-stdin
  4. Révoquez l’ancien token dans GitHub → Settings → Developer settings → Personal access tokens, puis ouvrez la sous-page Tokens (classic) ou Fine-grained tokens correspondant au type du token et supprimez-le.

Vérifier votre token

Confirmez que le token fonctionne avant de l’intégrer dans un déploiement, afin que les échecs d’authentification apparaissent ici plutôt qu’en cours de déploiement. Chaque commande teste l’une des portées mentionnées ci-dessus :
Un docker login réussi confirme la portée packages ; un fichier téléchargé confirme la portée contents.

Résolution des problèmes

SymptômeCause probableCorrection
docker login retourne 401Token sans Packages: Read-only (portée fine) ou read:packages (classique)Ajoutez la portée packages et régénérez
curl retourne 404 sur les URL GitHub brutesToken sans Contents: Read-only ou portée repoAjoutez la portée contents et régénérez
gh release download retourne 403Token non autorisé pour agenteye-enterprise/releasesVérifiez que le dépôt est inclus dans l’accès aux dépôts du token à portée fine, ou utilisez un token classique avec la portée repo
Token accepté mais images introuvablesPermission de package au niveau de l’organisation manquante sur le token à portée fineAjoutez la permission Packages: Read-only au niveau de l’organisation
Pour tout problème d’accès, contactez support@exosphere.host.