Vai al contenuto principale
Un Personal Access Token (PAT) di GitHub è la singola credenziale che sblocca ogni artefatto di AgentEye. Con un token puoi scaricare le immagini Docker, ottenere i binari delle release e installare i wheel Python, senza login per componente e senza segreti condivisi da distribuire. Tutti gli artefatti di AgentEye sono distribuiti dall’organizzazione GitHub agenteye-enterprise; una volta che la tua organizzazione ottiene l’accesso, ogni sviluppatore o operatore genera e ruota il proprio token, in modo che l’accesso rimanga verificabile e revocabile per persona. Imposta il token come variabile di ambiente e credenziale Docker una volta per macchina:
Nota su username: GHCR ignora lo username in docker login e autentica interamente dal token, quindi qualsiasi valore non vuoto funziona. Questa documentazione usa -u x per brevità; i manifest di deployment che creano un secret per il pull delle immagini Kubernetes possono usare uno username più descrittivo come agenteye-enterprise. Entrambi sono accettati.

Opzione A: Token Classico (Consigliato)

Un token classico è la scelta più affidabile per AgentEye, perché il flusso di docker login e image-pull di GHCR ha il supporto più ampio e coerente per i token classici. Due scope coprono tutto ciò di cui hai bisogno (pull di immagini e download di asset delle release), quindi ti autentichi una volta e procedi senza risolvere i problemi delle stranezze del registry. Uno di loro, read:packages, è veramente di sola lettura; l’altro, repo, è l’unico scope classico che concede accesso agli asset privati delle release, ed è deliberatamente ampio — GitHub lo definisce come controllo totale (lettura e scrittura) dei repository privati.

1. Crea il token

Vai a GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic) → Generate new token (classic).
CampoValore
Noteagenteye-<machine-or-team-name> (es. agenteye-prod-server)
ExpirationImposta una scadenza appropriata per la tua policy di sicurezza; 90 giorni è un valore predefinito ragionevole
Nota etichetta: GitHub etichetta questo campo Note per i token classici e Token name per i token a grana fine. Servono allo stesso scopo: un identificatore leggibile dall’uomo per il successivo audit e revoca.

2. Seleziona gli scope

ScopePerché è necessario
read:packagesEseguire il pull di immagini Docker da ghcr.io/agenteye-enterprise/ e scaricare asset dei package
repoLeggere i contenuti dei repository privati, i file grezzi e gli asset delle release da agenteye-enterprise/releases. Questo è lo scope ampio di GitHub per il controllo totale dei repository privati (lettura e scrittura), non uno scope di sola lettura — è semplicemente l’unico scope classico che concede accesso agli asset privati delle release
Nessun altro scope è richiesto.

3. Genera e copia il token

Fai clic su Generate token e copia il valore immediatamente; viene mostrato solo una volta. Memorizzalo nel tuo gestore di segreti o nell’ambiente.

Opzione B: Token a Grana Fine

I token a grana fine limitano l’accesso a repository e permessi specifici, rendendoli l’opzione con i minori privilegi più ristretti. Scegli questo percorso quando la policy di sicurezza della tua organizzazione richiede token a grana fine.
Nota: il supporto di GHCR per i token a grana fine è meno coerente rispetto ai token classici. Se docker login o docker pull fallisce dopo aver seguito questi passaggi, torna a un token classico (Opzione A).

1. Crea il token

Vai a GitHub → Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token.
CampoValore
Token nameagenteye-<machine-or-team-name> (es. agenteye-prod-server)
ExpirationImposta una scadenza appropriata per la tua policy di sicurezza; 90 giorni è un valore predefinito ragionevole
Resource owneragenteye-enterprise
Repository accessOnly select repositoriesagenteye-enterprise/releases

2. Imposta i permessi del repository

Sotto Permissions → Repository permissions, imposta:
PermessoAccesso
ContentsRead-only
PackagesRead-only
Tutti gli altri permessi possono rimanere No access.
Nota: Se le immagini del container (ghcr.io/agenteye-enterprise/...) sono pubblicate come package a livello di organizzazione piuttosto che come package collegati al repository, il login Docker potrebbe fallire con permessi limitati al repository. In questo caso, aggiungi un permesso a livello di organizzazione: Permissions → Organization permissions → Packages: Read-only.

3. Cosa concede ogni permesso

PermessoUsato per
Contents: Read-onlyScaricare docker-compose.yml, binari delle release e wheel Python da agenteye-enterprise/releases
Packages: Read-onlyEseguire il pull di immagini Docker da ghcr.io/agenteye-enterprise/

4. Genera e copia il token

Fai clic su Generate token e copia il valore immediatamente; viene mostrato solo una volta. Memorizzalo nel tuo gestore di segreti o nell’ambiente.

Rotazione di un Token

Ruotare i token secondo una pianificazione mantiene l’accesso verificabile e limita il raggio di impatto se una credenziale venisse mai esposta. I token possono anche scadere o essere revocati in qualsiasi momento, quindi la rotazione è il modo ordinario per rimanere autenticati. Per ruotare:
  1. Genera un nuovo token usando i passaggi sopra.
  2. Aggiorna AGENTEYE_TOKEN nel tuo ambiente o gestore di segreti.
  3. Autentica di nuovo Docker: echo $AGENTEYE_TOKEN | docker login ghcr.io -u x --password-stdin
  4. Revoca il vecchio token in GitHub → Settings → Developer settings → Personal access tokens, quindi apri la sottopagina Tokens (classic) o Fine-grained tokens che corrisponde al tipo del token e cancellalo.

Verifica il Tuo Token

Conferma che il token funziona prima di collegarlo a un deployment, in modo che i fallimenti di autenticazione vengono rilevati qui piuttosto che durante il rollout. Ogni comando esercita uno degli scope sopra:
Un docker login riuscito conferma lo scope del package; un file scaricato conferma lo scope dei contents.

Risoluzione dei Problemi

SintomoCausa probabileSoluzione
docker login restituisce 401Token privo di Packages: Read-only (a grana fine) o read:packages (classico)Aggiungi lo scope del package e rigenera
curl restituisce 404 su URL GitHub grezziToken privo dello scope Contents: Read-only o repoAggiungi lo scope dei contents e rigenera
gh release download restituisce 403Token non autorizzato per agenteye-enterprise/releasesVerifica che il repo sia incluso nell’accesso del repository del token a grana fine, o usa un token classico con scope repo
Token accettato ma immagini non trovatePermesso del package a livello di organizzazione mancante sul token a grana fineAggiungi il permesso a livello di organizzazione Packages: Read-only
Per problemi di accesso, contatta support@exosphere.host.