10

我想gh-pages从 Github API 创建分支。是否有捷径可寻?

如果没有,我将如何从 Github API 创建一个孤立分支?

4

2 回答 2

2

可以通过以下方式做到这一点:

  1. 检查分支是否已经存在
  2. 如果不是,则创建一个引用 git 的空树 SHA的提交
  3. 然后为该提交创建一个引用

您可以从https://github.com/noflo/noflo-github/blob/master/components/CreateOrphanBranch.coffee#L31找到一些 CoffeeScript 示例代码

这是以这种方式创建的一个这样的分支:https ://github.com/the-domains/example.net/tree/branch_1403616324001

更新:此方法仅在 git 存储库具有先前的孤立分支时才有效。如果它是通过 GitHub 的 API 使用该auto_init选项创建的新创建的存储库,它将不起作用。我已经就此联系了 GitHub。

于 2014-06-24T13:31:26.557 回答
1

您可以通过 API 的Create a Reference部分创建分支。但是,我不确定您是否可以使用它创建一个孤立的分支,或者 API 是否会阻止它。

事实上,用 curl 测试它是行不通的:

curl -X POST -u sigmavirus24 https://api.github.com/repos/sigmavirus24/github3.py/github3.py/refs -d '{"ref":"refs/heads/orphaned"}'
curl -X POST -u sigmavirus24 https://api.github.com/repos/sigmavirus24/github3.py/github3.py/refs -d '{"ref":"refs/heads/orphaned", "sha":""}'

两者都返回:

{"message": "Reference update failed"}

我尝试了使用和不使用Content-Type标题(-H "Content-Type: application/json"),但都没有工作。

从那个小实验来看,您似乎无法通过 API 创建孤立分支。

于 2013-09-02T13:44:53.743 回答