如何通过Weblate API创建GitHub合并请求至dev分支?
解决方案
Weblate的API确实没有提供直接创建GitHub合并请求(PR)的功能,因为PR属于代码托管平台的操作,而非翻译管理范畴。你可以在现有的GitHub Action流程中,直接调用GitHub REST API来完成PR创建,具体步骤如下:
1. 在GitHub Action中添加PR创建步骤
在你调用Weblate API完成commit和push的步骤之后,新增一个步骤使用GitHub官方的actions/github-script工具调用API创建PR:
- name: 创建翻译更新PR到dev分支 uses: actions/github-script@v6 with: script: | // 替换head为Weblate推送翻译的目标分支(比如weblate/xxx-translations) const prResponse = await github.rest.pulls.create({ owner: context.repo.owner, repo: context.repo.repo, head: 'weblate-translations', base: 'dev', title: '[自动更新] Weblate翻译内容同步', body: '此PR包含Weblate自动生成的最新翻译内容,已完成commit和推送。' }); console.log(`PR已创建:${prResponse.data.html_url}`); github-token: ${{ secrets.YOUR_GITHUB_TOKEN }} // 使用你已配置的GitHub token
2. 关键注意事项
- 分支名匹配:确保
head参数是Weblate实际推送翻译的分支名称(Weblate默认会创建以自身命名的分支,比如weblate-项目名-组件名)。 - 权限验证:你的GitHub token需要具备
repo权限,确保能在目标仓库中创建PR。 - 避免重复PR:可以在调用API前先检查是否已有相同head/base的开放PR,避免重复创建(可通过
github.rest.pulls.list接口查询)。
这种方式完全兼容你现有的自动化流程,不需要依赖Weblate的额外功能,利用已配置的GitHub token即可完成PR创建。
内容的提问来源于stack exchange,提问作者klaucode
相关产品推荐
相关产品推荐

