跳至主要内容
REST API 现在已版本化。 有关更多信息,请参阅“关于 API 版本控制”。

用于 Git blob 的 REST API 端点

使用 REST API 与 Git blob(二进制大对象)进行交互,blob 是用于存储存储库中每个文件内容的对象类型。

关于 Git blob

Git blob(二进制大对象)是用于存储存储库中每个文件内容的对象类型。文件的 SHA-1 哈希值将被计算并存储在 blob 对象中。这些端点允许您读取和写入 blob 对象 到 GitHub 上的 Git 数据库。Blob 利用 这些自定义媒体类型。有关 API 中媒体类型使用的更多信息,请参阅“REST API 入门”。

创建 blob

用于“创建 blob”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

细粒度令牌必须具有以下权限集

  • “内容”存储库权限(写入)

用于“创建 blob”的参数

标头
名称、类型、描述
accept string

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必需

仓库的帐户所有者。名称不区分大小写。

repo 字符串 必需

仓库的名称,不包含 .git 扩展名。名称不区分大小写。

主体参数
名称、类型、描述
content 字符串 必需

新 Blob 的内容。

encoding 字符串

用于 content 的编码。目前支持 "utf-8""base64"

默认: utf-8

“创建 Blob” 的 HTTP 响应状态码

状态码描述
201

已创建

403

禁止

404

资源未找到

409

冲突

422

验证失败,或端点已被垃圾邮件攻击。

“创建 Blob” 的代码示例

请求示例

post/repos/{owner}/{repo}/git/blobs
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/git/blobs \ -d '{"content":"Blob 的内容","encoding":"utf-8"}'

响应

状态:201
{ "url": "https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15", "sha": "3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15" }

获取 Blob

响应中的 content 将始终以 Base64 编码。

此端点支持以下自定义媒体类型。有关更多信息,请参阅“媒体类型”。

  • application/vnd.github.raw+json:返回原始 Blob 数据。
  • application/vnd.github+json:返回 Blob 的 JSON 表示形式,其中 content 为 Base64 编码的字符串。如果未指定媒体类型,则为默认值。

注意 此端点支持大小不超过 100 兆字节的 Blob。

“获取 Blob” 的细粒度访问令牌

此端点适用于以下细粒度令牌类型

细粒度令牌必须具有以下权限集

  • "Contents" 仓库权限 (读取)

如果只请求公共资源,则无需身份验证或上述权限即可使用此端点。

"获取 Blob" 的参数

标头
名称、类型、描述
accept string

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
owner 字符串 必需

仓库的帐户所有者。名称不区分大小写。

repo 字符串 必需

仓库的名称,不包含 .git 扩展名。名称不区分大小写。

file_sha 字符串 必填

"获取 Blob" 的 HTTP 响应状态码

状态码描述
200

OK

403

禁止

404

资源未找到

409

冲突

422

验证失败,或端点已被垃圾邮件攻击。

"获取 Blob" 的代码示例

请求示例

get/repos/{owner}/{repo}/git/blobs/{file_sha}
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/git/blobs/FILE_SHA

响应

状态: 200
{ "content": "Q29udGVudCBvZiB0aGUgYmxvYg==", "encoding": "base64", "url": "https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15", "sha": "3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15", "size": 19, "node_id": "Q29udGVudCBvZiB0aGUgYmxvYg==" }