lokalise/Pull from Lokalise

GitHub action to download translation files from Lokalise TMS to your GitHub repository in the form of a pull request.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jun 30, 2026
License
Apache 2.0

Pinned Snippet

workflow.ymlSHA-pinned
uses: lokalise/lokalise-pull-action@95afae3fac9dd28db1ff4887a63b1f76cbee714d # v5.3.0

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
api_tokenAPI token for Lokalise with read/write permissionsyes
project_idProject ID for Lokaliseyes
base_langBase language (e.g., en, fr_FR)noen
translations_pathPaths to translation filesnolocales
file_formatFormat of the translation files (e.g., json). Find all supported file formats at https://developers.lokalise.com/reference/api-file-formatsnojson
file_extCustom file extension(s) to use when searching for translation files. You can pass either a single string (e.g. json) or multiple extensions as newline-separated values (YAML block). By default, the extension is inferred from the file_format value. However, for certain formats (e.g., json_structured) or bundles (e.g., iOS with .strings and .stringsdict), this parameter allows specifying one or more extensions manually to ensure proper file matching.no""
additional_paramsAdditional parameters for Lokalise API on pull. Must be a valid JSON or YAML. Find all supported options at https://developers.lokalise.com/reference/download-filesno""
temp_branch_prefixPrefix for the temp branch to create pull requestnolok
always_pull_baseBy default, changes in the base language translation files are ignored. Set this to true to include base language translations in the PR.nofalse
flat_namingUse flat naming convention (true/false). If true, expects files like locales/en.json instead of locales/en/file.jsonnofalse
skip_include_tagsSkip setting the include-tags argument during download. This will download all translation keys for the specified format, regardless of tags.nofalse
skip_original_filenamesSkips setting the --original-filenames and --directory-prefix arguments during download. By default, the action enables --original-filenames=true and sets a directory-prefix to /. When --original-filenames is set to false, all translation keys are exported into a single file per language, and --directory-prefix has no effect.nofalse
pr_labelsComma-separated list of labels to apply to the created pull requestno""
pr_titleTitle of the pull request. If not provided, defaults to "Lokalise translations update".noLokalise translations update
pr_bodyBody of the pull request. If not provided, defaults to "This PR updates translations from Lokalise."noThis PR updates translations from Lokalise.
pr_reviewersComma-separated list of GitHub usernames to assign as reviewers for the pull request.no""
pr_teams_reviewersComma-separated list of team slugs within the organization to assign as reviewers for the pull request.no""
pr_draftCreate PR as draftnofalse
pr_assigneesComma-separated list of assignees for the PRno""
max_retriesMaximum number of retries on rate limit and other retryable errorsno3
sleep_on_retryNumber of seconds to sleep before retryingno1
http_timeoutTimeout for HTTP calls (in seconds)no120
download_timeoutTimeout for the whole download operation (in seconds)no600
async_modeUse async mode for translations downloadnofalse
async_poll_initial_waitNumber of seconds to wait before polling the async download process for the first timeno1
async_poll_max_waitTimeout for polling the async download processno120
os_platformTarget platform for the binary (linux_amd64, linux_arm64, mac_amd64, mac_arm64). If not set, the action will auto-detect based on the runner.no""
git_user_nameGit username to set in git config. If not provided, defaults to GitHub actor.no""
git_user_emailGit email to set in git config. If not provided, uses "<username>@users.noreply.github.com".no""
git_commit_messageGit commit message used. If not provided, defaults to "Translations update".noTranslations update
git_sign_commitsUse `git commit -S` (requires signing to be configured in the workflow)nofalse
custom_github_tokenOptional GitHub token to use for API operations instead of the default GITHUB_TOKEN. Useful for custom permissions or elevated scopes.no""
override_branch_nameOptional static branch name to use instead of auto-generating one. Useful when you want to reuse the same PR.no""
override_base_branchOverride base branch to use for the Lokalise PR (defaults to triggering branch)no""
force_pushForce push changes to the remote branch (overwrites history). Use with caution. Defaults to false.nofalse
post_process_commandShell command to run after downloading translation files and before committing. Useful for custom replacements, cleanup, or any post-processing logic. Still experimental.no""
post_process_strictWhether to fail the action if the post_process_command returns a non-zero exit codenofalse
namedescription
created_branchBranch used for the PR (new temp branch on manual runs, PR head on PR runs)
pr_existsTrue if a PR exists after this run (created or updated)
pr_createdTrue if a brand-new PR was created by this run
pr_updatedTrue if an existing PR was updated by this run
pr_actionEither 'created', 'updated', or 'none'
pr_numberPull request number (created or existing)
pr_idPull request ID (created or existing)
pr_urlPull request URL (created or existing)