1

我想获得一个概览,例如我有权在 GitHub 组织中查看的所有关键漏洞。

这个答案使我能够获得特定存储库的列表:

{
    repository(name: "repo-name", owner: "repo-owner") {
        vulnerabilityAlerts(first: 100) {
            nodes {
                createdAt
                dismissedAt
                securityVulnerability {
                    package {
                        name
                    }
                    advisory {
                        description
                    }
                }
            }
        }
    }
}

然而,手动扫描大型组织就像通过 API 一样简单地通过 GUI 逐个 repo。

有没有办法,最好是在Insomnia中,但如果没有,那么 CLI 版本就可以了,以获得这样的关键漏洞列表?

我怀疑它只能通过遍历所有存储库的列表来查询每个存储库来完成,就像我从我正在玩的其他东西中得到的这个查询一样,但很好奇是否有人有任何其他聪明的解决方案来保存编写该应用程序:

query{
    organization(login: "repo-owner"){
        repositories(first: 100){
            nodes{
                name
            }
            pageInfo{
                hasNextPage
            }
        }
    }
}
4

1 回答 1

1

我不知道使用 GitHub graphql 过滤关键漏洞的方法,但您可以执行以下操作:

{
  organization(login: "repo-owner") {
    repositories(first: 100) {
      nodes {
        nameWithOwner
        vulnerabilityAlerts(first: 10) {
          nodes {
            securityAdvisory {
              severity
            }
          }
        }
      }
    }
  }
}

这将输出组织中每个存储库的严重性,repo-owner无论存储库是否存在严重性。我相信使用ghcli 工具,您可以使用 Go 模板来格式化输出。有关如何在ghGo 模板中使用 cli 工具的更多信息,请参阅以下页面

于 2022-01-07T17:28:08.680 回答