Как ПОЛУЧИТЬ список оповещений dependabot через GitHub API?

#github #github-api #dependabot

#github #github-api #dependabot

Вопрос:

Как я могу ПОЛУЧИТЬ список оповещений dependabot, доступных по адресу https://github.com /{user}/{repo}/security/dependabot?page=1amp;q=открывается ли: через API GitHub?

введите описание изображения здесь

Я просмотрел документацию, но ничего не смог там найти.

Спасибо!

Ответ №1:

Существует этот объект RepositoryVulnerabilityAlert, доступный с помощью Graphql API.

Например, для определенного репозитория вы можете получить все оповещения с помощью следующего запроса (проверьте это в проводнике) :

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

Он также возвращает предупреждения, которые были отклонены, которые можно определить с помощью dismissedAt поля. Но, похоже, нет способа фильтровать только «активные» оповещения

Пример вывода:

 {
  "data": {
    "repository": {
      "vulnerabilityAlerts": {
        "nodes": [
          {
            "createdAt": "2018-03-05T19:13:26Z",
            "dismissedAt": null,
            "securityVulnerability": {
              "package": {
                "name": "moment"
              },
              "advisory": {
                "description": "Affected versions of `moment` are vulnerable to a low severity regular expression denial of service when parsing dates as strings.nnn## RecommendationnnUpdate to version 2.19.3 or later."
              }
            }
          },
          ....
        ]
      }
    }
  }
}
 

Комментарии:

1. Я не уверен, почему, но я думал, что все ресурсы, доступные через GraphQL, также будут доступны через Rest. Это именно то, что я искал.

2. Так это недоступно в REST api?

3. Вы также можете увидеть state , fixed / open / dismissed , с помощью API: docs.github.com/en/graphql/reference /…

4. @Bertrand Вы случайно не знаете, какое разрешение должен иметь токен доступа для чтения этих данных? Также можно ли прочитать эти данные с помощью $GITHUB_TOKEN ?

5. @piotrekkr У меня это работает в полном repo объеме. Это означает, что токен имеет доступ на запись в репозитории. К сожалению, я не нашел способа, который позволяет использовать токен только для чтения.