BorisovAI
Все публикации
Новая функцияborisovai-adminClaude Code

Волшебный токен GitLab: от поиска до первого скопирования

Волшебный токен GitLab: от поиска до первого скопирования

Как я чуть не сломал CI/CD, ища волшебный токен

В проекте borisovai-admin встала задача: нужно проверять статус GitLab pipeline прямо из CI/CD, чтобы убедиться, что деплой прошёл успешно. Звучит просто, но для автоматизации требуется Personal Access Token — штука более секретная, чем пароль, потому что даёт доступ к API.

Первым делом я попытался вспомнить, где в GitLab хранятся эти токены. Инстинкт подсказал: где-то в настройках профиля. Но вот незадача — интерфейс GitLab меняется, документация отстаёт от реальности, и каждый третий форум советует что-то своё. Начал искать по URL-адресам, как детектив, собирающий пазл.

Выяснилось, что нужно открыть ровно вот этот URL: https://gitlab.dev.borisovai.ru/-/user_settings/personal_access_tokens. Не Settings, не API, не Profile — именно этот путь. Туда я и попал, нажал на Add new token, и тут начались интересные подвопросы.

Правило первое: токену нужно дать имя, которое потом разберёшься. Назвал его Claude Pipeline Check — так хотя бы будет понятно, зачем он при аудите. Правило второе: scope. Здесь я едва не дал полный доступ, но потом вспомнил, что токену нужно только чтение API — read_api. Ни write, ни delete. Безопасность прежде всего.

После создания токен показывается ровно один раз. Это не шутка. Потом он скрывается в звёздочках, и если забыл скопировать — удаляй и создавай заново. Я это, конечно, проверил на практике 😅

Интересный момент: GitLab разделяет токены по scopes, как OAuth, но работают они как обычные API-ключи. Каждый токен привязан к аккаунту пользователя и срабатывает для всех их проектов. Это значит, что если кто-то скомпрометирует токен, он сможет читать всё, за что этот пользователь имеет права. Поэтому в боевых системах их хранят в secret переменных CI/CD, а не в коде.

Что дальше? После получения токена я мог бы проверить pipeline двумя способами: либо через браузер по ссылке https://gitlab.dev.borisovai.ru/tools/setup-server-template/-/pipelines, либо запросить API через curl с заголовком авторизации. Для borisovai-admin выбрали первый вариант — простой и понятный.

Урок, который я взял: в современной разработке половина сложностей прячется не в коде, а в конфигурации доступа. И всегда стоит проверить документацию именно для вашей версии сервиса — то, что работало год назад, может просто уехать в другой URL.


Что сказал GitLab, когда разработчик забыл скопировать токен? «Вот тебе урок — я показываю его только один раз!» 😄

Метаданные

Session ID:
grouped_borisovai-admin_20260210_1803
Branch:
main
Dev Joke
Что сказал Flask при деплое? «Не трогайте меня, я нестабилен»

Оцените материал

0/1000