9.2 KiB
title, intro, versions, topics, shortTitle, miniTocMaxHeadingLevel, ms.openlocfilehash, ms.sourcegitcommit, ms.translationtype, ms.contentlocale, ms.lasthandoff, ms.locfileid
| title | intro | versions | topics | shortTitle | miniTocMaxHeadingLevel | ms.openlocfilehash | ms.sourcegitcommit | ms.translationtype | ms.contentlocale | ms.lasthandoff | ms.locfileid | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Этап 5. Развертывание и масштабирование проверки кода | Можно использовать доступные API-интерфейсы для программного развертывания {% data variables.product.prodname_code_scanning %} отдельно по командам и по языкам в организации с помощью собранных ранее данных репозитория. |
|
|
5. Rollout code scanning | 3 | abbcdf4c1e4a231a568e8d8cd488877ebdf2fd9f | f638d569cd |
MT | ru-RU | 10/25/2022 | 148109105 |
{% note %}
Эта статья является частью серии "Внедрение {% data variables.product.prodname_GH_advanced_security %} в большом масштабе". Предыдущая статья этой серии: Этап 4. Создание внутренней документации.
{% endnote %}
Включение проверки кода
Используя данные, сопоставленные на этапе 2, можно приступить к включению GHAS, а затем и {% data variables.product.prodname_code_scanning %} в репозиториях — по одному языку за раз. Пошаговый процесс включения GHAS должен выглядеть следующим образом.
- Включите GHAS в репозитории. Дополнительные сведения см. в статье Управление параметрами безопасности и анализа для репозитория.
- Создайте запрос на вытягивание в ветви репозитория по умолчанию с файлом
codeql-analysis.yml, содержащим пример запуска CodeQL для этого языка. Дополнительные сведения см. в разделе Создание запроса на вытягивание. - Создайте проблему в репозитории, чтобы объяснить, почему был вызван запрос на вытягивание. Созданная проблема может содержать ссылку на предыдущее сообщение, отправленное всем пользователям, но также может объяснить, какие изменения внесены в запрос на вытягивание, какие дальнейшие действия необходимо предпринять команде, каковы обязанности команды и как команда должна использовать {% data variables.product.prodname_code_scanning %}. Дополнительные сведения см. в статье "Создание проблемы".
Существует общедоступный инструмент, который выполняет первые два шага — ghas-enablement. Вы можете повторно запускать инструмент ghas-enablement для разных языков там, где это имеет смысл. Например, JavaScript, TypeScript, Python и Go, скорее всего, имеют аналогичный процесс сборки и могут использовать один файл анализа CodeQL. Инструмент ghas-enablement можно также использовать для таких языков, как Java, C и C++, но из-за различных особенностей сборки и компиляции этих языков может потребоваться создать более узкоспециализированные файлы анализа CodeQL.
{% note %}
Примечание. Если вы планируете использовать {% data variables.product.prodname_actions %} для управления {% data variables.product.prodname_code_scanning %} и не используете инструмент ghas-enablement, имейте в виду, что доступ к каталогу .github/workflow через API отсутствует. Это означает, что не получится создать сценарий без клиента git, лежащего в основе автоматизации. Обходной путь — использовать сценарии bash на компьютере или в контейнере с клиентом git. Клиент git может отправлять и извлекать файлы в каталог .github/workflows, в котором находится файл codeql-analysis.yml.
{% endnote %}
Важно не просто отправить файл codeql-analysis.yml в ветвь репозитория по умолчанию. Используя запрос на вытягивание, команда разработчиков может просматривать и объединять права владения, позволяя команде разработчиков узнать о {% data variables.product.prodname_code_scanning %} и участвовать в этом процессе.
Необходимо записать URL-адреса запроса на вытягивание, созданные службой автоматизации, и проверять каждую неделю на наличие каких-либо действий и смотреть, какие из них закрыты. Через несколько недель может потребоваться создать другую проблему или отправить внутренние сообщения электронной почты, если запрос на вытягивание остается не объединенным.
Создание профильных специалистов
Затем можно перейти к следующему этапу включения, на котором создаются внутренние профильные специалисты и организуются встречи в компании. Открытие запросов и проблем с запросами на вытягивание в репозиториях, скорее всего, покроет большую часть внедрения, но это не позволит решить разовые варианты использования, когда для конкретного процесса сборки, платформы или библиотеки необходимо включить определенные флаги функций. Для обеспечения высокого уровня внедрения необходим более персонализированный и практический подход, особенно для языков Java, C и C++.
Рекомендуется проводить регулярные собрания в компании по конкретным темам, чтобы просвещать и обсуждать развертывание с более широкой группой. Это гораздо эффективнее для предприятия с тысячами репозиториев по сравнению с работой с одной командой за раз. Команды могут приходить на сессии, которые имеют отношение к ним. Некоторые примеры сеансов, которые были запущены ранее, включают следующие.
- {% data variables.product.prodname_code_scanning_capc %} в контейнере.
- {% data variables.product.prodname_code_scanning_capc %} и Java Struts.
- {% data variables.product.prodname_code_scanning_capc %} и JSP.
Вы можете использовать собранные данные о распределении различных языков между репозиториями для создания целевых собраний.
{% note %}
Следующая статья этой серии: Этап 6. Развертывание и масштабирование сканирования секретов.
{% endnote %}