Bitbucket Pipelines
KI-Übersetzung mit Bitbucket Pipelines und Lingo.dev CI/CD
Die Lingo.dev Bitbucket Pipelines Integration ist eine sichere Open-Source-CI/CD-Integration, die neue Inhalte automatisch lokalisiert und verhindert, dass unvollständige Übersetzungen in die Produktion gelangen. Sie erstellt Pull Requests oder committet direkt in Ihren Branch, abhängig von den Workflow-Anforderungen Ihres Teams.
Sie implementiert außerdem eine automatische Konfliktauflösung durch Rebasing, sodass Ihre Übersetzungen mit Ihrem Code synchronisiert bleiben, ohne manuelles Eingreifen.
Die Integration unterstützt mehrere Workflow-Szenarien:
- Direkte Commits in Branches, wenn Inhaltsänderungen gepusht werden
- Pull Requests für Branches bei Übersetzungsaktualisierungen
Nach Abschluss dieser Anleitung werden Sie:
- Automatisierte Lokalisierung einrichten, die durch Code-Pushes ausgelöst wird;
- Sichere Authentifizierung mithilfe von Repository-Variablen konfigurieren;
- Zwischen direkten Commits oder Pull-Request-Workflows wählen;
- Verstehen, wie kontinuierliche Lokalisierung in Ihren bestehenden Prozess passt.
Legen wir los!
Voraussetzungen
Repository-Setup
Ihr Repository muss die Lingo.dev CLI mit einer gültigen i18n.jsonDatei konfiguriert haben. Falls Sie dies noch nicht eingerichtet haben, absolvieren Sie zuerst den CLI-Schnellstart.
Schritt 1. Authentifizierungs-Setup
Die Lingo.dev Bitbucket Integration benötigt Zugriff auf Ihre Übersetzungs-Engine und Ihr Repository. Die Authentifizierung erfolgt über Repository-Variablen, die Ihre Zugangsdaten sicher aufbewahren.
API-Key hinzufügen
Navigieren Sie zu Ihren Repository-Einstellungen Repository settings → Repository variables und fügen Sie dann Ihre Übersetzungs-Engine-Zugangsdaten hinzu:
Für Nutzer direkter LLM-APIs:
- Variablenname:
OPENAI_API_KEYoderANTHROPIC_API_KEY - Variablenwert: Ihr API-Key vom jeweiligen Anbieter
Für Lingo.dev Engine-Nutzer:
- Variablenname:
LINGODOTDEV_API_KEY - Variablenwert: Ihr Projekt-API-Key von lingo.dev/app
Bitbucket Access Token hinzufügen (für Pull-Request-Modus)
Wenn Sie den Pull-Request-Modus verwenden möchten, erstellen Sie ein Zugriffstoken:
- Gehen Sie zu Repository-Einstellungen → Zugriffstoken → Repository-Zugriffstoken erstellen
- Gewähren Sie folgende Berechtigungen:
- Lese- und Schreibzugriff auf Repositories
- Lese- und Schreibzugriff auf Pull Requests
- Fügen Sie das Token als Repository-Variable hinzu:
- Variablenname:
BB_TOKEN - Variablenwert: Ihr Bitbucket-Zugriffstoken
- Variablenname:
Schritt 2. Workflow erstellen
Erstellen oder aktualisieren Sie Ihre bitbucket-pipelines.yml Datei mit dieser Basiskonfiguration:
script:
- pipe: lingodotdev/lingo.dev:main
Diese Konfiguration verwendet die Lingo.dev-Pipe und führt die Übersetzungs-Engine automatisch aus.
Erforderliche Berechtigungen
Bitbucket Pipelines benötigt Zugriff auf Repository-Variablen und Git-Operationen:
Repository-Variablen:
LINGODOTDEV_API_KEY— Erforderlich für Lingo.dev Engine-NutzerOPENAI_API_KEYoderANTHROPIC_API_KEY— Erforderlich für Raw-LLM-API-Nutzer
Für den Pull-Request-Modus:
BB_TOKEN— Erforderlich zum Erstellen und Verwalten von Pull Requests
Zugriffstoken-Berechtigungen (bei Verwendung des Pull-Request-Modus):
- Lese- und Schreibzugriff auf Repositories — Zugriff auf und Änderung von Repository-Inhalten
- Lese- und Schreibzugriff auf Pull Requests — Erstellen und Verwalten von Pull Requests
Diese Berechtigungen ermöglichen es der Integration, Ihre Inhalte zu lesen, Übersetzungen zu generieren und Ihr Repository mit den lokalisierten Inhalten zu aktualisieren.
Schritt 3. Workflow-Modus auswählen
Die Lingo.dev Bitbucket-Integration unterstützt zwei Betriebsmodi, abhängig von den Code-Review-Anforderungen Ihres Teams.
Direkter Commit-Modus (Standard)
Die Integration committet Übersetzungen direkt in Ihren Branch:
script:
- pipe: lingodotdev/lingo.dev:main
Dieser Modus eignet sich am besten für:
- Einzelentwickler oder kleine Teams
- Feature-Branches, die vor dem Mergen überprüft werden
- Projekte, bei denen Übersetzungsaktualisierungen keine separate Überprüfung erfordern
Pull-Request-Modus
Die Integration erstellt Pull Requests für Übersetzungsaktualisierungen:
script:
- pipe: lingodotdev/lingo.dev:main
variables:
LINGODOTDEV_PULL_REQUEST: "true"
Erforderliche Einrichtung für den Pull-Request-Modus
Repository-Variablen:
Sowohl LINGODOTDEV_API_KEY als auch BB_TOKEN müssen als Repository-Variablen konfiguriert werden.
Anforderungen an das Zugriffstoken:
Ihr BB_TOKEN muss Lese- und Schreibberechtigungen sowohl für Repositories als auch für Pull Requests enthalten.
Hinweis: Die Variable BB_TOKEN ist bei Verwendung des Pull-Request-Modus erforderlich.
Dieser Modus eignet sich am besten für:
- Teams mit strengen Code-Review-Anforderungen
- Projekte, bei denen Übersetzungsänderungen eine separate Genehmigung benötigen
- Workflows, die eine explizite Überprüfung aller Änderungen erfordern
Schritt 4. Workflow-Szenarien
Lingo.dev Bitbucket Integration passt sich verschiedenen Entwicklungs-Workflows an. Das Verständnis dieser Szenarien hilft Ihnen, die richtige Konfiguration für Ihr Team zu wählen.
Szenario 1: Feature-Branch-Aktualisierungen (direkte Commits)
Auslöser: Push zu Feature-Branches Aktion: Committet Übersetzungsaktualisierungen direkt in den Feature-Branch
image:
name: atlassian/default-image:2
pipelines:
branches:
feat/*:
- step:
name: Run i18n
script:
- pipe: lingodotdev/lingo.dev:main
Ablauf: Inhaltsänderungen werden in den Feature-Branch gepusht → Integration committet Übersetzungen in denselben Branch
Dies hält Übersetzungsaktualisierungen innerhalb des Feature-Branches und stellt sicher, dass Übersetzungen zusammen mit den ursprünglichen Änderungen überprüft werden.
Szenario 2: Pull Requests für Aktualisierungen (Pull-Request-Modus)
Auslöser: Push zu einem beliebigen konfigurierten Branch Aktion: Erstellt Pull Request mit Übersetzungsaktualisierungen
image:
name: atlassian/default-image:2
pipelines:
branches:
feat/*:
- step:
name: Run i18n
script:
- pipe: lingodotdev/lingo.dev:main
variables:
LINGODOTDEV_API_KEY: "${MY_LINGODOTDEV_API_KEY}" # or OPENAI_API_KEY/ANTHROPIC_API_KEY
BB_TOKEN: "${MY_ACCESS_TOKEN}"
LINGODOTDEV_PULL_REQUEST: "true"
LINGODOTDEV_PULL_REQUEST_TITLE: "feat: update translations"
LINGODOTDEV_COMMIT_MESSAGE: "feat: update translations"
LINGODOTDEV_WORKING_DIRECTORY: "apps/web"
LINGODOTDEV_PROCESS_OWN_COMMITS: "true"
Ablauf: Inhaltsänderungen werden in den Branch gepusht → Integration erstellt Pull Request mit Übersetzungen
Dies ermöglicht separate Reviews für Übersetzungsaktualisierungen.
Erweiterte Konfiguration
Passen Sie das Verhalten der Integration mithilfe zusätzlicher Variablen an:
Beispiel mit Lingo.dev Engine:
image:
name: atlassian/default-image:2
pipelines:
branches:
feat/*:
- step:
name: Run i18n
script:
- pipe: lingodotdev/lingo.dev:main
variables:
LINGODOTDEV_API_KEY: "${MY_LINGODOTDEV_API_KEY}"
BB_TOKEN: "${MY_ACCESS_TOKEN}"
LINGODOTDEV_PULL_REQUEST: "true"
LINGODOTDEV_PULL_REQUEST_TITLE: "feat: update translations"
LINGODOTDEV_COMMIT_MESSAGE: "feat: update translations"
LINGODOTDEV_WORKING_DIRECTORY: "apps/web"
LINGODOTDEV_PROCESS_OWN_COMMITS: "true"
Beispiel mit roher LLM-API:
image:
name: atlassian/default-image:2
pipelines:
branches:
feat/*:
- step:
name: Run i18n
script:
- pipe: lingodotdev/lingo.dev:main
variables:
OPENAI_API_KEY: "${MY_OPENAI_API_KEY}" # or ANTHROPIC_API_KEY
BB_TOKEN: "${MY_ACCESS_TOKEN}"
LINGODOTDEV_PULL_REQUEST: "true"
LINGODOTDEV_PULL_REQUEST_TITLE: "feat: update translations"
LINGODOTDEV_COMMIT_MESSAGE: "feat: update translations"
LINGODOTDEV_WORKING_DIRECTORY: "apps/web"
LINGODOTDEV_PROCESS_OWN_COMMITS: "true"
Konfigurationsoptionen:
LINGODOTDEV_API_KEY— Ihr Lingo.dev Engine API-Schlüssel, falls Sie Lingo.dev Engine verwendenOPENAI_API_KEY— Ihr OpenAI API-Schlüssel, falls Sie die rohe LLM-API verwendenANTHROPIC_API_KEY— Ihr Anthropic API-Schlüssel, falls Sie die rohe LLM-API verwendenLINGODOTDEV_PULL_REQUEST— Pull Request erstellen statt direktem Commit (Standard:false)LINGODOTDEV_PULL_REQUEST_TITLE— Benutzerdefinierter Pull-Request-Titel (Standard:feat: update translations via @lingodotdev)LINGODOTDEV_COMMIT_MESSAGE— Benutzerdefinierte Commit-Nachricht (Standard:feat: update translations via @lingodotdev)LINGODOTDEV_WORKING_DIRECTORY— Integration in einem Unterverzeichnis ausführen (Standard:.)LINGODOTDEV_PROCESS_OWN_COMMITS— Commits verarbeiten, die von dieser Integration erstellt wurden (Standard:false)BB_TOKEN— Bitbucket-Zugriffstoken (erforderlich für Pull-Request-Modus)