All Collections
Integrations
Development
Bitbucket
Bitbucket: Auto-syncing and Management
Bitbucket: Auto-syncing and Management

Syncing content between Transifex and GitLab

Antonis Mylonas avatar
Written by Antonis Mylonas
Updated over a week ago

Syncing existing resources with Bitbucket

Suppose your localization process is ongoing, and your projects/resources have been established in Transifex. In that case, you can still leverage the Bitbucket integration to synchronize the content already present in Transifex with the files residing in Bitbucket. All you need to do is execute the following steps:

  • Locate the TX resources in your selected Bitbucket repository and branch.

  • Note the path of each resource in the Bitbucket repository,

  • Keep the following details separately:

    • Repository name, e.g., transifex/Bitbucket-Transifex-Integration

    • Branch name, e.g., master

    • The full path name of the resource, e.g., source/product_A.json

  • Construct a temporary text using the following pattern:

    bitbucket#{full_repo_name}#{branch_name}#{source_file_path}

    e.g.

    bitbucket#transifex/Bitbucket-Transifex-Integration#master#source/product_A.json

  • Generate a hash for this text using the md5 algorithm, e.g., 4e18446ca9ed69e98e4846aca5a1d816 (Tip: You can use an online generator, like

  • Edit each resource's settings and add the generated hash as a slug.


Syncing Content from Bitbucket

Syncing content from Bitbucket to Transifex happens either upon saving or updating the integration settings on the project level or automatically whenever new content is found on Bitbucket (after a commit on the branch associated with the integration).

When a syncing process is initiated, you will see that syncing is in progress from within the integration’s UI. Go to your Project settings > integrations tab under Bitbucket and click the Manage link. Remember that this process may take some time, depending on the number and size of the synced files.

The integration page will display an activity log of all syncing operations with Bitbucket. These logs allow you to identify any potential issues with particular files that may have failed to sync or could not be located.


Syncing content from Transifex

If the file format of a resource allows, a project maintainer or administrator can directly edit it in Transifex's editor, regardless of whether the resource came from a GitHub repository. This feature allows for quick corrections, such as fixing spelling or punctuation mistakes. Any changes made in Transifex are automatically synchronized back to GitHub, either as a new pull request (PR) or a direct commit to the original branch. Consequently, developers are relieved from the manual task of retrieving the updated resources from Transifex and pushing them to GitHub.

The integration's activity log will record this action.


Commit and PR Messages from Transifex on Bitbucket

Any commits or PRs opening due to the integration happening from a Bitbucket user are called Transifex-localization-platform[bot].


Checking the status of the Bitbucket integration

Sometimes, changes are happening on the Bitbucket side that can affect the Bitbucket integration and the synchronization with Transifex.

More specifically, if the configuration file in the Bitbucket repository is corrupt or absent or the linked branch is deleted, Transifex and Bitbucket will stop exchanging content. The owner of the integration, i.e., the project maintainer or administrator who installed it in a specific project, will receive notifications regarding the integration's health status in two ways:

  • When viewing the integration’s UI, the status indicator for the connection with the associated Bitbucket repository shifts from green to red.

  • The integration owner receives an automated email notification that prompts them to investigate the cause of the problem in the Bitbucket integration.


💡Tip

Looking for more help? Get support from our Transifex Community Forum!

Find answers or post to get help from Transifex Support and our Community.

Did this answer your question?