如何通过GitHub GraphQL API在新建空仓库中创建Commit
在空GitHub仓库中用GraphQL API创建初始提交的方法
当仓库刚创建为空时,确实无法获取到分支ref的ID,也没有可用的head OID。这时候要创建第一个提交,你可以把expectedHeadOid设为全零的Git OID:0000000000000000000000000000000000000000,这个值对应Git中空仓库的初始状态。
具体的createCommitOnBranch mutation调用示例如下:
mutation CreateInitialCommit($input: CreateCommitOnBranchInput!) { createCommitOnBranch(input: $input) { commit { url oid } ref { name id } } }
对应的变量需要包含以下核心内容:
branchName: 指定要创建的分支名(比如main)expectedHeadOid: 固定设为全零OIDmessage: 提交的标题信息fileChanges: 至少添加一个文件内容(初始提交不能为空)
变量示例:
{ "input": { "branchName": "main", "expectedHeadOid": "0000000000000000000000000000000000000000", "message": { "headline": "Initial commit" }, "fileChanges": { "additions": [ { "path": "README.md", "contents": "# My New Repository\n\nThis is the initial commit." } ] } } }
执行这个mutation后,GitHub会自动创建指定的分支,并将你定义的文件添加为第一个提交。之后你就能正常获取到该分支的ref和head OID,用于后续的提交操作了。
内容的提问来源于stack exchange,提问作者Ritik
相关产品推荐
相关产品推荐

