В Bitbucket запустите @lingo.dev/cli в шаге пайплайна: установите его, выполните lingo push, чтобы перевести изменённые строки через ваш движок, затем зафиксируйте результаты или откройте pull request с помощью встроенных инструментов Bitbucket.
Предварительные требования
Вам понадобится зафиксированный файл .lingo/config.json (с engineId, исходной и целевыми локалями и паттернами files), а также API-ключ Lingo.dev, сохранённый как переменная репозитория. Чтобы создать конфигурацию, см. быстрый старт CLI.
Аутентификация#
CLI аутентифицируется через переменную окружения LINGO_API_KEY. Добавьте ключ как защищённую переменную репозитория, чтобы она была доступна шагам пайплайна:
Настройки репозитория > Переменные репозитория — добавьте LINGO_API_KEY и отметьте её как защищённую.
Чтобы пайплайн мог фиксировать коммиты или открывать pull request в репозитории, ему нужен доступ на запись в Git. Стандартные варианты: SSH-ключ репозитория (Настройки репозитория > SSH-ключи) или токен доступа к репозиторию с областью Чтение и запись репозиториев (и pull request для PR-режима), сохранённый как защищённая переменная репозитория — например BB_TOKEN.
Примеры рабочего процесса#
Прямой коммит (по умолчанию)#
Установите CLI, выполните lingo push и зафиксируйте переведённые файлы обратно в ветку:
image: node:22
pipelines:
branches:
main:
- step:
name: Translate
script:
- npm install -g @lingo.dev/cli
- lingo push
- git config user.name "lingo-bot"
- git config user.email "support@lingo.dev"
- git add .
- git diff --cached --quiet || git commit -m "chore: update translations"
- git push origin HEAD:mainlingo push переводит только то, что изменилось с последнего запуска (это отслеживается в .lingo/lock.json), дожидается завершения и записывает результаты на диск.
Режим pull request#
Отправьте переводы в отдельную ветку вместо коммита в main, а затем откройте pull request с помощью инструментов Bitbucket:
image: node:22
pipelines:
branches:
main:
- step:
name: Translate
script:
- npm install -g @lingo.dev/cli
- lingo push
- git config user.name "lingo-bot"
- git config user.email "support@lingo.dev"
- git checkout -b lingo/translations
- git add .
- git diff --cached --quiet || git commit -m "feat: update translations"
- git push origin lingo/translations
# Open a PR from lingo/translations into main via the Bitbucket UI or APIМонорепозиторий#
Запустите CLI из поддиректории, если конфигурация находится внутри рабочего пространства. CLI разрешает .lingo/config.json относительно рабочей директории:
image: node:22
pipelines:
branches:
main:
- step:
name: Translate
script:
- cd apps/web
- npm install -g @lingo.dev/cli
- lingo pushПеременные пайплайна#
| Переменная | Обязательно | Описание |
|---|---|---|
LINGO_API_KEY | Да | API-ключ Lingo.dev. Сохраните как защищённую переменную репозитория. |
BB_TOKEN | Для записи при push/PR | Токен доступа к репозиторию (или SSH-ключ), который Git использует для коммитов или открытия pull request. |
Всё остальное — исходная локаль, целевые локали, паттерны файлов и движок для маршрутизации — хранится в .lingo/config.json, а не в переменных пайплайна.
Проверка перед деплоем#
Добавьте шаг lingo check, чтобы пайплайн завершался с ошибкой, если у какой-то исходной строки нет перевода:
- step:
name: Check translations
script:
- npm install -g @lingo.dev/cli
- lingo check