Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.
O GitHub AE está atualmente sob versão limitada. Entre em contato com nossa Equipe de Vendas para saber mais.

Executar a varredura de código CodeQL em um contêiner

Você pode executar Varredura de código em um contêiner garantindo que todos os processos sejam executados no mesmo container.

Varredura de código está disponível como parte de Segurança Avançada GitHub, que é grátis durante a versão beta. Para obter mais informações, consulte "Sobre Segurança Avançada GitHub".

Nota: Varredura de código está atualmente em versão beta e sujeito a alterações.

Note: The Executor do CodeQL is being deprecated. Please use the CodeQL CLI version 2.6.2 or greater instead. GitHub Enterprise Server 3.3 will be the final release series that supports the Executor do CodeQL. On GitHub Enterprise Cloud, the Executor do CodeQL will be supported until March 2022. For more information, see the CodeQL runner deprecation.

Sobre Varredura de código com uma compilação de contêiner

Se você estiver configurando Varredura de código para um idioma compilado e estiver criando o código em um ambiente de contêiner, a análise pode falhar com a mensagem de erro "Nenhum código fonte foi visto durante a compilação." Isso indica que CodeQL não conseguiu monitorar seu código da forma como foi compilado.

Você deve executar CodeQL dentro do contêiner no qual você constrói seu código. Isso se aplica se você estiver usando Executor do CodeQL ou GitHub Actions. Para Executor do CodeQL, consulte "Executando Executor do CodeQL no seu sistema de CI" para obter mais informações. Se estiver usando GitHub Actions, configure seu fluxo de trabalho para executar todas as ações no mesmo contêiner. Para obter mais informações, consulte "Exemplo de fluxo de trabalho".

Dependências

Você pode ter dificuldade para executar Varredura de código se o contêiner que você está usando estiver com certas dependências ausentes (por exemplo, o Git deve ser instalado e adicionado à variável PATH). Se você encontrar problemas de dependência, revise a lista de software geralmente incluída nos ambientes virtuais de GitHub. Para obter mais informações, consulte os arquivos de readme específicos da versão nesses locais:

Exemplo de fluxo de trabalho

Este fluxo de trabalho de amostra usa GitHub Actions para executar a análise de CodeQL em um ambiente de contêiner. O valor do container.image identifica o contêiner a ser usado. Neste exemplo, a imagem é denominada codeql-container, com uma tag de f0f91db. Para obter mais informações, consulte "Sintaxe de fluxo de trabalho para o GitHub Actions".

name: "CodeQL"

on: 
  push:
    branches: [main]
  pull_request:
    branches: [main]
  schedule:
    - cron: '15 5 * * 3'

jobs:
  analyze:
    name: Analyze
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false
      matrix:
        language: [java]

    # Specify the container in which actions will run
    container:
      image: codeql-container:f0f91db

    steps:
      - name: Checkout repository
        uses: actions/checkout@v2
      - name: Initialize CodeQL
        uses: github/codeql-action/init@v1
        with:
          languages: ${{ matrix.language }}
      - name: Build
        run: |
          ./configure
          make
      - name: Perform CodeQL Analysis
        uses: github/codeql-action/analyze@v1

Esse documento ajudou você?

Política de Privacidade

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.