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:

  1. Direkte Commits in Branches, wenn Inhaltsänderungen gepusht werden
  2. Pull Requests für Branches bei Übersetzungsaktualisierungen

Nach Abschluss dieser Anleitung werden Sie:

  1. Automatisierte Lokalisierung einrichten, die durch Code-Pushes ausgelöst wird;
  2. Sichere Authentifizierung mithilfe von Repository-Variablen konfigurieren;
  3. Zwischen direkten Commits oder Pull-Request-Workflows wählen;
  4. 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 settingsRepository variables und fügen Sie dann Ihre Übersetzungs-Engine-Zugangsdaten hinzu:

Für Nutzer direkter LLM-APIs:

  • Variablenname: OPENAI_API_KEY oder ANTHROPIC_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:

  1. Gehen Sie zu Repository-EinstellungenZugriffstokenRepository-Zugriffstoken erstellen
  2. Gewähren Sie folgende Berechtigungen:
    • Lese- und Schreibzugriff auf Repositories
    • Lese- und Schreibzugriff auf Pull Requests
  3. Fügen Sie das Token als Repository-Variable hinzu:
    • Variablenname: BB_TOKEN
    • Variablenwert: Ihr Bitbucket-Zugriffstoken

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-Nutzer
  • OPENAI_API_KEY oder ANTHROPIC_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 verwenden
  • OPENAI_API_KEY — Ihr OpenAI API-Schlüssel, falls Sie die rohe LLM-API verwenden
  • ANTHROPIC_API_KEY — Ihr Anthropic API-Schlüssel, falls Sie die rohe LLM-API verwenden
  • LINGODOTDEV_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)