Разработчики PHP во всем мире могут радоваться, поскольку GitHub добавляет долгожданную функцию графов зависимостей для репозиториев PHP , использующих Composer. Эта функция обеспечивает оповещения системы безопасности, показывает аналитические данные о зависимостях и отображает зависимые от данного репозитория. Если он включен, он также может автоматически отправлять исправления безопасности в репозиторий через запросы на вытягивание.
GitHub изначально добавил поддержку JavaScript и Ruby при развертывании графов зависимостей в 2017 году . В июле этого года они добавили поддержку файлов блокировки Yarn . Это стало благом для сообщества JavaScript, поскольку оно предупреждает разработчиков об уязвимостях в коде, который они используют и отправляют пользователям.
«Мы также наблюдаем рост популярности PHP и Composer – PHP – четвертый по популярности язык на GitHub, а Composer – четвертый по популярности PHP-проект», – написал Джастин Хатчингс, старший менеджер по продукту в GitHub. Компания обратила внимание на тенденции. Сегодня JavaScript – горячая тема для многих разработчиков, но фреймворки PHP, такие как Laravel и Symfony, продолжают набирать популярность и доминируют среди популярных репозиториев PHP .
Composer – это де-факто стандарт управления зависимостями PHP. Core WordPress впервые добавил поддержку Composer для сред разработки в версии 5.1. Хотя это не часть пакета выпуска, это была небольшая победа после долгих лет обсуждения добавления базового composer.jsonфайла в ядро. Core не полностью поддерживает Composer или какой-либо тип управления зависимостями PHP, но авторы плагинов и тем используют его более чем несколько лет назад. Новые оповещения и автоматические запросы на вытягивание предложат еще один способ обнаружения проблем безопасности с плагинами и темами.
GitHub, похоже, постепенно развивает эту функцию. После проверки некоторых репозиториев с включенными графами зависимостей в некоторых по-прежнему не указаны их зависимости PHP. Это может занять некоторое время, но разработчики должны начать видеть зависимости, перечисленные в их файлах composer.jsonили composer.lock.
При обнаружении проблемы общедоступные репозитории должны начать получать автоматические предупреждения системы безопасности. GitHub начнет уведомлять владельцев репозиториев об этих предупреждениях через веб-уведомления или электронную почту, в зависимости от того, что владелец учетной записи установил в качестве своих предпочтений. Разработчикам, имеющим частные репозитории или отключившим графы зависимостей, необходимо разрешить им использовать преимущества новой функции.
Предупреждения системы безопасности в старых репозиториях могут раздражать. GitHub рекомендует архивировать эти репозитории. «Архивные репозитории посылают сигнал остальной части сообщества о том, что они не обслуживаются и не получают предупреждений о безопасности», – пояснил Хатчингс.
Разработчики, которые выбрали бета-версию автоматического исправления безопасности GitHub, теперь могут получать автоматические запросы на вытягивание (PR) от GitHub при обнаружении уязвимостей. GitHub создает PR с минимально возможной безопасной версией. Затем разработчик может объединить PR по своему усмотрению.
Графики зависимостей также значительно облегчают просмотр зависимостей репозитория. Раньше разработчикам приходилось погружаться в проект composer.jsonили просматривать его в Packagist, официальном каталоге пакетов для Composer. Теперь разработчики могут щелкнуть ссылку, чтобы просмотреть зависимый репозиторий.
Развертывание этой функции для репозиториев PHP – долгожданное дополнение, которое должно помочь большему количеству проектов защитить свой код.