Перейти к основному содержанию
GitHub Personal Access Token (PAT) — это единственное учетное данные, которое открывает доступ ко всем артефактам AgentEye. С одним токеном вы можете загружать Docker-образы, скачивать релизные бинарники и устанавливать Python-пакеты без отдельных логинов для каждого компонента и без обмена общими секретами. Все артефакты AgentEye распространяются из организации GitHub agenteye-enterprise; после предоставления доступа вашей организации каждый разработчик или оператор генерирует и обновляет свой собственный токен, что обеспечивает отслеживаемость и возможность отзыва доступа для каждого пользователя. Установите токен как переменную окружения и учетные данные Docker один раз на машину:
Примечание о пользователе: GHCR игнорирует имя пользователя при docker login и выполняет аутентификацию полностью на основе токена, поэтому подойдет любое непустое значение. В этой документации используется -u x для краткости; манифесты развертывания, создающие Kubernetes image-pull secret, могут использовать более описательное имя пользователя, такое как agenteye-enterprise. Оба варианта приняты.

Вариант A: Классический токен (Рекомендуется)

Классический токен — это наиболее надежный выбор для AgentEye, так как поток docker login и загрузки образов GHCR имеет наиболее широкую и стабильную поддержку классических токенов. Двух областей действия достаточно для всего необходимого (загрузка образов и скачивание релизных ресурсов), поэтому вы аутентифицируетесь один раз и движетесь дальше без возни с реестром. Одна из них, read:packages, является истинно только для чтения; другая, repo, — единственная классическая область действия, предоставляющая доступ к приватным релизным ресурсам, и она намеренно широка — GitHub определяет ее как полный контроль (чтение и запись) приватных репозиториев.

1. Создайте токен

Перейдите в GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic) → Generate new token (classic).
ПолеЗначение
Noteagenteye-<machine-or-team-name> (например agenteye-prod-server)
ExpirationУстановите срок действия в соответствии с вашей политикой безопасности; 90 дней — разумное значение по умолчанию
Примечание о метке: GitHub называет это поле Note для классических токенов и Token name для детализированных токенов. Они служат одной и той же цели: удобочитаемый идентификатор для последующего аудита и отзыва.

2. Выберите области действия

Область действияЗачем она нужна
read:packagesЗагружать Docker-образы из ghcr.io/agenteye-enterprise/ и скачивать ресурсы пакетов
repoЧитать содержимое приватных репозиториев, исходные файлы и релизные ресурсы из agenteye-enterprise/releases. Это широкая область GitHub — полный контроль приватных репозиториев (чтение и запись), а не область только для чтения — это просто единственная классическая область, предоставляющая доступ к приватным релизным ресурсам
Никакие другие области действия не требуются.

3. Сгенерируйте и скопируйте токен

Нажмите Generate token и сразу скопируйте значение; оно отображается только один раз. Сохраните его в вашем менеджере секретов или окружении.

Вариант B: Детализированный токен

Детализированные токены ограничивают доступ к конкретным репозиториям и разрешениям, что делает их наиболее жестким вариантом с принципом наименьших привилегий. Выберите этот путь, если политика безопасности вашей организации требует детализированных токенов.
Примечание: Поддержка детализированных токенов в GHCR менее консистентна, чем для классических токенов. Если docker login или docker pull не работает после выполнения этих шагов, вернитесь к классическому токену (Вариант A).

1. Создайте токен

Перейдите в GitHub → Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token.
ПолеЗначение
Token nameagenteye-<machine-or-team-name> (например agenteye-prod-server)
ExpirationУстановите срок действия в соответствии с вашей политикой безопасности; 90 дней — разумное значение по умолчанию
Resource owneragenteye-enterprise
Repository accessOnly select repositoriesagenteye-enterprise/releases

2. Установите разрешения репозитория

В разделе Permissions → Repository permissions установите:
РазрешениеДоступ
ContentsRead-only
PackagesRead-only
Все остальные разрешения могут оставаться No access.
Примечание: Если образы контейнеров (ghcr.io/agenteye-enterprise/...) опубликованы как пакеты на уровне организации, а не как пакеты, связанные с репозиторием, docker login может завершиться ошибкой с разрешениями только на уровне репозитория. В этом случае добавьте разрешение на уровне организации: Permissions → Organization permissions → Packages: Read-only.

3. Что дает каждое разрешение

РазрешениеИспользуется для
Contents: Read-onlyСкачивания docker-compose.yml, релизных бинарников и Python-пакетов из agenteye-enterprise/releases
Packages: Read-onlyЗагрузки Docker-образов из ghcr.io/agenteye-enterprise/

4. Сгенерируйте и скопируйте токен

Нажмите Generate token и сразу скопируйте значение; оно отображается только один раз. Сохраните его в вашем менеджере секретов или окружении.

Обновление токена

Плановое обновление токенов поддерживает отслеживаемость доступа и ограничивает радиус действия если учетные данные когда-либо утекут. Токены также могут истечь или быть отозваны в любой момент, поэтому обновление — это стандартный способ оставаться аутентифицированным. Чтобы обновить токен:
  1. Сгенерируйте новый токен, используя описанные выше шаги.
  2. Обновите AGENTEYE_TOKEN в вашем окружении или менеджере секретов.
  3. Заново аутентифицируйте Docker: echo $AGENTEYE_TOKEN | docker login ghcr.io -u x --password-stdin
  4. Отзовите старый токен в GitHub → Settings → Developer settings → Personal access tokens, затем откройте подраздел Tokens (classic) или Fine-grained tokens, соответствующий типу токена, и удалите его.

Проверьте ваш токен

Убедитесь, что токен работает перед интеграцией в развертывание, чтобы ошибки аутентификации обнаружились здесь, а не во время развертывания. Каждая команда проверяет одну из областей действия выше:
Успешный docker login подтверждает область действия пакетов; загруженный файл подтверждает область действия содержимого.

Устранение неполадок

СимптомВероятная причинаРешение
docker login возвращает 401Токену не хватает Packages: Read-only (детализированный) или read:packages (классический)Добавьте область действия пакетов и заново сгенерируйте
curl возвращает 404 на исходные URL GitHubТокену не хватает области действия Contents: Read-only или repoДобавьте область действия содержимого и заново сгенерируйте
gh release download возвращает 403Токен не авторизован для agenteye-enterprise/releasesПроверьте, что репозиторий включен в доступ репозитория детализированного токена, или используйте классический токен с областью действия repo
Токен принят, но образы не найденыНа детализированном токене отсутствует разрешение пакета на уровне организацииДобавьте разрешение на уровне организации Packages: Read-only
По вопросам доступа обратитесь в support@exosphere.host.