🎉 v1.0

Get started

  • Welcome
  • Documentation
  • Pricing
    Soon

Tools

  • I18n MCP
  • CLI
  • CI/CD Integrations
  • Compiler
    Alpha
  • Connect Your Engine

Resources

  • Languages
  • LLM Models
  • Guides

Company

  • Enterprise
  • CareersHiring!
Dashboard

Continuous Localization

  • How it works
  • Setup
  • Advanced patterns

Platforms

  • GitHub
  • BitBucket
  • GitLab

Bitbucket Pipelines

Max PrilutskiyMax Prilutskiy·Updated 1 day ago·1 min read

The Lingo.dev Bitbucket integration uses an official Pipe to run the localization pipeline. It commits translations directly or creates pull requests, with automatic conflict resolution through rebasing.

Prerequisites

Complete the CI/CD Setup first. You need a working i18n.json and LINGODOTDEV_API_KEY stored as a repository variable.

Authentication#

Add your API key as a repository variable: Repository settings > Repository variables.

For pull request mode, also create a Bitbucket access token:

  1. Repository settings > Access tokens > Create Repository Access Token
  2. Grant scopes: Read & write repositories, Read & write pull requests
  3. Add as repository variable named BB_TOKEN

Workflow examples#

Direct commit (default)#

yaml
image:
  name: atlassian/default-image:2

pipelines:
  branches:
    main:
      - step:
          name: Translate
          script:
            - pipe: lingodotdev/lingo.dev:main

Pull request mode#

yaml
image:
  name: atlassian/default-image:2

pipelines:
  branches:
    main:
      - step:
          name: Translate
          script:
            - pipe: lingodotdev/lingo.dev:main
              variables:
                LINGODOTDEV_PULL_REQUEST: "true"

Feature branch with full configuration#

yaml
image:
  name: atlassian/default-image:2

pipelines:
  branches:
    feat/*:
      - step:
          name: Translate
          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"

Configuration variables#

VariableDefaultDescription
LINGODOTDEV_API_KEYRequiredLingo.dev API key
BB_TOKENRequired for PR modeBitbucket access token
LINGODOTDEV_PULL_REQUESTfalseCreate pull request instead of direct commit
LINGODOTDEV_PULL_REQUEST_TITLEfeat: update translations via @lingodotdevCustom PR title
LINGODOTDEV_COMMIT_MESSAGEfeat: update translations via @lingodotdevCustom commit message
LINGODOTDEV_WORKING_DIRECTORY.Working directory for monorepos
LINGODOTDEV_PROCESS_OWN_COMMITSfalseProcess commits made by this integration

Next Steps#

GitHub Actions
Set up GitHub Actions integration
GitLab CI/CD
Set up GitLab CI/CD integration
Advanced Patterns
Translation checks, merge conflicts, workflow selection
Connect Your Engine
Route CI/CD translations through your engine

Was this page helpful?