【问题标题】:Updating a file for a quick-pull using github cli使用 github cli 更新文件以进行快速拉取
【发布时间】:2022-01-06 20:06:29
【问题描述】:

目前在 github UI 中,用户可以在单个操作中编辑文件并创建新分支。这也可以通过 github api 使用如下方式完成:

curl 'https://github.com/<my_org>/<my_repo>/tree-save/master/<path_to_file>' \
  -H 'content-type: application/x-www-form-urlencoded' \
  --data-raw 'authenticity_token=<generated_token>&filename=<filename>&new_filename=<filename>&content_changed=true&value=<new_contents_of_file>&message=Updated+file+in+my+repo&placeholder_message=Update+<filename>&description=&commit-choice=quick-pull&target_branch=<new_branch_name>&quick_pull=master&guidance_task=&commit=<target_commit_checksum>&same_repo=1&pr='

我希望能够使用 github cli* (gh) 执行相同的操作。我尝试使用以下命令:

gh api <my_org>/<my_repo>/tree-save/master/<path_to_file> -F "filename=<filename>" -F ...

gh api repos/<my_org>/<my_repo>/contents/<path_to_file> -F "filename=<filename>" -F ...

对于这两种情况(以及这些选项的许多变体),我得到了 404** 回复。任何想法我做错了什么? github cli是否甚至允许上述curl中允许的功能?

* 对于那些好奇的人,我想使用 CLI,因为它如何处理身份验证并且它是无状态的。我无法生成要使用的令牌,就像上面的 curl 一样。而且,由于多个问题,我也无法在本地克隆 repo。

** 我可以使用简单的 GET 命令(上面的第二个不带“-F”标志的命令)很好地检索文件

【问题讨论】:

    标签: github-api github-cli


    【解决方案1】:

    阅读文档,然后通过更改凭据进行验证后,这似乎是权限问题。显然,出于安全原因,如果使用了不符合所需权限的令牌,则会返回 404 而不是 403。

    有趣的是,我仍然可以通过浏览器使用上面的 curl。所以,现在我需要弄清楚为什么 gh cli 令牌与我的用户没有相同的权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-16
      • 1970-01-01
      • 2021-07-07
      • 1970-01-01
      相关资源
      最近更新 更多