CodeQL 2.27.1 akzeptiert per Lockfile gepinnte GitHub Actions
GitHub hat CodeQL 2.27.1 am 25. September veröffentlicht, und die Version läuft bereits im Code Scanning auf github.com; GitHub Enterprise Server bekommt sie ab Version 3.24. Neu ist die Unterstützung für Kotlin 2.4.20, außerdem werden Argumente der Form Foo::class.java unter dem K2-Compiler jetzt korrekt extrahiert - das beseitigt Fehlalarme der Android-Abfrage implicit-pendingintents.
Für die meisten Repositories ist die Änderung an den Abfragen für GitHub Actions am wichtigsten. actions/unpinned-tag warnt, wenn ein Workflow eine Action über einen veränderlichen Tag statt über einen Commit einbindet. Die Abfrage meldet nun keine Actions mehr, die durch einen strukturell gültigen Eintrag in .github/workflows/actions.lock für den betreffenden Workflow gepinnt sind. Auch Selbstverweise der Form uses: $/path/to/action werden nicht mehr gemeldet: Sie zeigen auf dasselbe Repository beim laufenden Commit und können sich nicht verschieben.
Auch die Sprachabdeckung wächst. Für C und C++ gibt es die Abfrage cpp/ambiguous-assignment-of-comparison für Code, der einen Vergleich einer Variablen zuweist und die Zuweisung als Bedingung nutzt, dazu Taint-Modelle für den Resolver von Boost.Asio, den Blob-Puffer aus Bloombergs BDE und die protobuf-API MessageLite. Go erhält Modelle für Neuerungen der Standardbibliothek 1.27, darunter strings.CutLast und das neue Paket encoding/json/jsontext. Die JavaScript-Analyse erkennt Fastify-Server, die über verkettete Aufrufe wie withTypeProvider() konfiguriert sind; das kann zusätzliche Treffer von js/missing-rate-limiting bringen und falsche beseitigen, wo ein globales Plugin die Route schützt. C# bekommt cs/linq/missed-firstordefault, schlägt keine LINQ-Umbauten mehr vor, die nicht kompilieren würden, und die Anti-Forgery-Abfrage versteht ein global registriertes AutoValidateAntiforgeryTokenAttribute.

Was das bedeutet
Der Großteil der Liste ist die unscheinbare Arbeit, Fehlalarme zu verringern - und genau das verdient Aufmerksamkeit. Eine Regel, die bei korrektem Code anschlägt, erzieht die Leute zum Wegklicken, und wenn das Wegklicken zur Gewohnheit wird, trifft es auch den echten Treffer. Die Änderung an unpinned-tag zeigt das gut: Projekte, die ihre Actions bereits über ein Lockfile gepinnt hatten, bekamen weiterhin zu hören, sie hätten es nicht getan. Die Regel bestrafte also genau das Verhalten, das sie fördern soll.
Zwei praktische Schritte. Wer im Repository viele weggeklickte Alarme von unpinned-tag gesammelt hat, sollte sie nach dem Update durchsehen: Was verschwindet, war Rauschen, und was bleibt, hat jetzt Bedeutung. Und wer sich bei Fastify-Diensten auf die Rate-Limiting-Abfrage verlässt, sollte mit Bewegung der Trefferzahl in beide Richtungen rechnen und die neuen Ergebnisse sichten, statt die Änderung für eine Regression zu halten.