设置Weblate创建拉取请求

时间:2019-02-10 10:49:36

标签: github weblate

我想使用Weblate帮助在GitHub上开发的开源项目进行本地化。我没有维护者存储库的写访问权,必须提交拉动请求以进行改进。看起来好像Weblate supports creating pull requests,但我无法正常工作。

到目前为止我所做的:

  1. 运行Weblate 3.4(在Docker容器中)并设置SSH密钥以访问GitHub。
  2. 将Docker环境变量WEBLATE_GITHUB_USERNAME设置为我的GitHub用户名。
  3. 在Docker容器中打开一个shell会话,并运行hub clone octocat/Spoon-Knife(同时以rootweblate用户身份运行;这要求输入用户名和密码并克隆存储库;令牌为重新启动Docker容器后也仍然存在)
  4. 设置一个Weblate项目。
  5. 在项目中设置一个组件。
    • 源代码存储库=上游GitHub存储库(git@github.com:maintainer / repo)
    • 存储库分支= master
    • 存储库推送URL =我分叉的GitHub存储库(git@github.com:me / repo)
    • 版本控制系统:GitHub (编辑:2019年2月10日添加)

编辑(2019年2月10日): 在发现必须在创建组件时将“ GitHub”指定为版本控制系统之后,Weblate现在尝试将更改推送到派生并创建拉取请求。集线器工具的身份验证不起作用。当我在“存储库维护”中单击“推送”时,出现错误。在堆栈跟踪中的某处出现此错误:

'github.com username: github.com password for (never stored): ' 'Error forking repository: Unauthorized (HTTP 401)\nRequires authentication'

我强烈怀疑Python无法打开~/.config/hub。该文件肯定存在。也许这与Python如何解决〜有关?

1 个答案:

答案 0 :(得分:0)

我自己弄清楚了:

问题在于,当Weblate调用GitHub集线器程序时,“〜/ .config / hub”被解析为“ /root/.config/hub”。但是,用户Weblate按weblate的身份运行,因此它无权访问根目录的主目录。

我已通过将“ /home/weblate/.config/hub”硬编码为集线器配置文件的位置并确保在该位置创建配置文件来解决此问题。