Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. codeQL: Wie es deinen Code verbessert

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    codeQL: Wie es deinen Code verbessert

    This topic has been deleted. Only users with topic management privileges can see it.
    • Jey Cee
      Jey Cee Developer last edited by Jey Cee

      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.
      d2794d8e-bb7f-4738-91c9-d74d2145561a-grafik.png

      Darunter sieht man dann eine Liste mit Meldungen.
      db2b1fd0-d992-4897-8647-baa2ed2801d4-grafik.png

      Ö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.
      23789411-2aeb-4a0d-965c-c13186c70cfc-grafik.png

      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.
      483ee66d-acde-4467-b008-c05f9104e618-grafik.png


      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.
      f27d37e6-d457-4f7e-94be-6d1a1e4140a6-grafik.png
      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.

      OliverIO Codierknecht 2 Replies Last reply Reply Quote 4
      • OliverIO
        OliverIO @Jey Cee last edited by

        @jey-cee
        sehr schön

        1 Reply Last reply Reply Quote 0
        • Codierknecht
          Codierknecht Developer Most Active @Jey Cee last edited by

          @jey-cee
          Ah, so eine Art statische Codeanalyse. Cool!

          mcm1957 1 Reply Last reply Reply Quote 0
          • mcm1957
            mcm1957 @Codierknecht last edited by mcm1957

            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.

            1 Reply Last reply Reply Quote 1
            • Jey Cee
              Jey Cee Developer last edited by

              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.

              1 Reply Last reply Reply Quote 0
              • First post
                Last post

              Support us

              ioBroker
              Community Adapters
              Donate

              514
              Online

              31.7k
              Users

              79.8k
              Topics

              1.3m
              Posts

              4
              5
              353
              Loading More Posts
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes
              Reply
              • Reply as topic
              Log in to reply
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              The ioBroker Community 2014-2023
              logo