opencode-gitlab-rotate-plugin
v0.1.0
Published
OpenCode plugin for rotating GitLab PAT credentials across gitlab/* models
Maintainers
Readme
opencode-gitlab-rotate-plugin
Чистый npm-пакет с plugin для OpenCode, который ротирует GitLab PAT для моделей gitlab/*.
Что умеет
- хранит пул GitLab PAT в
~/.config/opencode/gitlab-rotate.json - хранит runtime state в
~/.config/opencode/gitlab-rotate-state.json - пишет события ротации в
~/.config/opencode/gitlab-rotate-events.log - перехватывает GitLab transport через
auth.loader -> fetch - даёт login-style flow через
opencode auth login -p gitlab -m "GitLab PAT rotation"
Attribution
Этот пакет собран как отдельная реализация под GitLab PAT rotation, но при проектировании я ориентировался на уже существующие plugin-паттерны из экосистемы OpenCode.
Основные референсы:
opencode-antigravity-auth: идеи account pool, cooldown и auth-driven transportopencode-wakatime: event-driven observabilityopencode-antigravity-quota: packaging и структура plugin-проекта
Подробности вынесены в NOTICE.
Установка пакета
npm install opencode-gitlab-rotate-pluginЛокально для разработки:
npm install
npm run buildПодключение в OpenCode
Скопируй dist/index.js в локальный каталог plugins OpenCode или подключи пакет тем способом, который используешь в своей конфигурации OpenCode.
Минимально нужен plugin-файл и зависимость proper-lockfile.
Также в ~/.config/opencode/opencode.json должны быть GitLab options:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"gitlab": {
"options": {
"instanceUrl": "https://gitlab.com",
"featureFlags": {
"duo_agent_platform_agentic_chat": true,
"duo_agent_platform": true
}
}
}
}
}Настройка токенов
opencode auth login -p gitlab -m "GitLab PAT rotation"Доступные действия:
Add tokenReplace all tokensRemove tokenShow statusReset state
Публикация
Перед публикацией проверь имя пакета в npm и при необходимости поменяй поле name в package.json.
Публикация:
npm login
npm publishПакет уже очищен от локальных артефактов:
- в публикацию не входят auth-файлы
- в публикацию не входят
gitlab-rotate.json,gitlab-rotate-state.json,gitlab-rotate-events.log - в публикацию не входят локальные архивы и временные файлы
Примечания
- plugin рассчитан на PAT rotation, не на OAuth refresh
401и403помечают токен как disabled429отправляет токен в cooldown- для CLI используй
opencode auth login -p gitlab, а неopencode auth login gitlab
