[英]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.