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

Codespaces 仓库密钥的 REST API 端点

使用 REST API 管理用户在 Codespace 中有权访问的仓库的密钥。

谁可以使用此功能?

具有仓库写入权限的用户可以管理 Codespaces 仓库密钥。

关于 Codespaces 仓库密钥

您可以为用户有权访问的仓库创建、列出和删除密钥(例如云服务的访问令牌)。这些密钥在运行时提供给 Codespace。有关更多信息,请参阅 "管理您针对 GitHub Codespaces 的帐户特定密钥."

列出仓库密钥

列出仓库中可用的所有开发环境密钥,但不显示其加密值。

OAuth 应用令牌和个人访问令牌(经典)需要 repo 范围才能使用此端点。

用于“列出仓库密钥”的细粒度访问令牌

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

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

  • "Codespaces secrets" 存储库权限(写入)

"列出存储库机密" 的参数

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

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

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

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

repo string 必需

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

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

每页结果数(最大 100)。有关更多信息,请参阅 "在 REST API 中使用分页"。

默认: 30

page integer

要获取的结果的页码。有关更多信息,请参阅 "在 REST API 中使用分页"。

默认: 1

"列出存储库机密" 的 HTTP 响应状态代码

状态代码描述
200

OK

"列出存储库机密" 的代码示例

请求示例

get/repos/{owner}/{repo}/codespaces/secrets
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/codespaces/secrets

响应

状态: 200
{ "total_count": 2, "secrets": [ { "name": "GH_TOKEN", "created_at": "2019-08-10T14:59:22Z", "updated_at": "2020-01-10T14:59:22Z", "visibility": "all" }, { "name": "GIST_ID", "created_at": "2020-01-10T10:59:22Z", "updated_at": "2020-01-11T11:59:22Z", "visibility": "all" } ] }

获取仓库公钥

获取您的公钥,您需要使用它来加密密钥。您需要在创建或更新密钥之前加密密钥。

任何对仓库具有读取权限的用户都可以使用此端点。

如果仓库是私有的,OAuth 应用程序令牌和个人访问令牌(经典)需要repo范围才能使用此端点。

用于“获取仓库公钥”的细粒度访问令牌

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

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

  • "Codespaces secrets" 存储库权限(写入)

用于“获取仓库公钥”的参数

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

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

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

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

repo string 必需

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

用于“获取仓库公钥”的 HTTP 响应状态码

状态代码描述
200

OK

用于“获取仓库公钥”的代码示例

请求示例

get/repos/{owner}/{repo}/codespaces/secrets/public-key
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/codespaces/secrets/public-key

响应

状态: 200
{ "key_id": "012345678912345678", "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234" }

获取仓库密钥

获取单个仓库开发环境密钥,不会泄露其加密值。

OAuth 应用令牌和个人访问令牌(经典)需要 repo 范围才能使用此端点。

用于“获取仓库密钥”的细粒度访问令牌

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

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

  • "Codespaces secrets" 存储库权限(写入)

用于“获取仓库密钥”的参数

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

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

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

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

repo string 必需

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

secret_name string 必需

密钥的名称。

用于“获取仓库密钥”的 HTTP 响应状态码

状态代码描述
200

OK

用于“获取仓库密钥”的代码示例

请求示例

get/repos/{owner}/{repo}/codespaces/secrets/{secret_name}
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/codespaces/secrets/SECRET_NAME

响应

状态: 200
{ "name": "GH_TOKEN", "created_at": "2019-08-10T14:59:22Z", "updated_at": "2020-01-10T14:59:22Z", "visibility": "all" }

创建或更新仓库密钥

创建或更新存储库开发环境密钥,并使用加密值。使用 LibSodium 对您的密钥进行加密。有关更多信息,请参阅“加密 REST API 的密钥”。

OAuth 应用令牌和个人访问令牌(经典)需要 repo 范围才能使用此端点。

“创建或更新存储库密钥”的细粒度访问令牌

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

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

  • "Codespaces secrets" 存储库权限(写入)

“创建或更新存储库密钥”的参数

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

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

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

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

repo string 必需

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

secret_name string 必需

密钥的名称。

主体参数
名称、类型、描述
encrypted_value string

您的密钥的值,使用从 获取存储库公钥 端点检索的公钥,使用 LibSodium 加密。

key_id string

用于加密密钥的密钥 ID。

“创建或更新存储库密钥”的 HTTP 响应状态码

状态代码描述
201

创建密钥时的响应

204

更新密钥时的响应

“创建或更新存储库密钥”的代码示例

请求示例

put/repos/{owner}/{repo}/codespaces/secrets/{secret_name}
curl -L \ -X PUT \ -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/codespaces/secrets/SECRET_NAME \ -d '{"encrypted_value":"c2VjcmV0","key_id":"012345678912345678"}'

创建密钥时的响应

删除存储库密钥

使用密钥名称删除存储库中的开发环境密钥。

OAuth 应用令牌和个人访问令牌(经典)需要 repo 范围才能使用此端点。

“删除存储库密钥”的细粒度访问令牌

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

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

  • "Codespaces secrets" 存储库权限(写入)

“删除存储库密钥”的参数

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

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

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

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

repo string 必需

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

secret_name string 必需

密钥的名称。

“删除存储库密钥”的 HTTP 响应状态码

状态代码描述
204

无内容

“删除仓库密钥”的代码示例

请求示例

删除/repos/{owner}/{repo}/codespaces/secrets/{secret_name}
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/codespaces/secrets/SECRET_NAME

响应

状态:204