Граф зависимостей может определить зависимости вашего проекта с помощью следующих методов.
| Метод | Принцип работы |
|---|---|
| Статический анализ | Парсирование манифеста и блокировки файлов в вашем репозитории |
| API отправки зависимостей | Принимает данные зависимостей, которые вы предоставляете программно |
После того как зависимости появляются в графе, вы можете получить Dependabot alerts и Dependabot security updates для любых известных уязвимостей.
Статический анализ
Когда вы включите граф зависимостей, GitHub сканирует ваш репозиторий на наличие поддерживаемых файлов манифеста и анализирует имя и версию каждого пакета. Граф обновляется, когда вы меняете поддерживаемый манифест или файл блокировки на вашей стандартной ветке .
Статический анализ может выявить:
- Прямые зависимости , явно определённые в манифесте или файле блокировки
- Косвенные зависимости — зависимости этих прямых зависимостей, также называемые «транзитивными зависимостями» — но только если они определены в манифесте или файле блокировки, а не если разрешены во время сборки
Для самого надёжного графа стоит использовать файлы блокировки (или их аналоги), потому что они точно определяют, какие версии прямых и косвенных зависимостей вы используете сейчас. Файлы блокировки также гарантируют, что все участники репозитория используют одни и те же версии, что облегчит тестирование и отладку кода.
API отправки зависимостей
Вы можете вызвать API отправки зависимостей в своём скрипте или рабочем процессе. Это полезно, если:
- Вам нужно указывать транзитивные зависимости, которые нельзя обнаружить из файлов блокировки.
- Вам нужно создать собственную логику или вы используете внешнюю систему CI/CD.
Зависимости отправляются в API отправки зависимостей в виде моментального снимка. Это список зависимостей, связанных с SHA коммита и другими метаданными, отражающий текущее состояние вашего репозитория.
Если вы вызываете API в рабочем процессе GitHub Actions, вы можете использовать готовое действие для вашей экосистемы, которое автоматически собирает зависимости и отправляет их в API. В противном случае вы можете написать собственное действие или вызвать API из внешней системы.
Отправленные зависимости недоступны в аналитике зависимостей вашей организации.
Дополнительные сведения см. в разделе AUTOTITLE.