Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Ausführen der CodeQL-Codeüberprüfung in einem Container

Du kannst code scanning in einem Container ausführen, indem du sicherstellst, dass alle Prozesse im selben Container ablaufen.

Code scanning ist für organisationseigene Repositorys in GitHub Enterprise Server verfügbar. Dieses Feature erfordert eine Lizenz für GitHub Advanced Security. Weitere Informationen findest du unter Informationen zu GitHub Advanced Security.

Informationen zu code scanning mit einem containerisierten Build

Wenn du die code scanning für eine kompilierte Sprache konfigurierst und den Code in einer Containerumgebung erstellst, schlägt die Analyse möglicherweise mit der Fehlermeldung „Während des Builds wurde kein Quellcode angezeigt“ fehl. Dies weist darauf hin, dass CodeQL den Code nicht überwachen konnten, da er kompiliert wurde.

Du musst CodeQL innerhalb des Containers ausführen, in dem du deinem Code erstellst. Dies gilt unabhängig davon, ob du die CodeQL CLI oder GitHub Actions verwendest. Weitere Informationen zur CodeQL CLI findest du unter Installieren der CodeQL CLI in deinem CI-System. Wenn du GitHub Actions verwenden, konfiguriere deinen Workflow so, dass alle Aktionen im selben Container ausgeführt werden. Weitere Informationen finden im Beispielworkflow.

Hinweis: Die CodeQL CLI ist derzeit nicht mit Nicht-Glibc-Linux-Distributionen wie (musl-basiertem) Alpine Linux kompatibel.

Abhängigkeiten

Möglicherweise hast du Schwierigkeiten, code scanning auszuführen, wenn deinem verwendeten Container bestimmte Abhängigkeiten fehlen (z. B. muss Git installiert und zur PATH-Variable hinzugefügt werden). Bei Abhängigkeitsproblemen überprüfe die Liste der Software, die normalerweise in den Runner-Images von GitHub enthalten ist. Weitere Informationen findest du in den versionsspezifischen readme-Dateien an diesen Speicherorten:

Beispielworkflow

Hinweis: In diesem Artikel werden die Features beschrieben, die mit der Version der CodeQL-Aktion und dem zugehörigen CodeQL-CLI-Bundle im ursprünglichen Release dieser Version von GitHub Enterprise Server verfügbar sind. Wenn dein Unternehmen eine neuere Version der CodeQL-Aktion verwendet, findest du im GitHub Enterprise Cloud-Artikel Informationen zu den neuesten Funktionen. Informationen zur Verwendung der neuesten Version findest du unter Konfigurieren der Codeüberprüfung für deine Appliance.

Dieser Beispielworkflow verwendet GitHub Actions, um CodeQL-Analysen in einer containerisierten Umgebung durchzuführen. Der Wert von container.image gibt den zu verwendenden Container an. In diesem Beispiel wird das Image codeql-container mit einem Tag von f0f91db genannt. Weitere Informationen findest du unter Workflowsyntax für 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@v3
      - name: Initialize CodeQL
        uses: github/codeql-action/init@v2
        with:
          languages: ${{ matrix.language }}
      - name: Build
        run: |
          ./configure
          make
      - name: Perform CodeQL Analysis
        uses: github/codeql-action/analyze@v2