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

Codespaces 代码库密钥的 REST API 端点

使用 REST API 管理用户在 codespace 中有权访问的代码库的密钥。

谁可以使用此功能?

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

关于 Codespaces 代码库密钥

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

列出代码库密钥

列出代码库中可用的所有开发环境密钥,而不会泄露其加密值。

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

“列出代码库密钥”的细粒度访问令牌

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

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

  • “Codespaces 密钥”代码库权限(写入)

“列出代码库密钥”的参数

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

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

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

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

repo 字符串 必需

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

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

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

默认值: 30

page 整数

要提取的结果页码。更多信息,请参阅“在 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 密钥”代码库权限(写入)

“获取代码库公钥”的参数

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

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

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

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

repo 字符串 必需

代码库的名称,不包含 `.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 密钥”代码库权限(写入)

“获取代码库密钥”的参数

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

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

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

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

repo 字符串 必需

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

secret_name 字符串 必需

密钥的名称。

“获取代码库密钥”的 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 密钥”代码库权限(写入)

“创建或更新代码库密钥”的参数

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

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

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

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

repo 字符串 必需

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

secret_name 字符串 必需

密钥的名称。

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

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

key_id 字符串

用于加密密钥的密钥的 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 密钥”代码库权限(写入)

“删除仓库密钥”的参数

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

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

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

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

repo 字符串 必需

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

secret_name 字符串 必需

密钥的名称。

“删除仓库密钥”的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