簡體   English   中英

如何使用 Github API 檢查是否為 Repo 啟用了 Dependabot?

[英]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.yml文件的參考

現在 Dependabot 已合並到 GitHub,可以在給定 GitHub 存儲庫設置的安全和分析部分啟用兩個不同的組件:

  1. Dependabot 警報
  2. Dependabot 安全更新

(兩者都需要在同一部分中啟用依賴關系圖)

第一個是是否創建警報,第二個是在修復可用時是否生成自動拉取請求。

檢查 Dependabot 警報是否已啟用

根據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 表示未啟用。

檢查是否啟用了 Dependabot 安全更新

奇怪的是,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM