Skip to main content

Como configurar a verificação de código do seu dispositivo

Você pode habilitar, configurar e desabilitar code scanning para GitHub Enterprise Server. O Code scanning permite aos usuários verificar erros e vulnerabilidades em códigos.

Quem pode usar esse recurso?

A Code scanning está disponível para os repositórios pertencentes à organização do GitHub Enterprise Server. Esse recurso exige uma licença do GitHub Advanced Security. Para obter mais informações, confira "Sobre a Segurança Avançada do GitHub".

Sobre a code scanning

A Code scanning é um recurso que você usa para analisar o código em um repositório GitHub para encontrar vulnerabilidades de segurança e erros de codificação. Os problemas que forem identificados pela análise serão mostrados em seu repositório.

Você pode configurar code scanning para executar análise de CodeQL e análise de terceiros. O Code scanning também é compatível com a execução de análise nativa usando GitHub Actions ou externamente usando a infraestrutura de CI/CD existente. Os marcadores abaixo resumem todas as opções disponíveis para os usuários quando você configura o sua instância do GitHub Enterprise Server para permitir que a code scanning use ações.

Verificando se a sua licença inclui GitHub Advanced Security

Identifique se a sua empresa tem uma licença do GitHub Advanced Security revisando as configurações da empresa. Para obter mais informações, confira "Como habilitar a Segurança Avançada do GitHub para sua empresa".

Pré-requisitos para code scanning

Executar code scanning usando GitHub Actions

Como provisionar um executor auto-hospedado

GitHub Enterprise Server pode executar code scanning usando um workflow GitHub Actions. Primeiro, você precisa fornecer um ou mais executores auto-hospedados de GitHub Actions em seu ambiente. É possível fornecer executores auto-hospedados no nível da conta do repositório, organização ou empresa. Para obter mais informações, confira "Sobre executores auto-hospedados" e "Adicionar executores auto-hospedados."

Se você estiver provisionando um executor auto-hospedado para análise CodeQL, o executor precisará usar uma versão do sistema operacional CodeQL e uma arquitetura de CPU com suporte. Para obter mais informações, confira os requisitos do sistema do CodeQL.

Se estiver usando a configuração padrão da code scanning, atribua o rótulo code-scanning ao seu executor auto-hospedado. Para obter mais informações sobre como usar rótulos com executores auto-hospedados, consulte "Usar rótulos com os executores auto-hospedados".

Você deve garantir que o Git esteja na variável do PATH em qualquer executor auto-hospedados que você usar para executar ações de CodeQL.

Nota: se você usar CodeQL code scanning para analisar o código escrito em Python na sua empresa, o executor auto-hospedado deverá ter o Python 3 instalado.

Provisionamento de um conjunto de dimensionamento para o executor

É possível usar o Actions Runner Controller com a finalidade de criar um conjunto de dimensionamento para o executor dedicado para sua instância do GitHub Enterprise Server. Para obter mais informações, confira "Como implantar conjuntos de dimensionamento de executores com o Actions Runner Controller".

Provisionando ações para code scanning

Caso você deseje usar ações para executar a code scanning no GitHub Enterprise Server, as ações precisam estar disponíveis no seu dispositivo.

A ação CodeQL está incluída na sua instalação de GitHub Enterprise Server. Se o GitHub Enterprise Server 3.9 e o executor do GitHub Actions tiverem acesso à Internet, a ação baixará automaticamente o pacote da 2.12.7 do CodeQL necessário para realizar a análise. Como alternativa, você pode usar uma ferramenta de sincronização para tornar a versão mais recente do pacote de análise de CodeQL disponível localmente. Para obter mais informações, confira "Como configurar a análise do CodeQL em um servidor sem acesso à Internet" abaixo.

Você também pode disponibilizar ações de terceiros para os usuários de code scanning, configurando GitHub Connect. Para obter mais informações, confira "Como configurar a verificação de código do seu dispositivo" abaixo.

Configurar a análise de CodeQL em um servidor sem acesso à internet

Se o servidor em que você está executando GitHub Enterprise Server não estiver conectado à internet e você deseja permitir que os usuários habilitem CodeQL code scanning para seus repositórios, você deverá usar a ferramenta de sincronização de ação CodeQL para copiar o pacote de análises CodeQL de GitHub.com para seu servidor. A ferramenta e os detalhes de como usá-la estão disponíveis em https://github.com/github/codeql-action-sync-tool.

Se você configurar a ferramenta de sincronização de ação de CodeQL, você poderá usá-la para sincronizar as últimas versões da ação de CodeQL e pacote de análise associado a CodeQL. Estes são compatíveis com GitHub Enterprise Server.

Configurar GitHub Connect para sincronizar GitHub Actions

  1. Se você deseja fazer o download dos fluxos de trabalho de ação sob demanda a partir de GitHub.com, você deverá habilitar o GitHub Connect. Para obter mais informações, confira "Gerenciando o GitHub Connect".
  2. Você também precisará habilitar o GitHub Actions para o sua instância do GitHub Enterprise Server. Para obter mais informações, confira "Primeiros passos com o GitHub Actions para o GitHub Enterprise Server".
  3. A próxima etapa é configurar o acesso a ações no GitHub.com usando GitHub Connect. Para obter mais informações, confira "Habilitar o acesso automático a GitHub.com usando o GitHub Connect".
  4. Adicione um executor auto-hospedado ao seu repositório, organização ou conta corporativa. Para obter mais informações, confira "Adicionar executores auto-hospedados".

Executando a digitalização de código usando o CodeQL CLI

Se você não quiser usar GitHub Actions, você deverá executar code scanning usando o CodeQL CLI.

O CodeQL CLI é uma ferramenta de linha de comando que você usa para analisar bases de código em qualquer máquina, incluindo um sistema de CI/CD de terceiros. Para obter mais informações, confira "Usando a varredura de código com seu sistema de CI existente".