Skip to main content

Esta versão do GitHub Enterprise será descontinuada em 2023-01-18. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, segurança aprimorada e novos recursos, atualize para a última versão do GitHub Enterprise. Para obter ajuda com a atualização, entre em contato com o suporte do GitHub Enterprise.

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

Você pode executar code scanning em um contêiner garantindo que todos os processos sejam executados no mesmo container.

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

Sobre code scanning com uma compilação de contêiner

Se você estiver configurando code scanning 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 quando você está usando a CodeQL CLI, o CodeQL runner, ou o GitHub Actions. Para a CodeQL CLI ou o CodeQL runner, confira "Como instalar a CodeQL CLI no sistema de CI" ou "Como executar o CodeQL runner no 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, confira "Exemplo de fluxo de trabalho".

Observação: Atualmente, o CodeQL CLI não é compatível com distribuições Linux não glibc, como o Alpine Linux (baseado em musl).

Dependências

Você pode ter dificuldade para executar code scanning 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 nas imagens do executor de GitHub. Para obter mais informações, confira os arquivos readme específicos da versão nestes locais:

Fluxo de trabalho de exemplo

Observação: este artigo descreve os recursos disponíveis na versão da ação do CodeQL e o pacote da CLI do CodeQL associado incluído na versão inicial desta versão do GitHub Enterprise Server. Se a sua empresa usar uma versão mais recente da ação do CodeQL, confira o artigo do GitHub Enterprise Cloud para obter informações sobre os recursos mais recentes. Para obter informações sobre como usar a última versão, confira "Como configurar a verificação de código para seu dispositivo".

Este fluxo de trabalho de amostra usa GitHub Actions para executar a análise de CodeQL em um ambiente de contêiner. O valor de container.image identifica o contêiner a ser usado. Neste exemplo, a imagem é nomeada codeql-container, com uma tag de f0f91db. Para obter mais informações, confira "Sintaxe de fluxo de trabalho do 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
    permissions:
      security-events: write
      actions: read

    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