Dependabot 秘密的 REST API 端点
使用 REST API 管理组织或存储库的 Dependabot 秘密。
关于 Dependabot 秘密
你可以使用 REST API 创建、更新、删除和检索有关加密秘密的信息。秘密允许你将敏感信息(例如访问令牌)存储在存储库、存储库环境或组织中。有关更多信息,请参阅 "为 Dependabot 配置对私有注册表的访问”。
这些端点适用于经过身份验证的用户、OAuth 应用和 GitHub 应用。访问令牌需要 repo
范围 才能用于私有存储库,需要 public_repo
范围 才能用于公共存储库。GitHub 应用必须拥有 dependabot_secrets
权限才能使用这些端点。经过身份验证的用户必须拥有存储库的协作者访问权限才能创建、更新或读取机密。
列出组织机密
列出组织中可用的所有机密,但不显示其加密值。
OAuth 应用令牌和个人访问令牌(经典)需要 admin:org
范围才能使用此端点。
用于“列出组织机密”的细粒度访问令牌
此端点适用于以下细粒度令牌类型
细粒度令牌必须具有以下权限集
- “组织 dependabot 机密”组织权限(读取)
“列出组织机密”的参数
名称、类型、说明 |
---|
accept string 建议设置为 |
名称、类型、说明 |
---|
org string Required组织名称。名称不区分大小写。 |
名称、类型、说明 |
---|
per_page integer 每页结果数(最大 100)。有关详细信息,请参阅“在 REST API 中使用分页”。 Default: |
page integer 要获取的结果的页码。有关详细信息,请参阅“在 REST API 中使用分页”。 Default: |
“列出组织机密”的 HTTP 响应状态代码
状态代码 | 说明 |
---|---|
200 | OK |
“列出组织秘密”的代码示例
请求示例
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 string 建议设置为 |
名称、类型、说明 |
---|
org string Required组织名称。名称不区分大小写。 |
“获取组织公钥”的 HTTP 响应状态代码
状态代码 | 说明 |
---|---|
200 | OK |
“获取组织公钥”的代码示例
请求示例
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 string 建议设置为 |
名称、类型、说明 |
---|
org string Required组织名称。名称不区分大小写。 |
secret_name 字符串 必需秘密的名称。 |
“获取组织密钥”的 HTTP 响应状态代码
状态代码 | 说明 |
---|---|
200 | OK |
“获取组织密钥”的代码示例
请求示例
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 string 建议设置为 |
名称、类型、说明 |
---|
org string Required组织名称。名称不区分大小写。 |
secret_name 字符串 必需秘密的名称。 |
名称、类型、说明 |
---|
key_id string 用于加密密钥的密钥 ID。 |
visibility string Required哪种类型的组织存储库可以访问组织密钥。 可以是以下之一:: |
selected_repository_ids array of strings 可以访问组织密钥的存储库 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 string 建议设置为 |
名称、类型、说明 |
---|
org string Required组织名称。名称不区分大小写。 |
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 string 建议设置为 |
名称、类型、说明 |
---|
org string Required组织名称。名称不区分大小写。 |
secret_name 字符串 必需秘密的名称。 |
名称、类型、说明 |
---|
page integer 要获取的结果的页码。有关详细信息,请参阅“在 REST API 中使用分页”。 Default: |
per_page integer 每页结果数(最大 100)。有关详细信息,请参阅“在 REST API 中使用分页”。 Default: |
“列出组织密钥的选定存储库”的 HTTP 响应状态代码
状态代码 | 说明 |
---|---|
200 | OK |
“列出组织密钥的选定存储库”的代码示例
请求示例
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 string 建议设置为 |
名称、类型、说明 |
---|
org string Required组织名称。名称不区分大小写。 |
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 string 建议设置为 |
名称、类型、说明 |
---|
org string Required组织名称。名称不区分大小写。 |
secret_name 字符串 必需秘密的名称。 |
repository_id 整数 必需 |
“将所选存储库添加到组织密钥”的 HTTP 响应状态代码
状态代码 | 说明 |
---|---|
204 | 将存储库添加到所选列表时无内容 |
409 | 可见性类型未设置为“所选”时发生冲突 |
“将所选存储库添加到组织密钥”的代码示例
请求示例
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
从组织密钥中移除所选存储库
当存储库访问的可见性
设置为所选
时,从组织密钥中移除存储库。在创建或更新组织密钥时设置可见性。
OAuth 应用令牌和个人访问令牌(经典)需要 admin:org
范围才能使用此端点。
“从组织密钥中移除所选存储库”的细粒度访问令牌
此端点适用于以下细粒度令牌类型
细粒度令牌必须具有以下权限集
- “组织 dependabot 密钥”组织权限(写入)和“元数据”存储库权限(读取)
“从组织密钥中移除所选存储库”的参数
名称、类型、说明 |
---|
accept string 建议设置为 |
名称、类型、说明 |
---|
org string Required组织名称。名称不区分大小写。 |
secret_name 字符串 必需秘密的名称。 |
repository_id 整数 必需 |
“从组织密钥中移除所选存储库”的 HTTP 响应状态代码
状态代码 | 说明 |
---|---|
204 | 从所选列表中移除存储库时的响应 |
409 | 可见性类型未设置为“所选”时发生冲突 |
“从组织密钥中移除所选存储库”的代码示例
请求示例
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 string 建议设置为 |
名称、类型、说明 |
---|
owner 字符串 必需存储库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需不带 |
名称、类型、说明 |
---|
per_page integer 每页结果数(最大 100)。有关详细信息,请参阅“在 REST API 中使用分页”。 Default: |
page integer 要获取的结果的页码。有关详细信息,请参阅“在 REST API 中使用分页”。 Default: |
“列出存储库机密”的 HTTP 响应状态代码
状态代码 | 说明 |
---|---|
200 | OK |
“列出存储库机密”的代码示例
请求示例
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 string 建议设置为 |
名称、类型、说明 |
---|
owner 字符串 必需存储库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需不带 |
“获取存储库公钥”的 HTTP 响应状态代码
状态代码 | 说明 |
---|---|
200 | OK |
“获取存储库公钥”的代码示例
请求示例
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 string 建议设置为 |
名称、类型、说明 |
---|
owner 字符串 必需存储库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需不带 |
secret_name 字符串 必需秘密的名称。 |
“获取存储库机密”的 HTTP 响应状态代码
状态代码 | 说明 |
---|---|
200 | OK |
“获取存储库机密”的代码示例
请求示例
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 string 建议设置为 |
名称、类型、说明 |
---|
owner 字符串 必需存储库的帐户所有者。名称不区分大小写。 |
repo 字符串 必需不带 |
secret_name 字符串 必需秘密的名称。 |
名称、类型、说明 |
---|
key_id string 用于加密密钥的密钥 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 string 建议设置为 |
名称、类型、说明 |
---|
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