Сервис Repo поддерживает аутентификацию пользователей при работе с репозиториями в Git и моделями и датасетами в IDE.
Repo поддерживает два способа аутентификации для доступа к репозиториям по протоколу HTTPS:
по персональным ключам доступа;
по API-ключам для сервисного аккаунта.
Получите персональные ключи доступа, если планируете управлять репозиторием самостоятельно. Или создайте сервисный аккаунт и получите API-ключ к нему, если планируете организовать командную работу.
API-ключ также используется при работе с моделями и датасетами с помощью IDE.
Перед началом работы выполните действия по настройке среды в зависимости от выбранного способа аутентификации.
Для поддержки этого вида аутентификации необходимо развернуть приложение repo-auth-helper из репозитория Cloud.ru.
Создайте персональный ключ доступа.
Установите приложение repo-auth-helper.
Скачайте repo-auth-helper:
curl -LO https://github.com/cloud-ru/evo-repo-auth-helper/releases/download/
Распакуйте архив:
tar -xzf
Скопируйте бинарный файл в системную папку:
Для Mac OS/Linux:
Выполните последовательность команд:
sudo cp /repo-auth-helper /usr/local/bin/repo-auth-helper
sudo chmod +x /usr/local/bin/repo-auth-helper
Для Windows:
Скопируйте файл repo-auth-helper.exe в системную папку, указанную в PATH.
Добавьте в .gitconfig фрагмент кода:
Для Mac OS/Linux:
[credential "repo.cloud.ru"]helper = /usr/local/bin/repo-auth-helper
Для Windows:
[credential "repo.cloud.ru"]helper = <path to repo-auth-helper.exe>
Где <path to repo-auth-helper.exe> — путь к приложению в вашей локальной конфигурации Git.
(Опционально) Если возникает конфликт менеджеров аутентификации и repo-auth-helper.exe не запускается, отключите стандартное приложение Git Credential Manager для repo.cloud.ru:
[credential "repo.cloud.ru"]helper = "" # disabling standard tools for this hosthelper = /usr/local/bin/repo-auth-helper
Приложение запросит Key ID (логин) и Key Secret (пароль) ключа доступа при первом обращении к репозиторию.
Для поддержки этого вида аутентификации необходимо стандартное приложение Git Credential Manager.
Создайте сервисный аккаунт.
При создании сервисного аккаунта в разделе Роли для платформ и сервисов в подразделе Evolution → Evolution Repo укажите роль. Для изменения репозитория выберите роль repo-developer или repo-maintainer.
Создайте API-ключ для сервисного аккаунта.
При создании в списке Сервисы выберите Evolution Repo.
(Опционально) Используйте в качестве клиента Git Credential Manager. Для этого добавьте в .gitconfig фрагмент кода:
[credential "repo.cloud.ru"]helper = manager
Менеджер аутентификации будет использовать API-ключ для аутентификации при первом обращении к репозиторию.
Создайте сервисный аккаунт.
При создании сервисного аккаунта в разделе Роли для платформ и сервисов в подразделе Evolution → Evolution Repo укажите роль. Для изменения репозитория выберите роль repo-developer или repo-maintainer.
Создайте API-ключ для сервисного аккаунта.
При создании в списке Сервисы выберите Evolution Repo.
Используйте API-ключ в качестве токена при действиях в IDE.
С персональными ключами доступа используется Bearer-аутентификация. В качестве клиента используется приложение repo-auth-helper. Приложение запрашивает у пользователя Key ID (логин) и Key Secret (пароль) ключа доступа и обращается к IAM-серверу для получения уникального JWT-токена. Затем приложение использует полученный JWT-токен для аутентификации.
Этот метод более безопасен за счет ограниченного срока жизни токена и возможности отозвать персональные ключи в любой момент. Рекомендуется использовать его для долгосрочной интеграции.
Чтобы выполнить аутентификацию по персональным ключам:
При первом обращении к репозиторию по HTTPS repo-auth-helper.exe запросит Key ID (логин) и Key Secret (пароль) ключа доступа.
Введите ваши персональные ключи для получения токена доступа.
В дальнейшем ключи запрашиваются по истечении срока жизни JWT-токена.
Аутентификация по API-ключам для сервисного аккаунта выполняется с помощью Git Credential Manager (GCM). В данном способе используется Basic-аутентификация.
Этот метод прост в настройке, использует стандартные инструменты и подходит для быстрой интеграции. Аутентификация по API-ключу тажке используется для работы через IDE.
Чтобы выполнить аутентификацию по API-ключам для сервисного аккаунта:
При первом обращении к репозиторию по HTTPS менеджер аутентификации запросит логин и пароль.
Укажите ваши учетные данные:
В качестве логина (Username) укажите свое имя пользователя или адрес электронной почты.
В качестве пароля (Password) введите ваш API-ключ.
Ключи по умолчанию сохраняются в системном хранилище после первого ввода и в дальнейшем используются автоматически.
Выполните команду:
Для Mac OS:
security delete-generic-password -s "repo.cloud.ru"
Для Window:
cmdkey /delete:repo.cloud.ru
Для Linux:
secret-tool clear repo.cloud.ru credentials
При следующем обращении к сервису будут запрошены новые.