NEWS
codeQL: Wie es deinen Code verbessert
-
Was ist codeQL?
codeQL ist eine Art Suchmaschine / Datenbank mit eigener Syntax. Der Zweck ist es große Mengen Code auf Schwachstellen, Sicherheitsprobleme und Qualität hin zu Untersuchen.
Oh man, noch mehr Arbeit bei der Entwicklung für mich!
Nur wenn du eigene Code Prüfung schreiben willst. Zum Glück für uns hat LGTM.com (wird Ende 2022 abgeschaltet) den Job bereits Übernommen und sehr Umfangreiche Tests erstellt. Diese Tests wurden jetzt in Github integriert und man muss sie nur noch Aktivieren.
Die Tests werden unter dem Namen "CodeQL Analysis" weitergeführt.Ok, ich hab die Tests Aktiviert und jetzt?
Nachdem man die Tests Aktiviert hat findet man im Github Repository im Tab "Security" den Punkt "Code scanning".Hier bekommt man erst mal Informationen über den letzten Scan.
Darunter sieht man dann eine Liste mit Meldungen.
Öffnet man die Meldung sieht man den Code mit der mehr oder weniger Aussagekräftigen Meldung. Wenn man Anfänger ist kann man damit vielleicht erst mal wenig Anfangen.
Deswegen gibt es darunter eine Ausführliche Beschreibung mit einer Empfehlung was man ändern kann, ein Beispiel und Referenzen.
Sicher wird der Umfang je nach Meldung variieren, aber es hilft auf jeden Fall beim Verständnis warum diese Meldung erscheint.
Also gut das hat mich Überzeugt, wie kann ich die Test Aktivieren?
Geh im Repository auf den Tab "Security" -> "Code scanning" -> "Configure scanning tool".
Jetzt bei CodeQL Analysis "Configure" Klicken.
Anschließend kann man Änderungen am Workflow vornehmen wenn man möchte, ansonsten einfach auf "Start commit" Klicken und im sich öffnenden Fenster bestätigen.
Damit wurden die Tests Aktiviert und direkt gestartet.
Je nach Code Umfang und Auslastung der Github Server dauert es etwas bis der Scan abgeschlossen ist. -
@jey-cee
sehr schön -
@jey-cee
Ah, so eine Art statische Codeanalyse. Cool! -
Noch ein Hinweis:
Für den automatischen Test wird von github die Datei
.github/workflows/codeql.yml
angelegt. Dort können die Tests konfiguriert werden. Normalerweise ist dort KEINE Änderung notwendig damit die Basistests laufen. Wenn man will kann man hier noch zusätzliche, teilweise noch als experimentell bezeichnete Tests, aktivieren. Das erfolgt durch Einfügen der Zeile
queries: +security-and-quality
wie unten als Ausschnitt gezeigt.
Achtung auf Einrückungen etc. ist ein Jammer - äh YAML - File.
Martin
# Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@v2 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. # By default, queries listed here will override any specified in a config file. # Prefix the list here with "+" to use these queries and those in the config file. # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs # queries: security-extended,security-and-quality queries: +security-and-quality # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
@Jey-Cee
VIELEN DANK für deine klare Erläuterung / Info. -
Mal als Ergänzung:
Ich hab die Ergebnisse vom Code Scan mit denen meiner IDE (Webstorm) verglichen.
Was soll ich sagen die IDE hat 100%+ gefunden. In der IDE sind aber auch checks für html, css und keine Ahnung was noch Aktiviert.
Die Hilfe in der IDE ist nicht so Umfangreich wie auf Github, aber Hilft trotzdem weiter.Also nutzt ruhig auch die Lokalen tools die ihr bereits habt.