Lingo.dev Bitbucket Integration

Die Lingo.dev Bitbucket Pipelines Integration ist eine sichere, Open-Source-CI/CD-Integration, die automatisch neue Inhalte lokalisiert und verhindert, dass unvollständige Übersetzungen in die Produktionsumgebung gelangen. Sie erstellt Pull Requests oder Commits direkt in Ihren Branch, abhängig von den Workflow-Anforderungen Ihres Teams.

Sie implementiert auch automatische Konfliktlösung durch Rebasing, sodass Ihre Übersetzungen ohne manuellen Eingriff mit Ihrem Code synchronisiert bleiben.

Die Integration unterstützt mehrere Workflow-Szenarien:

  1. Direkte Commits in Branches, wenn Inhaltsänderungen gepusht werden
  2. Pull Requests für Branches zur Aktualisierung von Übersetzungen

Nach Abschluss dieser Anleitung werden Sie:

  1. Automatisierte Lokalisierung einrichten, die durch Code-Pushes ausgelöst wird;
  2. Sichere Authentifizierung mittels Repository-Variablen konfigurieren;
  3. Zwischen direkten Commits oder Pull-Request-Workflows wählen;
  4. Verstehen, wie kontinuierliche Lokalisierung in Ihren bestehenden Prozess passt.

Lassen Sie uns beginnen!

Voraussetzungen

Repository-Einrichtung

Ihr Repository muss mit der Lingo.dev CLI konfiguriert sein und eine gültige i18n.json-Datei enthalten. Wenn Sie dies noch nicht eingerichtet haben, absolvieren Sie zuerst den CLI-Schnellstart.

Schritt 1. Authentifizierungseinrichtung

Die Lingo.dev Bitbucket Integration benötigt Zugriff auf Ihre Übersetzungs-Engine und Ihr Repository. Die Authentifizierung erfolgt über Repository-Variablen, die Ihre Anmeldedaten sicher aufbewahren.

Hinzufügen Ihres API-Schlüssels

Navigieren Sie zu Ihren Repository-EinstellungenRepository-Variablen und fügen Sie dann Ihre Übersetzungs-Engine-Anmeldedaten hinzu:

Für Nutzer der rohen LLM-API:

  • Variablenname: OPENAI_API_KEY oder ANTHROPIC_API_KEY
  • Variablenwert: Ihr API-Schlüssel vom jeweiligen Anbieter

Für Lingo.dev Engine-Nutzer:

  • Variablenname: LINGODOTDEV_API_KEY
  • Variablenwert: Ihr Projekt-API-Schlüssel von lingo.dev/app

Hinzufügen eines Bitbucket-Zugriffstokens (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 diese Berechtigungen:
    • Lesen & Schreiben von Repositories
    • Lesen & Schreiben von 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 grundlegenden Konfiguration:

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 Nutzer der reinen LLM-API

Für Pull-Request-Modus:

  • BB_TOKEN — Erforderlich für das Erstellen und Verwalten von Pull-Requests

Zugriffstoken-Bereiche (bei Verwendung des Pull-Request-Modus):

  • Lese- & Schreibzugriff auf Repositories — Zugriff auf und Änderung von Repository-Inhalten
  • Lese- & Schreibzugriff auf Pull-Requests — Erstellen und Verwalten von Pull-Requests

Diese Berechtigungen ermöglichen der Integration, Ihre Inhalte zu lesen, Übersetzungen zu generieren und Ihr Repository mit den lokalisierten Inhalten zu aktualisieren.

Schritt 3. Workflow-Modus auswählen

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 erforderlich, wenn der Pull-Request-Modus verwendet wird.

Dieser Modus eignet sich am besten für:

  • Teams mit strengen Code-Review-Anforderungen
  • Projekte, bei denen Übersetzungsänderungen separate Genehmigung benötigen
  • Workflows, die eine explizite Überprüfung aller Änderungen erfordern

Schritt 4. Workflow-Szenarien

Die Lingo.dev Bitbucket-Integration passt sich an verschiedene Entwicklungs-Workflows an. Das Verständnis dieser Szenarien hilft Ihnen, die richtige Konfiguration für Ihr Team auszuwählen.

Szenario 1: Feature-Branch-Updates (Direkte Commits)

Auslöser: Push auf 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 Updates (Pull-Request-Modus)

Auslöser: Push auf jeden 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}" # oder 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 Integrationsverhalten mit zusätzlichen 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 direkter 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}" # oder 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, wenn Sie die Lingo.dev Engine verwenden
  • OPENAI_API_KEY — Ihr OpenAI API-Schlüssel, wenn Sie die direkte LLM-API verwenden
  • ANTHROPIC_API_KEY — Ihr Anthropic API-Schlüssel, wenn Sie die direkte 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 — Von dieser Integration erstellte Commits verarbeiten (Standard: false)
  • BB_TOKEN — Bitbucket-Zugriffstoken (erforderlich für Pull-Request-Modus)