GithubAPI-创建分支?
v1、v2和v3的“Repos”文档中似乎缺少它……如何使用Github API创建分支?v3 API提到 URL中的ref必须格式化为头/分支,而不仅仅是分支GithubAPI-创建分支?,git,github,Git,Github,v1、v2和v3的“Repos”文档中似乎缺少它……如何使用Github API创建分支?v3 API提到 URL中的ref必须格式化为头/分支,而不仅仅是分支 例如,为名为sc/featureA的分支获取数据的调用是: 创建引用 参数 完全限定引用的名称字符串(即:refs/heads/master)。如果它不是以“refs”开头并且至少有两个斜杠,它将被拒绝 要设置此引用的SHA1值的字符串 因此,应该可以通过在ref参数中命名一个新的“/heads”来创建一个新分支 使用的服务(发出HT
例如,为名为sc/featureA
的分支获取数据的调用是:
创建引用
参数
完全限定引用的名称字符串(即:refs/heads/master)。如果它不是以“refs”开头并且至少有两个斜杠,它将被拒绝
要设置此引用的SHA1值的字符串
因此,应该可以通过在ref参数中命名一个新的“/heads
”来创建一个新分支
使用的服务(发出HTTP请求)发送到
- 找到要从中分支的修订版。
在Github本身上或通过执行Hull的GET请求:
https://api.github.com/repos///git/refs/heads
- 复制修订哈希
- 从Hull向
发送POST请求https://api.github.com/repos///git/refs
以下内容作为POST
正文:
{
"ref": "refs/heads/<NEW-BRANCH-NAME>",
"sha": "<HASH-TO-BRANCH-FROM>"
}
{
“ref”:“ref/heads/”,
“sha”:”
}
(显然,将
替换为您希望新分支拥有的名称,将
替换为您希望分支的修订版的哈希)
您需要使用HTTP basic并填写Github凭据才能访问Github API
- 按下发送按钮,您的分支将被创建
当我们在GitHub中创建用于创建分支的API时,这是所有学生的一个常见问题
{
"message": "Not Found",
"documentation_url": "https://developer.github.com/v3"
}
用于在Github中创建存储库期间解决此错误
首先在中创建个人令牌
Github=>setting=>developerOption=>generatePersonalToken
在gitLogin bu Oauth期间,当您传递客户端id时
scope=repo(因为当您使用令牌或
(任何事情)
之后:点击API(获取)
https://api.github.com/repos///git/refs/heads
你得到的回答是
Response => {
[
{
"ref": "refs/heads/<already present branch name for ref>",
"node_id": "jkdhoOIHOO65464edg66464GNLNLnlnnlnlna==",
"url": " https://api.github.com/repos/<your login name>/<Your Repository Name>/git/refs/heads/<already present branch name for ref>",
"object": {
"sha": "guDSGss85s1KBih546465kkbNNKKbkSGyjes56",
"type": "commit",
"url": " https://api.github.com/repos/<your login name>/<Your Repository Name>/git/commits/guDSGss85s1KBih546465kkbNNKKbkSGyjes56"
}
}
]
}
并以JSON格式发送数据,如下所示:
{
"ref": "refs/heads/<new branch name>",
"sha": "4661616ikgohlKIKHBK4634GRGSD66"
}
{
“ref”:“ref/heads/”,
“sha”:“4661616IkgohlkhBK4634GRGSD66”
}
然后通过API在GITHUB中创建一个分支
以及Delete分支只命中Delete(first)api的过程
对于私人回购协议而言,这一点很难做到,因此回答了同样情况下的问题:
对于私有回购,您需要通过“用户名”和“密码”或OAUTH对请求进行身份验证。以下步骤
在github开发者设置中查找您帐户的个人访问令牌
使用基本分支名称发出经过身份验证的GET请求
从GET请求的响应中,使用jq
过滤提交SHA
将新的分支名称发布到github,并在Post请求中将SHA作为主体提交到github
在行动中:
TOKEN=<GITHUB-AUTH-TOKEN-VALUE>
Previous_branch_name=ABC
New_branch_name=XYZ
SHA=$(curl -H "Authorization: token $TOKEN" https://api.github.com/repos/<REPO>/git/refs/heads/$Previous_branch_name | jq -r '.object.sha')
curl -X POST -H "Authorization: token $TOKEN" \
-d "{\"ref\": \"refs/heads/$New_branch_name\",\"sha\": \"$SHA\"}" \ "https://api.github.com/repos/<REPO>/git/refs"
令牌=
以前的分支机构名称=ABC
新分支机构名称=XYZ
SHA=$(curl-H“授权:令牌$token”https://api.github.com/repos//git/refs/heads/$Previous_branch_name|jq-r'.object.sha')
curl-X POST-H“授权:令牌$token”\
-d“{\“ref\”:\“refs/heads/$New\u branch\u name\”,\“sha\”:\“$sha\”}”https://api.github.com/repos//git/refs"
添加到@VonC-answer,这里是工作片段
导入请求
headers={'Authorization':“Token”+'YOUR_Token_HERE'}
url=”https://api.github.com/repos///git/refs/heads"
branchs=requests.get(url,headers=headers).json()
分支,sha=分支[-1]['ref'],分支[-1]['object']['sha']
res=requests.post('https://api.github.com/repos///git/refs,json={
“ref”:“refs/heads/newbranch”,
“沙”:沙
},页眉=页眉)
打印(存储内容)
很抱歉,在我发布我的答案后,我意识到您想要分支回购。我正在尝试将其集成到管理应用程序中;假设我可以使用API来管理Github项目。参考资料,放在什么地方。谢谢我试过了(使用)。使用ref的分支名称(不要忘记将refs/heads/
放在它前面)和commit to branch from的散列作为sha。发布后,我得到了201个“创建”回复。所以我可以验证这是否有效@太酷了!希望您不介意,我将您的添加内容编辑为一个实心块引号。@Aditya对于创建分支,它应该是相同的(除非分支API自我8年前编写此代码以来有所改进)。您的代码看起来不错,我正在尝试实现相同的效果。请您详细解释一下您的代码,好吗?当我执行代码时,它抛出一个错误,如下所述:注意:我能够获取SHA值。400错误请求错误请求您的浏览器发送了一个此服务器无法理解的请求。
curl:(56)Recv失败:通过peerAssuming重置连接,显示您正在从shell或某些工具(如postman等)发出请求以处理该请求。如果您收到400个错误请求,请检查POST请求中的URL。要创建分支机构,您需要在POST请求中提供新分支机构名称和旧分支机构的SHA in数据。很好的实用说明。向上投票。
{
"message": "Not Found",
"documentation_url": "https://developer.github.com/v3"
}
or
Response => {
[
{
"ref": "refs/heads/<already present branch name for ref>",
"node_id": "jkdhoOIHOO65464edg66464GNLNLnlnnlnlna==",
"url": " https://api.github.com/repos/<your login name>/<Your Repository Name>/git/refs/heads/<already present branch name for ref>",
"object": {
"sha": "guDSGss85s1KBih546465kkbNNKKbkSGyjes56",
"type": "commit",
"url": " https://api.github.com/repos/<your login name>/<Your Repository Name>/git/commits/guDSGss85s1KBih546465kkbNNKKbkSGyjes56"
}
}
]
}
https://api.github.com/repos/Bhupi2508/Test/git/refs...
{
"ref": "refs/heads/<new branch name>",
"sha": "4661616ikgohlKIKHBK4634GRGSD66"
}
TOKEN=<GITHUB-AUTH-TOKEN-VALUE>
Previous_branch_name=ABC
New_branch_name=XYZ
SHA=$(curl -H "Authorization: token $TOKEN" https://api.github.com/repos/<REPO>/git/refs/heads/$Previous_branch_name | jq -r '.object.sha')
curl -X POST -H "Authorization: token $TOKEN" \
-d "{\"ref\": \"refs/heads/$New_branch_name\",\"sha\": \"$SHA\"}" \ "https://api.github.com/repos/<REPO>/git/refs"