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

发布资产的 REST API 端点

使用 REST API 管理发布资产。

获取发布资产

要下载资产的二进制内容,请将请求的 Accept 标头设置为 application/octet-stream。API 将客户端重定向到该位置,或直接流式传输(如果可能)。API 客户端应处理 200302 响应。

“获取发行版资产”的细粒度访问令牌

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

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

  • “内容”存储库权限(读取)

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

“获取发行版资产”的参数

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

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

路径参数
名称、类型、描述
owner string 必需

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

repo string 必需

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

asset_id integer 必需

资产的唯一标识符。

“获取发行版资产”的 HTTP 响应状态代码

状态代码描述
200

OK

302

已找到

404

未找到资源

“获取发行版资产”的代码示例

请求示例

get/repos/{owner}/{repo}/releases/assets/{asset_id}
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/releases/assets/ASSET_ID

响应

状态:200
{ "url": "https://api.github.com/repos/octocat/Hello-World/releases/assets/1", "browser_download_url": "https://github.com/octocat/Hello-World/releases/download/v1.0.0/example.zip", "id": 1, "node_id": "MDEyOlJlbGVhc2VBc3NldDE=", "name": "example.zip", "label": "short description", "state": "uploaded", "content_type": "application/zip", "size": 1024, "download_count": 42, "created_at": "2013-02-27T19:35:32Z", "updated_at": "2013-02-27T19:35:32Z", "uploader": { "login": "octocat", "id": 1, "node_id": "MDQ6VXNlcjE=", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false } }

更新发布资产

拥有对存储库的推送访问权限的用户可以编辑发布资产。

“更新发布资产”的细粒度访问令牌

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

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

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

“更新发布资产”的参数

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

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

路径参数
名称、类型、描述
owner string 必需

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

repo string 必需

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

asset_id integer 必需

资产的唯一标识符。

正文参数
名称、类型、描述
name 字符串

资产的文件名。

label 字符串

资产的备用简短描述。用于代替文件名。

state 字符串

“更新发布资产”的 HTTP 响应状态代码

状态代码描述
200

OK

“更新发布资产”的代码示例

请求示例

patch/repos/{owner}/{repo}/releases/assets/{asset_id}
curl -L \ -X PATCH \ -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/releases/assets/ASSET_ID \ -d '{"name":"foo-1.0.0-osx.zip","label":"Mac binary"}'

响应

状态:200
{ "url": "https://api.github.com/repos/octocat/Hello-World/releases/assets/1", "browser_download_url": "https://github.com/octocat/Hello-World/releases/download/v1.0.0/example.zip", "id": 1, "node_id": "MDEyOlJlbGVhc2VBc3NldDE=", "name": "example.zip", "label": "short description", "state": "uploaded", "content_type": "application/zip", "size": 1024, "download_count": 42, "created_at": "2013-02-27T19:35:32Z", "updated_at": "2013-02-27T19:35:32Z", "uploader": { "login": "octocat", "id": 1, "node_id": "MDQ6VXNlcjE=", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false } }

删除发布资产

“删除发行资产”的细粒度访问令牌

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

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

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

“删除发行资产”的参数

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

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

路径参数
名称、类型、描述
owner string 必需

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

repo string 必需

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

asset_id integer 必需

资产的唯一标识符。

“删除发行资产”的 HTTP 响应状态代码

状态代码描述
204

无内容

“删除发行资产”的代码示例

请求示例

delete/repos/{owner}/{repo}/releases/assets/{asset_id}
curl -L \ -X DELETE \ -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/releases/assets/ASSET_ID

响应

状态:204

列出发行资产

“列出发行资产”的细粒度访问令牌

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

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

  • “内容”存储库权限(读取)

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

“列出发行资产”的参数

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

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

路径参数
名称、类型、描述
owner string 必需

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

repo string 必需

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

release_id 整数 必需

发行的唯一标识符。

查询参数
名称、类型、描述
per_page 整数

每页的结果数(最大 100)。有关详细信息,请参阅“在 REST API 中使用分页”。

默认: 30

page 整数

要获取的结果的页码。有关详细信息,请参阅“在 REST API 中使用分页”。

默认: 1

“列出发行资产”的 HTTP 响应状态代码

状态代码描述
200

OK

“列出发行资产”的代码示例

请求示例

get/repos/{owner}/{repo}/releases/{release_id}/assets
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/releases/RELEASE_ID/assets

响应

状态:200
[ { "url": "https://api.github.com/repos/octocat/Hello-World/releases/assets/1", "browser_download_url": "https://github.com/octocat/Hello-World/releases/download/v1.0.0/example.zip", "id": 1, "node_id": "MDEyOlJlbGVhc2VBc3NldDE=", "name": "example.zip", "label": "short description", "state": "uploaded", "content_type": "application/zip", "size": 1024, "download_count": 42, "created_at": "2013-02-27T19:35:32Z", "updated_at": "2013-02-27T19:35:32Z", "uploader": { "login": "octocat", "id": 1, "node_id": "MDQ6VXNlcjE=", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false } } ]

上传发行资产

此端点利用超媒体关系来确定要访问的 URL。用于上传发行资产的端点特定于你的发行。使用创建发行端点的响应中返回的 upload_url 来上传发行资产。

你需要使用支持SNI的 HTTP 客户端才能调用此端点。

大多数库会自动设置所需的 Content-Length 标头。使用所需的 Content-Type 标头来提供资产的媒体类型。有关媒体类型的列表,请参见 媒体类型。例如

application/zip

GitHub 希望以原始二进制形式而不是 JSON 接收资产数据。您将发送资产的原始二进制内容作为请求正文。端点的所有其他内容都与 API 的其他部分相同。例如,您仍需要传递身份验证才能上传资产。

当发生上游故障时,您将收到 502 Bad Gateway 状态。这可能会留下一个状态为 starter 的空资产。可以安全地将其删除。

备注

  • GitHub 会重命名具有特殊字符、非字母数字字符以及前导或尾随句点的资产文件名。"列出发行资产" 端点列出重命名的文件名。有关更多信息和帮助,请联系 GitHub 支持
  • 要查找 release_id,请查询 GET /repos/{owner}/{repo}/releases/latest 端点
  • 如果您上传的文件名与另一个已上传资产的文件名相同,您将收到一条错误消息,并且必须先删除旧文件,然后才能重新上传新资产。

"上传发行资产" 的参数

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

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

路径参数
名称、类型、描述
owner string 必需

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

repo string 必需

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

release_id 整数 必需

发行的唯一标识符。

查询参数
名称、类型、描述
name 字符串 必需
label 字符串

"上传发行资产" 的 HTTP 响应状态代码

状态代码描述
201

上传成功的响应

422

如果您上传的文件名与另一个已上传资产的文件名相同,则会收到响应

"上传发行资产" 的代码示例

请求示例

post/repos/{owner}/{repo}/releases/{release_id}/assets
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ -H "Content-Type: application/octet-stream" \ "https://uploads.github.com/repos/OWNER/REPO/releases/RELEASE_ID/assets?name=example.zip" \ --data-binary "@example.zip"

上传成功的响应

状态:201
{ "url": "https://api.github.com/repos/octocat/Hello-World/releases/assets/1", "browser_download_url": "https://github.com/octocat/Hello-World/releases/download/v1.0.0/example.zip", "id": 1, "node_id": "MDEyOlJlbGVhc2VBc3NldDE=", "name": "example.zip", "label": "short description", "state": "uploaded", "content_type": "application/zip", "size": 1024, "download_count": 42, "created_at": "2013-02-27T19:35:32Z", "updated_at": "2013-02-27T19:35:32Z", "uploader": { "login": "octocat", "id": 1, "node_id": "MDQ6VXNlcjE=", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false } }