Code hosting integrations

Weblate integrates with code hosting sites in several separate places: repository access, incoming notifications, and pushing translations back. The exact setup depends on whether you use Hosted Weblate or run your own Weblate instance, and on whether Weblate should push directly or create pull requests.

Use this page as a provider-oriented checklist. The individual setting pages remain the canonical reference for setting syntax.

Setup overview

  1. Grant Weblate access to the repository.

  2. Configure Källkodsarkiv so Weblate can clone the repository.

  3. Configure incoming notifications so Weblate pulls changes soon after a push. The repository webhook or app must point to the matching Weblate hook URL, and the project must have Aktivera hooks enabled.

  4. Decide how Weblate should push translations back:

    • Use Git or Mercurial and Push-URL för arkiv to push directly.

    • Use a provider-specific VCS backend, such as GitHub or GitLab, to create pull or merge requests. These backends need API credentials in the Weblate settings.

  5. Optionally set Pusha gren when Weblate should push to a branch in the upstream repository instead of using a fork where supported.

Skicka ändringar från Weblate

Each translation component can have a push URL set up (see Push-URL för arkiv), and in that case Weblate will be able to push changes to the remote repository. Weblate can also be configured to automatically push changes on every commit; this is enabled by default, see Skicka vid incheckning.

If you do not want changes to be pushed automatically, you can push manually under Repository maintenance or using the API via wlc push.

In case you do not want direct pushes by Weblate, there is support for GitHub-pullförfrågningar, GitLab-sammanslagningsförfrågningar, Gitea-pullförfrågningar, Pagure-sammanslagningsförfrågningar, Azure DevOps pull-förfrågningar, or Gerrit review requests reviews. You can activate these by choosing GitHub, GitLab, Gitea, Gerrit, Azure DevOps, or Pagure as Versionshanteringssystem in Komponentkonfiguration.

Overall, following options are available with Git, Mercurial, GitHub, GitLab, Gitea, Pagure, Azure DevOps, Gerrit, Bitbucket Data Center and Bitbucket Cloud:

Önskad inställning

Versionshanteringssystem

Push-URL för arkiv

Pusha gren

Ingen push

Git

tom

tom

Tryck direkt

Git

URL för SSH

tom

Tryck för att separera gren

Git

URL för SSH

Grenens namn

Ingen push

Mercurial

tom

tom

Tryck direkt

Mercurial

URL för SSH

tom

GitHub-pullförfrågan från fork

GitHub-pullförfrågningar

tom

tom

GitHub-pullförfrågan från gren

GitHub-pullförfrågningar

SSH URL [1]

Grenens namn

GitLab-sammanslagningsförfrågan från fork

GitLab-sammanslagningsförfrågningar

tom

tom

GitLab-sammanslagningsbegäran från gren

GitLab-sammanslagningsförfrågningar

SSH URL [1]

Grenens namn

Gitea-sammanslagningsförfrågan från fork

Gitea-pullförfrågningar

tom

tom

Gitea-sammanslagningsbegäran från gren

Gitea-pullförfrågningar

SSH URL [1]

Grenens namn

Pagure-sammanslagningsförfrågan från fork

Pagure-sammanslagningsförfrågningar

tom

tom

Pagure-sammanslagningsbegäran från gren

Pagure-sammanslagningsförfrågningar

SSH URL [1]

Grenens namn

Azure DevOps pull-förfrågan från fork

Azure DevOps pull-förfrågningar

tom

tom

Azure DevOps pull-förfrågan från gren

Azure DevOps pull-förfrågningar

SSH URL [1]

Grenens namn

Gerrit review

Gerrit review requests

URL för SSH

Target branch name (optional)

Bitbucket Data Center pull-begäran från fork

Bitbucket Data Center-pullförfrågningar

tom

tom

Bitbucket Data Center pull-förfrågan från gren

Bitbucket Data Center-pullförfrågningar

SSH URL [1]

Grenens namn

Bitbucket Cloud-pullförfrågan från fork

Bitbucket Cloud-pullförfrågningar

tom

tom

Bitbucket Cloud-pullförfrågan från gren

Bitbucket Cloud-pullförfrågningar

SSH URL [1]

Grenens namn

GitHub

GitHub repository access

HTTPS with personal access token

For a single private repository, HTTPS access with an access token is usually the simplest setup when the provider supports Git over HTTPS. Use the provider-required username and token in Källkodsarkiv.

Configure Push-URL för arkiv only when Weblate should push changes directly or when the chosen workflow requires a push URL, see Skicka ändringar från Weblate.

The token needs read access for cloning and write access for pushing. Provider-specific VCS backends that create pull or merge requests might require separate API credentials.

För att använda denna metod:

  1. Skapa en personlig åtkomsttoken enligt beskrivningen i Skapa en åtkomsttoken för användning i kommandoraden.

  2. Include the token in your repository URL: https://username:token@github.com/owner/repo.git.

This is suitable when you are starting with Weblate or working with a single repository.

SSH with a dedicated user

For setups with multiple repositories, use SSH access with a dedicated code hosting user for Weblate. Add Weblate’s public SSH key to that user, grant the user access to the repositories, and use SSH URLs in Källkodsarkiv, for example git@example.com:group/project.git.

Configure Push-URL för arkiv only when Weblate should push changes directly or when the chosen workflow requires a push URL, see Skicka ändringar från Weblate.

This also avoids provider restrictions on SSH key reuse. Some code hosting sites allow a public SSH key to be added only once, or only to a single user or deploy key entry. Keeping Weblate’s SSH key on a dedicated user lets that user be granted access to multiple repositories without reusing the key in several places.

This keeps personal, project, or API access tokens out of repository URLs. Provider API credentials are still needed when using a provider-specific VCS backend to create pull or merge requests; those credentials are configured separately from the Git repository URL.

On Hosted Weblate, use the hosted weblate user on supported code hosting sites, see Åtkomst till arkiv från Hosted Weblate.

For GitHub, create a dedicated user, for example weblate-bot, and use GitHub SSH URLs for your repositories, for example git@github.com:owner/repo.git.

Denna metod används även för Hosted Weblate, som har en dedikerad weblate-användare för detta ändamål.

Observera

When using GitHub for pull requests, the Pusha gren configuration affects the behavior: if not set, the project is forked and changes are pushed through a fork. If set, changes are pushed to the upstream repository and the chosen branch.

GitHub notifications

Weblate har inbyggt stöd för GitHub.

If you are using Hosted Weblate, the recommended approach is to install the Weblate app. The app delivers GitHub notifications to Hosted Weblate, so you do not need to configure a separate Webhook in GitHub. However, it does not by itself grant Hosted Weblate write access to the repository. To push changes back, you still need to add the Hosted Weblate weblate GitHub user as a collaborator with write access, see Åtkomst till arkiv från Hosted Weblate.

If you are not using the app, add the Weblate webhook in the repository settings (Webhooks) to receive notifications on every push to a GitHub repository, as shown on the image below:

../_images/github-settings.png

Payload URL består av din Weblate-URL med tillägget /hooks/github/. För Hosted Weblate-tjänsten är detta till exempel https://hosted.weblate.org/hooks/github/.

You can leave other values at default settings. Weblate can handle both content types and consumes just the push event.

GitHub-pullförfrågningar

Detta lägger till ett tunt lager ovanpå Git med hjälp av GitHub API för att möjliggöra att översättningsändringar kan skickas som pull-förfrågningar, istället för att skickas direkt till arkivet.

Git pushes changes directly to a repository, while the GitHub backend creates pull requests. The latter is not needed for merely accessing Git repositories.

To create pull requests, select GitHub as Versionshanteringssystem and configure GITHUB_CREDENTIALS. For GitHub.com, use api.github.com as the API host. The token must allow Weblate to read and write repository contents and create pull requests. If Weblate should fork private repositories, the token might also need administration access.

GitLab

GitLab repository access

HTTPS with personal or project access token

For a single private repository, HTTPS access with an access token is usually the simplest setup when the provider supports Git over HTTPS. Use the provider-required username and token in Källkodsarkiv.

Configure Push-URL för arkiv only when Weblate should push changes directly or when the chosen workflow requires a push URL, see Skicka ändringar från Weblate.

The token needs read access for cloning and write access for pushing. Provider-specific VCS backends that create pull or merge requests might require separate API credentials.

For GitLab, the token needs write_repository scope to be able to push changes to the repository. The project access token requires Developer role for pushing.

The URL needs to contain a username. For a personal access token, it is the actual username: https://user:personal_access_token@gitlab.com/example/example.git. For project access tokens it can be a non-blank value: https://example:project_access_token@gitlab.com/example/example.git.

Observera

The rules for using project access tokens have changed between GitLab releases, the non-blank value is the current requirement, but older versions had different expectations (project name, bot user name). Check GitLab documentation matching your version if unsure.

SSH with a dedicated user

For setups with multiple repositories, use SSH access with a dedicated code hosting user for Weblate. Add Weblate’s public SSH key to that user, grant the user access to the repositories, and use SSH URLs in Källkodsarkiv, for example git@example.com:group/project.git.

Configure Push-URL för arkiv only when Weblate should push changes directly or when the chosen workflow requires a push URL, see Skicka ändringar från Weblate.

This also avoids provider restrictions on SSH key reuse. Some code hosting sites allow a public SSH key to be added only once, or only to a single user or deploy key entry. Keeping Weblate’s SSH key on a dedicated user lets that user be granted access to multiple repositories without reusing the key in several places.

This keeps personal, project, or API access tokens out of repository URLs. Provider API credentials are still needed when using a provider-specific VCS backend to create pull or merge requests; those credentials are configured separately from the Git repository URL.

On Hosted Weblate, use the hosted weblate user on supported code hosting sites, see Åtkomst till arkiv från Hosted Weblate.

For GitLab, create a dedicated user and use GitLab SSH URLs, for example git@gitlab.com:group/project.git.

GitLab notifications

Weblate has support for GitLab hooks. Add a project webhook with destination to /hooks/gitlab/ URL on your Weblate installation, for example https://hosted.weblate.org/hooks/gitlab/.

Felsökning

GitLab-sammanslagningsförfrågningar

This adds a thin layer atop Git using the GitLab API to allow pushing translation changes as merge requests instead of pushing directly to the repository.

There is no need to use this to access Git repositories, ordinary Git works the same, the only difference is how pushing to a repository is handled. With Git changes are pushed directly to the repository, while the GitLab backend creates a merge request.

To create merge requests, select GitLab as Versionshanteringssystem and configure GITLAB_CREDENTIALS.

The Pusha gren configuration affects where Weblate pushes changes before opening the merge request. If it is not set, the project is forked and changes are pushed through a fork. If it is set, changes are pushed to the upstream repository and chosen branch.

Gitea, Forgejo, and Codeberg

Gitea, Forgejo, and Codeberg repository access

HTTPS with an access token

For a single private repository, HTTPS access with an access token is usually the simplest setup when the provider supports Git over HTTPS. Use the provider-required username and token in Källkodsarkiv.

Configure Push-URL för arkiv only when Weblate should push changes directly or when the chosen workflow requires a push URL, see Skicka ändringar från Weblate.

The token needs read access for cloning and write access for pushing. Provider-specific VCS backends that create pull or merge requests might require separate API credentials.

SSH with a dedicated user

For setups with multiple repositories, use SSH access with a dedicated code hosting user for Weblate. Add Weblate’s public SSH key to that user, grant the user access to the repositories, and use SSH URLs in Källkodsarkiv, for example git@example.com:group/project.git.

Configure Push-URL för arkiv only when Weblate should push changes directly or when the chosen workflow requires a push URL, see Skicka ändringar från Weblate.

This also avoids provider restrictions on SSH key reuse. Some code hosting sites allow a public SSH key to be added only once, or only to a single user or deploy key entry. Keeping Weblate’s SSH key on a dedicated user lets that user be granted access to multiple repositories without reusing the key in several places.

This keeps personal, project, or API access tokens out of repository URLs. Provider API credentials are still needed when using a provider-specific VCS backend to create pull or merge requests; those credentials are configured separately from the Git repository URL.

On Hosted Weblate, use the hosted weblate user on supported code hosting sites, see Åtkomst till arkiv från Hosted Weblate.

For Hosted Weblate repositories on Codeberg, add the hosted weblate user where write access is needed, see Åtkomst till arkiv från Hosted Weblate.

Gitea notifications

Weblate has support for Gitea webhooks. Add a Gitea Webhook for Push events event with destination to /hooks/gitea/ URL on your Weblate installation, for example https://hosted.weblate.org/hooks/gitea/. This can be done in Webhooks under repository Settings.

Forgejo notifications

Weblate has support for Forgejo webhooks. Add a Forgejo Webhook for Push events event with destination to /hooks/forgejo/ URL on your Weblate installation, for example https://hosted.weblate.org/hooks/forgejo/. This can be done in Webhooks under repository Settings.

Gitea-pullförfrågningar

Added in version 4.12.

This adds a thin layer atop Git using the Gitea API to allow pushing translation changes as pull requests instead of pushing directly to the repository.

There is no need to use this to access Git repositories, ordinary Git works the same, the only difference is how pushing to a repository is handled. With Git changes are pushed directly to the repository, while the Gitea backend creates pull requests.

To create pull requests, select Gitea as Versionshanteringssystem and configure GITEA_CREDENTIALS.

Bitbucket

Bitbucket repository access

HTTPS with an access token

For a single private repository, HTTPS access with an access token is usually the simplest setup when the provider supports Git over HTTPS. Use the provider-required username and token in Källkodsarkiv.

Configure Push-URL för arkiv only when Weblate should push changes directly or when the chosen workflow requires a push URL, see Skicka ändringar från Weblate.

The token needs read access for cloning and write access for pushing. Provider-specific VCS backends that create pull or merge requests might require separate API credentials.

SSH with a dedicated user

For setups with multiple repositories, use SSH access with a dedicated code hosting user for Weblate. Add Weblate’s public SSH key to that user, grant the user access to the repositories, and use SSH URLs in Källkodsarkiv, for example git@example.com:group/project.git.

Configure Push-URL för arkiv only when Weblate should push changes directly or when the chosen workflow requires a push URL, see Skicka ändringar från Weblate.

This also avoids provider restrictions on SSH key reuse. Some code hosting sites allow a public SSH key to be added only once, or only to a single user or deploy key entry. Keeping Weblate’s SSH key on a dedicated user lets that user be granted access to multiple repositories without reusing the key in several places.

This keeps personal, project, or API access tokens out of repository URLs. Provider API credentials are still needed when using a provider-specific VCS backend to create pull or merge requests; those credentials are configured separately from the Git repository URL.

On Hosted Weblate, use the hosted weblate user on supported code hosting sites, see Åtkomst till arkiv från Hosted Weblate.

Hosted Weblate has a dedicated weblate user for Bitbucket access, see Åtkomst till arkiv från Hosted Weblate.

To push directly, use Git or Mercurial with Push-URL för arkiv.

Bitbucket notifications

Weblate has support for Bitbucket webhooks. Add a webhook which triggers upon repository push, with destination to /hooks/bitbucket/ URL on your Weblate installation, for example https://hosted.weblate.org/hooks/bitbucket/.

../_images/bitbucket-settings.png

Bitbucket Data Center-pullförfrågningar

Added in version 4.16.

This adds a thin layer atop Git using the Bitbucket Data Center API to allow pushing translation changes as pull requests instead of pushing directly to the repository.

Varning

Detta stöder inte Bitbucket Cloud API.

There is no need to use this to access Git repositories, ordinary Git works the same, the only difference is how pushing to a repository is handled. With Git changes are pushed directly to the repository, while the Bitbucket Data Center backend creates a pull request.

To create pull requests, select Bitbucket Data Center as Versionshanteringssystem and configure BITBUCKETSERVER_CREDENTIALS.

Bitbucket Cloud-pullförfrågningar

Added in version 5.8.

This adds a thin layer atop Git using the Bitbucket Cloud API to allow pushing translation changes as pull requests instead of pushing directly to the repository.

Varning

Detta skiljer sig från Bitbucket Data Center API.

There is no need to use this to access Git repositories, ordinary Git works the same, the only difference is how pushing to a repository is handled. With Git changes are pushed directly to the repository, while the Bitbucket Cloud backend creates a pull request.

To create pull requests, select Bitbucket Cloud as Versionshanteringssystem and configure BITBUCKETCLOUD_CREDENTIALS.

Azure DevOps

Azure Repos repository access

HTTPS with an access token

For a single private repository, HTTPS access with an access token is usually the simplest setup when the provider supports Git over HTTPS. Use the provider-required username and token in Källkodsarkiv.

Configure Push-URL för arkiv only when Weblate should push changes directly or when the chosen workflow requires a push URL, see Skicka ändringar från Weblate.

The token needs read access for cloning and write access for pushing. Provider-specific VCS backends that create pull or merge requests might require separate API credentials.

Use the HTTPS clone URL shown by Azure Repos for the repository.

SSH with a dedicated user

For setups with multiple repositories, use SSH access with a dedicated code hosting user for Weblate. Add Weblate’s public SSH key to that user, grant the user access to the repositories, and use SSH URLs in Källkodsarkiv, for example git@example.com:group/project.git.

Configure Push-URL för arkiv only when Weblate should push changes directly or when the chosen workflow requires a push URL, see Skicka ändringar från Weblate.

This also avoids provider restrictions on SSH key reuse. Some code hosting sites allow a public SSH key to be added only once, or only to a single user or deploy key entry. Keeping Weblate’s SSH key on a dedicated user lets that user be granted access to multiple repositories without reusing the key in several places.

This keeps personal, project, or API access tokens out of repository URLs. Provider API credentials are still needed when using a provider-specific VCS backend to create pull or merge requests; those credentials are configured separately from the Git repository URL.

On Hosted Weblate, use the hosted weblate user on supported code hosting sites, see Åtkomst till arkiv från Hosted Weblate.

Use the SSH URL shown by Azure Repos for the repository.

Azure Repos notifications

Weblate has support for Azure Repos webhooks. Add a webhook for Code pushed event with destination to /hooks/azure/ URL on your Weblate installation, for example https://hosted.weblate.org/hooks/azure/. This can be done in Service hooks under Project settings.

Azure DevOps pull-förfrågningar

Detta lägger till ett tunt lager ovanpå Git med hjälp av Azure DevOps API för att möjliggöra att översättningsändringar kan skickas som pull-förfrågningar, istället för att skickas direkt till arkivet.

Git pushes changes directly to a repository, while the Azure DevOps backend creates pull requests. The latter is not needed for merely accessing Git repositories.

To create pull requests, select Azure DevOps as Versionshanteringssystem and configure AZURE_DEVOPS_CREDENTIALS.

Pagure

Pagure repository access

HTTPS with an access token

For a single private repository, HTTPS access with an access token is usually the simplest setup when the provider supports Git over HTTPS. Use the provider-required username and token in Källkodsarkiv.

Configure Push-URL för arkiv only when Weblate should push changes directly or when the chosen workflow requires a push URL, see Skicka ändringar från Weblate.

The token needs read access for cloning and write access for pushing. Provider-specific VCS backends that create pull or merge requests might require separate API credentials.

SSH with a dedicated user

For setups with multiple repositories, use SSH access with a dedicated code hosting user for Weblate. Add Weblate’s public SSH key to that user, grant the user access to the repositories, and use SSH URLs in Källkodsarkiv, for example git@example.com:group/project.git.

Configure Push-URL för arkiv only when Weblate should push changes directly or when the chosen workflow requires a push URL, see Skicka ändringar från Weblate.

This also avoids provider restrictions on SSH key reuse. Some code hosting sites allow a public SSH key to be added only once, or only to a single user or deploy key entry. Keeping Weblate’s SSH key on a dedicated user lets that user be granted access to multiple repositories without reusing the key in several places.

This keeps personal, project, or API access tokens out of repository URLs. Provider API credentials are still needed when using a provider-specific VCS backend to create pull or merge requests; those credentials are configured separately from the Git repository URL.

On Hosted Weblate, use the hosted weblate user on supported code hosting sites, see Åtkomst till arkiv från Hosted Weblate.

Pagure notifications

Weblate has support for Pagure hooks. Add a webhook with destination to /hooks/pagure/ URL on your Weblate installation, for example https://hosted.weblate.org/hooks/pagure/. This can be done in Activate Web-hooks under Project options:

../_images/pagure-webhook.png

Pagure-sammanslagningsförfrågningar

Added in version 4.3.2.

This adds a thin layer atop Git using the Pagure API to allow pushing translation changes as merge requests instead of pushing directly to the repository.

There is no need to use this to access Git repositories, ordinary Git works the same, the only difference is how pushing to a repository is handled. With Git changes are pushed directly to the repository, while the Pagure backend creates a merge request.

To create merge requests, select Pagure as Versionshanteringssystem and configure PAGURE_CREDENTIALS.

Other workflows

Gitee repository access

HTTPS with an access token

For a single private repository, HTTPS access with an access token is usually the simplest setup when the provider supports Git over HTTPS. Use the provider-required username and token in Källkodsarkiv.

Configure Push-URL för arkiv only when Weblate should push changes directly or when the chosen workflow requires a push URL, see Skicka ändringar från Weblate.

The token needs read access for cloning and write access for pushing. Provider-specific VCS backends that create pull or merge requests might require separate API credentials.

SSH with a dedicated user

For setups with multiple repositories, use SSH access with a dedicated code hosting user for Weblate. Add Weblate’s public SSH key to that user, grant the user access to the repositories, and use SSH URLs in Källkodsarkiv, for example git@example.com:group/project.git.

Configure Push-URL för arkiv only when Weblate should push changes directly or when the chosen workflow requires a push URL, see Skicka ändringar från Weblate.

This also avoids provider restrictions on SSH key reuse. Some code hosting sites allow a public SSH key to be added only once, or only to a single user or deploy key entry. Keeping Weblate’s SSH key on a dedicated user lets that user be granted access to multiple repositories without reusing the key in several places.

This keeps personal, project, or API access tokens out of repository URLs. Provider API credentials are still needed when using a provider-specific VCS backend to create pull or merge requests; those credentials are configured separately from the Git repository URL.

On Hosted Weblate, use the hosted weblate user on supported code hosting sites, see Åtkomst till arkiv från Hosted Weblate.

Gitee notifications

Weblate has support for Gitee webhooks. Add a WebHook for Push event with destination to /hooks/gitee/ URL on your Weblate installation, for example https://hosted.weblate.org/hooks/gitee/. This can be done in WebHooks under repository Management.

Gerrit review requests

Gerrit support adds a thin layer atop Git using the git-review tool to allow pushing translation changes as Gerrit review requests, instead of pushing them directly to the repository.

The optional Pusha gren setting selects the target branch for the Gerrit review. Leave it empty to use Arkivgren. Use the short branch name, such as main; Weblate and git-review push the review to refs/for/<branch> automatically. Gerrit push options can be appended after % in either setting, for example main%topic=l10n. Gerrit interprets these options as the configured Weblate Gerrit account and applies its own permissions.

The Gerrit documentation has the details on the configuration necessary to set up such repositories. There is no separate code hosting credential setting for this backend.

Docker credentials

For Docker installations, code hosting API credentials can also be provided through environment variables, see Inloggningsuppgifter för kodhostingsajter.