Репортаж от Wedoany,Офис программ с открытым исходным кодом (OSPO) GitHub с помощью новой функции проверки лицензионной совместимости включил тысячи внутренних зависимостей в автоматизированный процесс проверки. Эта функция позволяет разработчикам непосредственно на этапе pull request проверять, соответствует ли лицензия новой зависимости корпоративной политике, тем самым освобождая проверку соответствия от ручного труда или сторонних инструментов.

С постоянным добавлением новых зависимостей на платформе GitHub и во внутренних проектах управление лицензиями становится ключевым звеном в обеспечении безопасности цепочки поставок программного обеспечения. Почти каждое программное обеспечение сопровождается лицензионным соглашением, обязательства по которому варьируются от простых требований об указании авторства до обязательного раскрытия всего исходного кода. Для компаний, продающих закрытые бинарные приложения, необходимо избегать зависимостей, требующих раскрытия проприетарного кода; для проектов, планирующих выпуск открытого ПО, следует избегать зависимостей, подпадающих под коммерческие или несовместимые лицензии. Несоблюдение требований может привести к судебным разбирательствам и репутационным потерям.
Традиционная проверка лицензий часто полагалась на ручной труд или стороннее ПО. Функция проверки лицензионной совместимости, запущенная GitHub для клиентов Advanced Security, изменила этот процесс. Функция активируется через наборы правил и может автоматически сканировать лицензии новых зависимостей в pull request, изменяющих зависимости, для конкретного репозитория. Если лицензия находится в разрешённом списке или для пакета существует исключение, проверка проходит успешно; в противном случае инструмент генерирует предупреждение в pull request. Команда проверки может на этом основании решить, разрешить ли данную лицензию или пакет, и может установить область действия исключения — на уровне предприятия или репозитория.

Два месяца назад OSPO GitHub перешёл на эту новую функцию с внутреннего инструмента управления соответствием. Будучи ранним пользователем, команда предоставляла отзывы на этапе публичной предварительной версии функции. На начальном этапе OSPO установил политику на основе внутреннего накопленного списка приемлемых лицензий и использовал режим «оценки», который публикует предупреждения, но не блокирует слияние, чтобы разработчики могли адаптироваться к новому процессу. Примерно через четыре недели работы предупреждения в основном касались пакетов с аномальными, отсутствующими или явно запрещёнными лицензиями. Команда по лицензионной политике, состоящая из членов OSPO и экспертов по анализу цепочек поставок, распределена по четырём часовым поясам для обеспечения своевременной обработки запросов на проверку. Команда обычно обрабатывает каждый запрос в течение от одного до нескольких часов и разработала экстренную процедуру «разбития окна» — если критическое исправление заблокировано предупреждением, можно временно отключить проверку лицензий для этого репозитория, изменив значение пользовательского атрибута. На практике эта экстренная процедура использовалась только один раз.

Функция поддерживает сопоставление с подстановочными знаками для исключений пакетов, например, разрешение всего пространства имён @github-ui/*, что позволяет избежать утверждения каждого пакета по отдельности. Внутренняя документация и обучение помогают разработчикам понять важность соблюдения требований, распределяя ответственность за управление соответствием на повседневную работу команд. Функция проверки лицензионной совместимости теперь находится в публичной предварительной версии. Клиенты GitHub Enterprise Cloud могут использовать её в репозиториях с активной лицензией GHAS Code Security. Соответствующую информацию можно найти в официальной документации GitHub.









