用于 Dependabot 密钥的 REST API 端点
使用 REST API 管理组织或代码仓库的 Dependabot 密钥。
关于 Dependabot 密钥
您可以使用 REST API 创建、更新、删除和检索有关加密密钥的信息。密钥允许您在代码仓库、代码仓库环境或组织中存储敏感信息,例如访问令牌。有关更多信息,请参阅“为 Dependabot 配置对私有注册表的访问权限”。
这些端点可供经过身份验证的用户、OAuth 应用和 GitHub 应用使用。访问令牌需要 repo
范围 用于私有代码仓库,以及 public_repo
范围 用于公共代码仓库。GitHub 应用必须具有 dependabot_secrets
权限才能使用这些端点。经过身份验证的用户必须具有代码仓库的协作者访问权限才能创建、更新或读取密钥。
列出组织密钥
列出组织中所有可用的密钥,但不显示其加密值。
OAuth 应用令牌和个人访问令牌(传统)需要 admin:org
范围才能使用此端点。
用于“列出组织密钥”的细粒度访问令牌
此端点适用于以下细粒度令牌类型:
细粒度令牌必须具有以下权限集
- “组织 Dependabot 密钥”组织权限(读取)
用于“列出组织密钥”的参数
名称、类型、描述 |
---|
accept 字符串建议设置为 |
名称、类型、描述 |
---|
org 字符串 必需组织名称。名称不区分大小写。 |
名称、类型、描述 |
---|
per_page 整数每页结果数(最大 100)。有关更多信息,请参阅“在 REST API 中使用分页”。 默认值: |
page 整数要提取的结果的页码。有关更多信息,请参阅“在 REST API 中使用分页”。 默认值: |
用于“列出组织密钥”的 HTTP 响应状态代码
状态代码 | 描述 |
---|---|
200 | 确定 |
用于“列出组织密钥”的代码示例
请求示例
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/orgs/ORG/dependabot/secrets
响应
状态:200
{ "total_count": 3, "secrets": [ { "name": "MY_ARTIFACTORY_PASSWORD", "created_at": "2021-08-10T14:59:22Z", "updated_at": "2021-12-10T14:59:22Z", "visibility": "private" }, { "name": "NPM_TOKEN", "created_at": "2021-08-10T14:59:22Z", "updated_at": "2021-12-10T14:59:22Z", "visibility": "all" }, { "name": "GH_TOKEN", "created_at": "2021-08-10T14:59:22Z", "updated_at": "2021-12-10T14:59:22Z", "visibility": "selected", "selected_repositories_url": "https://api.github.com/orgs/octo-org/dependabot/secrets/SUPER_SECRET/repositories" } ] }
获取组织公钥
获取您的公钥,您需要使用它来加密密钥。您需要先加密密钥,然后才能创建或更新密钥。
OAuth 应用令牌和个人访问令牌(传统)需要 admin:org
范围才能使用此端点。
用于“获取组织公钥”的细粒度访问令牌
此端点适用于以下细粒度令牌类型:
细粒度令牌必须具有以下权限集
- “组织 Dependabot 密钥”组织权限(读取)
用于“获取组织公钥”的参数
名称、类型、描述 |
---|
accept 字符串建议设置为 |
名称、类型、描述 |
---|
org 字符串 必需组织名称。名称不区分大小写。 |
用于“获取组织公钥”的 HTTP 响应状态代码
状态代码 | 描述 |
---|---|
200 | 确定 |
用于“获取组织公钥”的代码示例
请求示例
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/orgs/ORG/dependabot/secrets/public-key
响应
获取组织密钥
获取单个组织密钥,但不显示其加密值。
OAuth 应用令牌和个人访问令牌(传统)需要 admin:org
范围才能使用此端点。
用于“获取组织密钥”的细粒度访问令牌
此端点适用于以下细粒度令牌类型:
细粒度令牌必须具有以下权限集
- “组织 Dependabot 密钥”组织权限(读取)
用于“获取组织密钥”的参数
名称、类型、描述 |
---|
accept 字符串建议设置为 |
名称、类型、描述 |
---|
org 字符串 必需组织名称。名称不区分大小写。 |
secret_name 字符串 必需密钥的名称。 |
用于“获取组织密钥”的 HTTP 响应状态代码
状态代码 | 描述 |
---|---|
200 | 确定 |
用于“获取组织密钥”的代码示例
请求示例
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/orgs/ORG/dependabot/secrets/SECRET_NAME
响应
创建或更新组织密钥
使用加密值创建或更新组织密钥。使用 LibSodium 加密您的密钥。有关更多信息,请参阅“加密 REST API 的密钥”。
OAuth 应用令牌和个人访问令牌(传统)需要 admin:org
范围才能使用此端点。
用于“创建或更新组织密钥”的细粒度访问令牌
此端点适用于以下细粒度令牌类型:
细粒度令牌必须具有以下权限集
- “组织 Dependabot 密钥”组织权限(写入)
用于“创建或更新组织密钥”的参数
名称、类型、描述 |
---|
accept 字符串建议设置为 |
名称、类型、描述 |
---|
org 字符串 必需组织名称。名称不区分大小写。 |
secret_name 字符串 必需密钥的名称。 |
名称、类型、描述 |
---|
key_id 字符串用于加密密钥的密钥的 ID。 |
visibility 字符串 必需哪些类型的组织代码仓库可以访问组织密钥。 可以是以下之一: |
selected_repository_ids 字符串数组可以访问组织密钥的代码仓库 ID 数组。仅当 |
用于“创建或更新组织密钥”的 HTTP 响应状态代码
状态代码 | 描述 |
---|---|
201 | 创建密钥时的响应 |
204 | 更新密钥时的响应 |
“创建或更新组织机密”的代码示例
请求示例
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/orgs/ORG/dependabot/secrets/SECRET_NAME \ -d '{"encrypted_value":"c2VjcmV0","key_id":"012345678912345678","visibility":"selected","selected_repository_ids":["1296269","1296280"]}'
创建密钥时的响应
删除组织机密
使用机密名称删除组织中的机密。
OAuth 应用令牌和个人访问令牌(传统)需要 admin:org
范围才能使用此端点。
“删除组织机密”的细粒度访问令牌
此端点适用于以下细粒度令牌类型:
细粒度令牌必须具有以下权限集
- “组织 Dependabot 密钥”组织权限(写入)
“删除组织机密”的参数
名称、类型、描述 |
---|
accept 字符串建议设置为 |
名称、类型、描述 |
---|
org 字符串 必需组织名称。名称不区分大小写。 |
secret_name 字符串 必需密钥的名称。 |
“删除组织机密”的 HTTP 响应状态代码
状态代码 | 描述 |
---|---|
204 | 无内容 |
“删除组织机密”的代码示例
请求示例
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/orgs/ORG/dependabot/secrets/SECRET_NAME
响应
状态:204
列出组织机密的选定仓库
列出当仓库访问机密的visibility
设置为selected
时已选中的所有仓库。
OAuth 应用令牌和个人访问令牌(传统)需要 admin:org
范围才能使用此端点。
“列出组织机密的选定仓库”的细粒度访问令牌
此端点适用于以下细粒度令牌类型:
细粒度令牌必须具有以下权限集
- “组织 Dependabot 密钥”组织权限(读取)
“列出组织机密的选定仓库”的参数
名称、类型、描述 |
---|
accept 字符串建议设置为 |
名称、类型、描述 |
---|
org 字符串 必需组织名称。名称不区分大小写。 |
secret_name 字符串 必需密钥的名称。 |
名称、类型、描述 |
---|
page 整数要提取的结果的页码。有关更多信息,请参阅“在 REST API 中使用分页”。 默认值: |
per_page 整数每页结果数(最大 100)。有关更多信息,请参阅“在 REST API 中使用分页”。 默认值: |
“列出组织机密的选定仓库”的 HTTP 响应状态代码
状态代码 | 描述 |
---|---|
200 | 确定 |
“列出组织机密的选定仓库”的代码示例
请求示例
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/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories
响应
状态:200
{ "total_count": 1, "repositories": [ { "id": 1296269, "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", "name": "Hello-World", "full_name": "octocat/Hello-World", "owner": { "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 }, "private": false, "html_url": "https://github.com/octocat/Hello-World", "description": "This your first repo!", "fork": false, "url": "https://api.github.com/repos/octocat/Hello-World", "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", "events_url": "https://api.github.com/repos/octocat/Hello-World/events", "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", "git_url": "git:github.com/octocat/Hello-World.git", "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", "ssh_url": "[email protected]:octocat/Hello-World.git", "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" } ] }
设置组织机密的选定仓库
当仓库访问的visibility
设置为selected
时,替换组织机密的所有仓库。当您创建或更新组织机密时,会设置可见性。
OAuth 应用令牌和个人访问令牌(传统)需要 admin:org
范围才能使用此端点。
“设置组织机密的选定仓库”的细粒度访问令牌
此端点适用于以下细粒度令牌类型:
细粒度令牌必须具有以下权限集
- “组织 Dependabot 密钥”组织权限(写入)
“设置组织机密的选定仓库”的参数
名称、类型、描述 |
---|
accept 字符串建议设置为 |
名称、类型、描述 |
---|
org 字符串 必需组织名称。名称不区分大小写。 |
secret_name 字符串 必需密钥的名称。 |
名称、类型、描述 |
---|
selected_repository_ids 整数数组 必需可以访问组织机密的仓库 ID 数组。只有当 |
“设置组织机密的选定仓库”的 HTTP 响应状态代码
状态代码 | 描述 |
---|---|
204 | 无内容 |
“设置组织机密的选定仓库”的代码示例
请求示例
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/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories \ -d '{"selected_repository_ids":[64780797]}'
响应
状态:204
将选定仓库添加到组织机密
当仓库访问的visibility
设置为selected
时,将仓库添加到组织机密。当您创建或更新组织机密时,会设置可见性。
OAuth 应用令牌和个人访问令牌(传统)需要 admin:org
范围才能使用此端点。
“将选定仓库添加到组织机密”的细粒度访问令牌
此端点适用于以下细粒度令牌类型:
细粒度令牌必须具有以下权限集
- “组织 Dependabot 机密”组织权限(写入) 和 “元数据”仓库权限(读取)
“将选定仓库添加到组织机密”的参数
名称、类型、描述 |
---|
accept 字符串建议设置为 |
名称、类型、描述 |
---|
org 字符串 必需组织名称。名称不区分大小写。 |
secret_name 字符串 必需密钥的名称。 |
repository_id 整数 必需 |
“将选定仓库添加到组织机密”的 HTTP 响应状态代码
状态代码 | 描述 |
---|---|
204 | 将仓库添加到选定列表时,无内容 |
409 | 当可见性类型未设置为 selected 时,发生冲突 |
“将选定仓库添加到组织机密”的代码示例
请求示例
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/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories/REPOSITORY_ID
将仓库添加到选定列表时,无内容
状态:204
从组织机密中移除选定的仓库
当仓库访问的visibility
设置为selected
时,从组织机密中移除仓库。当您创建或更新组织机密时,会设置可见性。
OAuth 应用令牌和个人访问令牌(传统)需要 admin:org
范围才能使用此端点。
“从组织机密中移除选定的仓库”的细粒度访问令牌
此端点适用于以下细粒度令牌类型:
细粒度令牌必须具有以下权限集
- “组织 Dependabot 机密”组织权限(写入) 和 “元数据”仓库权限(读取)
“从组织机密中移除选定的仓库”的参数
名称、类型、描述 |
---|
accept 字符串建议设置为 |
名称、类型、描述 |
---|
org 字符串 必需组织名称。名称不区分大小写。 |
secret_name 字符串 必需密钥的名称。 |
repository_id 整数 必需 |
“从组织机密中移除选定的仓库”的 HTTP 响应状态代码
状态代码 | 描述 |
---|---|
204 | 从选定列表中移除仓库时的响应 |
409 | 当可见性类型未设置为 selected 时,发生冲突 |
“从组织机密中移除选定的仓库”的代码示例
请求示例
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/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories/REPOSITORY_ID
从选定列表中移除仓库时的响应
状态:204
列出仓库机密
列出仓库中可用的所有机密,而不会泄露其加密值。
OAuth 应用令牌和个人访问令牌(经典)需要repo
范围才能使用此端点。
“列出仓库机密”的细粒度访问令牌
此端点适用于以下细粒度令牌类型:
细粒度令牌必须具有以下权限集
- “Dependabot 机密”仓库权限(读取)
“列出仓库机密”的参数
名称、类型、描述 |
---|
accept 字符串建议设置为 |
名称、类型、描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需不带 |
名称、类型、描述 |
---|
per_page 整数每页结果数(最大 100)。有关更多信息,请参阅“在 REST API 中使用分页”。 默认值: |
page 整数要提取的结果的页码。有关更多信息,请参阅“在 REST API 中使用分页”。 默认值: |
“列出仓库机密”的 HTTP 响应状态代码
状态代码 | 描述 |
---|---|
200 | 确定 |
“列出仓库机密”的代码示例
请求示例
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/dependabot/secrets
响应
获取仓库公钥
获取您的公钥,您需要使用它来加密机密。在创建或更新机密之前,您需要加密机密。任何具有仓库读取权限的用户都可以使用此端点。
如果存储库是私有的,则 OAuth 应用程序令牌和个人访问令牌(经典)需要 repo
范围才能使用此端点。
“获取存储库公钥”的细粒度访问令牌
此端点适用于以下细粒度令牌类型:
细粒度令牌必须具有以下权限集
- “Dependabot 机密”仓库权限(读取)
“获取存储库公钥”的参数
名称、类型、描述 |
---|
accept 字符串建议设置为 |
名称、类型、描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需不带 |
“获取存储库公钥”的 HTTP 响应状态代码
状态代码 | 描述 |
---|---|
200 | 确定 |
“获取存储库公钥”的代码示例
请求示例
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/dependabot/secrets/public-key
响应
获取存储库密钥
获取单个存储库密钥,但不泄露其加密值。
OAuth 应用令牌和个人访问令牌(经典)需要repo
范围才能使用此端点。
“获取存储库密钥”的细粒度访问令牌
此端点适用于以下细粒度令牌类型:
细粒度令牌必须具有以下权限集
- “Dependabot 机密”仓库权限(读取)
“获取存储库密钥”的参数
名称、类型、描述 |
---|
accept 字符串建议设置为 |
名称、类型、描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需不带 |
secret_name 字符串 必需密钥的名称。 |
“获取存储库密钥”的 HTTP 响应状态代码
状态代码 | 描述 |
---|---|
200 | 确定 |
“获取存储库密钥”的代码示例
请求示例
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/dependabot/secrets/SECRET_NAME
响应
创建或更新存储库密钥
使用加密值创建或更新存储库密钥。使用 LibSodium 加密您的密钥。有关更多信息,请参阅“为 REST API 加密密钥”。
OAuth 应用令牌和个人访问令牌(经典)需要repo
范围才能使用此端点。
“创建或更新存储库密钥”的细粒度访问令牌
此端点适用于以下细粒度令牌类型:
细粒度令牌必须具有以下权限集
- “Dependabot 密钥”存储库权限(写入)
“创建或更新存储库密钥”的参数
名称、类型、描述 |
---|
accept 字符串建议设置为 |
名称、类型、描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需不带 |
secret_name 字符串 必需密钥的名称。 |
名称、类型、描述 |
---|
key_id 字符串用于加密密钥的密钥的 ID。 |
“创建或更新存储库密钥”的 HTTP 响应状态代码
状态代码 | 描述 |
---|---|
201 | 创建密钥时的响应 |
204 | 更新密钥时的响应 |
“创建或更新存储库密钥”的代码示例
请求示例
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/dependabot/secrets/SECRET_NAME \ -d '{"encrypted_value":"c2VjcmV0","key_id":"012345678912345678"}'
创建密钥时的响应
删除存储库密钥
使用密钥名称删除存储库中的密钥。
OAuth 应用令牌和个人访问令牌(经典)需要repo
范围才能使用此端点。
“删除存储库密钥”的细粒度访问令牌
此端点适用于以下细粒度令牌类型:
细粒度令牌必须具有以下权限集
- “Dependabot 密钥”存储库权限(写入)
“删除存储库密钥”的参数
名称、类型、描述 |
---|
accept 字符串建议设置为 |
名称、类型、描述 |
---|
owner 字符串 必需仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需不带 |
secret_name 字符串 必需密钥的名称。 |
“删除存储库密钥”的 HTTP 响应状态代码
状态代码 | 描述 |
---|---|
204 | 无内容 |
“删除存储库密钥”的代码示例
请求示例
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/dependabot/secrets/SECRET_NAME
响应
状态:204