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

Git Blob 的 REST API 端点

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

关于 Git Blob

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

创建 Blob

“创建 Blob” 的细粒度访问令牌

此端点可与以下细粒度令牌类型配合使用:

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

  • “内容” 代码库权限(写入)

“创建 Blob” 的参数

标头
名称、类型、描述
accept 字符串

建议设置为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 MB 的 blob。

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

此端点可与以下细粒度令牌类型配合使用:

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

  • “内容” 代码库权限(读取)

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

“获取 Blob” 的参数

标头
名称、类型、描述
accept 字符串

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

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

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

repo 字符串 必需

不带.git扩展名的代码库名称。名称不区分大小写。

file_sha 字符串 必需

“获取 Blob” 的 HTTP 响应状态代码

状态码描述
200

确定

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==" }