Bitbucket では、パイプラインステップ内で @lingo.dev/cli を実行します。インストール後に lingo push を実行すると、変更されたソース文字列が使用中のエンジン経由で翻訳され、結果をコミットするか、Bitbucket 標準の機能でプルリクエストを作成できます。
前提条件
あらかじめ .lingo/config.json をリポジトリにコミットしておく必要があります(engineId、ソース/ターゲットのロケール、files パターンを含む)。あわせて、Lingo.dev API キーをリポジトリ変数として保存してください。設定ファイルの作成方法は CLI クイックスタート を参照してください。
認証#
CLI は LINGO_API_KEY 環境変数を使って認証します。キーは secured なリポジトリ変数として追加し、パイプラインステップから参照できるようにします。
Repository settings > Repository variables で LINGO_API_KEY を追加し、secured に設定してください。
コミットをリポジトリにプッシュしたり、プルリクエストを作成したりするには、パイプラインに Git の書き込み権限も必要です。一般的には、リポジトリ SSH キー(Repository settings > SSH keys)か、Read & write repositories(PR モードでは pull requests も)スコープ付きのリポジトリアクセストークンを使い、それを BB_TOKEN などの secured なリポジトリ変数として保存します。
ワークフロー例#
直接コミット(デフォルト)#
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 で追跡)、実行の完了を待ってから出力をディスクに書き込みます。
プルリクエストモード#
翻訳を main に直接コミットする代わりに専用ブランチへプッシュし、その後 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 | はい | Lingo.dev API キー。secured なリポジトリ変数として保存します。 |
BB_TOKEN | プッシュ/PR の書き込み権限用 | Git がコミットやプルリクエストの作成に使うリポジトリアクセストークン(または SSH キー)。 |
それ以外の設定、つまりソース ロケール、ターゲット ロケール、ファイルパターン、どのエンジンを経由するかは、パイプライン変数ではなく .lingo/config.json に記述します。
デプロイ前の確認#
未翻訳のソース文字列が1つでもあればパイプラインを失敗させるには、lingo check ステップを追加します。
- step:
name: Check translations
script:
- npm install -g @lingo.dev/cli
- lingo check