[英]How can I check if Dependabot is enabled for a Repo using Github APIs?
我已经通过 Github Rest API v3 和 Github GraphQL API v4 但我无法找到资源/端点来检查是否通过 88103030 启用了依赖机器人? 我浏览了大量文档,但找不到任何有用的信息。 有人可以指点我正确的文件或告诉我使用哪个资源吗? 谢谢!
有一个dependabot API 文档可以提供帮助,但它在 2021 年 8 月 3 日被弃用。
然而,一个解决方法是检查dependabot.yml
文件存在于你的仓库或不使用GET
请求api.github.com/repos/name/repo/contents/fileNameOrPath
。
现在 Dependabot 已合并到 GitHub,可以在给定 GitHub 存储库设置的安全和分析部分启用两个不同的组件:
(两者都需要在同一部分中启用依赖关系图)
第一个是是否创建警报,第二个是在修复可用时是否生成自动拉取请求。
根据GitHub REST API Reference ,您可以通过以下端点的 GitHub REST API 检查是否启用了 Dependabot 警报: https://api.github.com/repos/{owner}/{repo}/vulnerability-alerts
://api.github.com/repos/{owner}/{repo}/vulnerability-alerts
204 响应确认该功能已启用,404 表示未启用。
奇怪的是,GitHub REST API 参考列出了启用或禁用该功能的请求,而不是获取给定存储库的该功能的当前状态。
为此,正如 GuiFalourd 指出的那样,使用 GraphQL API 检查.github/dependabot.yml
文件的存在是.github/dependabot.yml
的方法,对 Graph 端点使用类似以下内容https://api.github.com/graphql
询问
{
repository(name: "{repo}", owner: "{owner}") {
object(expression: "HEAD:.github/") {
... on Tree {
entries {
name
}
}
}
}
}
如果文件存在则响应:
{
"data": {
"repository": {
"object": {
"entries": [
{
"name": "dependabot.yml"
}
]
}
}
}
}
如果文件不存在则响应:
{
"data": {
"repository": {
"object": null
}
}
}
@epopisces 的回答很重要,我也在寻找同样的东西。 现在补充一下他说的。 通过 GET 请求 (GET /repos/{owner}/{repo}) 可以检查 Dependabot 安全更新的状态到一个特定的 repo,它可以有安全和分析标签作为响应(只有当我们有高级安全许可证时)。 没有其他方法可以通过 API 了解状态。
https://docs.github.com/en/rest/reference/repos#get-a-repository
自2023年 1 月 10 日起, Repository
object 类型现在在 GraphQL API 中公开了一个hasVulnerabilityAlertsEnabled
字段。例如,以下查询:
{
repository(name: "platform-samples", owner: "github") {
id
hasVulnerabilityAlertsEnabled
}
}
给出以下结果:
{
"data": {
"repository": {
"id": "MDEwOlJlcG9zaXRvcnk4NDQ1ODc3",
"hasVulnerabilityAlertsEnabled": true
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.