提交新内容实际上是一个多步骤的过程,使用它们的低级和强大的 API
实际上,从 2021 年 9 月(9 年后)开始,它不是,而是使用 GraphQL GitHub API v4(而不是GitHub API v3)
看:
新的 GraphQL 突变createCommitOnBranch使在存储库的分支中添加、更新和删除文件变得更加容易。
与现有的Git 数据库 REST API相比,这个新的 API 提供了一种更简单的方式来提交更改。
使用新的createCommitOnBranch突变,您无需在创建提交之前手动创建 blob 和树。这允许您在单个 API 调用中添加、更新或删除多个文件。
使用新 API 编写的提交会自动进行 GPG 签名,并在 GitHub UI中标记为已验证。GitHub 应用程序可以使用突变直接或代表用户创作提交。
$ curl https://api.github.com/graphql \
-s -H "Authorization: bearer $TOKEN"
--data @- <<GRAPHQL | jq \
'.data.createCommitOnBranch.commit.url[0:56]'
{
"query": "mutation (\$input: CreateCommitOnBranchInput!) {
createCommitOnBranch(input: \$input) { commit { url } } }",
"variables": {
"input": {
"branch": {
"repositoryNameWithOwner": "demo-githubs/test",
"branchName": "main"
},
"message": {"headline": "Hello from GraphQL!" },
"fileChanges": {
"additions": [{
"path": "GraphQL.md",
"contents": "`echo 'Hello, GraphQL! | base64`"
}],
"deletions": [{ "path": "REST.txt" }]
},
"expectedHeadOid": "git rev-parse HEAD"
}}}
