Skip to main content

Эта версия GitHub Enterprise Server была прекращена 2024-07-09. Исправления выпускаться не будут даже при критических проблемах безопасности. Для повышения производительности, повышения безопасности и новых функций выполните обновление до последней версии GitHub Enterprise Server. Чтобы получить справку по обновлению, обратитесь в службу поддержки GitHub Enterprise.

Использование сканирования кода с существующей системой CI

Вы можете проанализировать код с помощью CodeQL CLI или другого средства в сторонней системе непрерывной интеграции и передать результаты в ваш экземпляр GitHub Enterprise Server. Полученные оповещения code scanning отображаются вместе с любыми другими оповещениями, которые создаются в GitHub Enterprise Server.

Кто может использовать эту функцию?

Code scanning доступен для репозиториев, принадлежащих организации, в GitHub Enterprise Server. Для этой функции требуется лицензия на GitHub Advanced Security. Дополнительные сведения см. в разделе Сведения о GitHub Advanced Security.

Примечание. Администратор сайта должен включить code scanning для ваш экземпляр GitHub Enterprise Server, прежде чем использовать эту функцию. Дополнительные сведения см. в разделе Настройка сканирования кода для устройства.

Возможно, вы не сможете включить или отключить code scanning , если владелец предприятия установил политику GitHub Advanced Security (GHAS) на корпоративном уровне. Дополнительные сведения см. в разделе Применение политик безопасности кода и анализа для вашего предприятия.

Сведения об использовании code scanning с существующей системой CI

В качестве альтернативы запуску code scanning в GitHub с помощью GitHub Actions, можно проанализировать код во внешней системе непрерывной интеграции или непрерывной доставки или развертывания (CI/CD), а затем передать результаты в GitHub Enterprise Server.

Вы можете добавить CodeQL CLI в стороннюю систему или использовать другое стороннее средство статического анализа, которое может создавать результаты в виде формата обмена статическими результатами анализа (SARIF) 2.1.0. Дополнительные сведения о поддерживаемом формате SARIF см. в разделе "Поддержка SARIF для проверки кода".

CodeQL CLI — это автономное средство командной строки, которое можно использовать для анализа кода. Дополнительные сведения см. в разделе Сведения о интерфейсе командной строки CodeQL.

Оповещения для code scanning, создаваемые внешним образом, отображаются так же, как и для code scanning, создаваемых в GitHub. При выполнении сканирования кода с помощью нескольких конфигураций одно и то же оповещение иногда создается несколькими конфигурациями. Если оповещение поступает из нескольких конфигураций, можно просмотреть состояние оповещения для каждой конфигурации на странице генерации оповещений. Дополнительные сведения см. в разделе О предупреждениях о сканировании кода.

Примечание. Передача данных SARIF для отображения как code scanning приводит к тому, что GitHub Enterprise Server поддерживается для репозиториев, принадлежащих организации, с включенными GitHub Advanced Security . Дополнительные сведения см. в разделе Управление параметрами безопасности и анализа для репозитория.

Настройка средства анализа

Сначала необходимо скачать средство анализа и настроить его с помощью системы CI.

Если вы используете CodeQL CLI, необходимо сделать все содержимое пакета CodeQL CLI доступным для каждого сервера CI, для которого требуется выполнить анализ CodeQL code scanning. Дополнительные сведения см. в разделе Настройка интерфейса командной строки CodeQL.

После того как средство анализа доступно для серверов в системе CI, вы будете готовы к созданию данных.

Анализ кода

Чтобы проанализировать код с помощью CodeQL CLI или другого средства анализа, необходимо проверка из кода, который необходимо проанализировать и настроить среду базы кода, убедившись, что доступны все зависимости. Вы также можете найти команду сборки для базы кода, обычно доступную в файле конфигурации системы CI.

Затем вы можете выполнить шаги для анализа базы кода и создания результатов, которые будут отличаться в зависимости от используемого статического средства анализа.

Если вы используете CodeQL CLI, сначала необходимо создать базу данных CodeQL из кода, а затем проанализировать базу данных для получения результатов SARIF. Дополнительные сведения см. в разделе "[AUTOTITLE" и "Подготовка кода для анализа CodeQL](/code-security/codeql-cli/getting-started-with-the-codeql-cli/analyzing-your-code-with-codeql-queries)".

Создание маркера для проверки подлинности с помощью GitHub Enterprise Server

Каждому серверу CI требуется GitHub App или personal access token для отправки результатов в GitHub Enterprise Server, независимо от того, используются ли данные CodeQL CLI, REST API или другой метод. Необходимо использовать маркер доступа или GitHub App с разрешением на запись security_events. Если серверы CI уже используют маркер с этим область для проверка репозиториев из GitHub Enterprise Server, можно использовать тот же маркер. В противном случае создайте новый маркер с разрешением на запись security_events и добавьте его в хранилище секретов системы CI. Дополнительные сведения см. в разделе "[AUTOTITLE" и "Создание приложений GitHub](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)".

Дополнительные сведения о различных методах отправки результатов в GitHub Enterprise Serverсм. в разделе "Отправка файла SARIF в GitHub".

Отправка результатов в GitHub Enterprise Server

После анализа кода вы создали результаты SARIF и убедитесь, что вы можете пройти проверку подлинности с помощью GitHub Enterprise Server, вы можете передать результаты в GitHub Enterprise Server. Дополнительные сведения о различных методах, которые можно использовать для отправки результатов, см. в разделе "Отправка файла SARIF в GitHub".

Дополнительные сведения о передаче результатов в GitHub Enterprise Server с помощью CodeQL CLIсм. в разделе "Отправка результатов анализа CodeQL в GitHub".

По умолчанию code scanning ожидается один файл результатов SARIF по каждому анализу для репозитория. Следовательно, когда вы загружаете второй файл результатов SARIF для фиксации, он рассматривается как замена исходного набора данных. Вы можете отправить два разных ФАЙЛА SARIF для одного анализа, если, например, средство анализа создает другой ФАЙЛ SARIF для каждого языка, который он анализирует или каждый набор правил, которые он использует. Если вы хотите отправить несколько наборов результатов для фиксации в репозитории, необходимо определить каждый набор результатов как уникальный набор. Способ указания категории для отправки SARIF зависит от метода анализа. Дополнительные сведения см. в разделе Поддержка SARIF для проверки кода.