Go extractor does not support build-mode: none, preventing overlay/incremental analysis on PRs

Aperta
#3,796 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
45/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
github-actions, go

Direzione di ricerca

Inizia dalla gestione della modalità di build dell’estrattore Go e dall’opzione buildless indicata nell’issue; esamina codeql-extractor.yml per individuare le opzioni dichiarate, inclusa trap.cache.*. Riproduci il problema con build-mode: none e confronta il comportamento dell’estrazione con il workaround esistente. Il lavoro è completato quando Go accetta la modalità e l’estrazione overlay o incrementale funziona senza queste variabili d’ambiente.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Problem

The Go extractor (CodeQL CLI 2.25.1) does not support build-mode: none:

A fatal error occurred: Go does not support the none build mode.
Please try using one of the following build modes instead: autobuild, manual.

This means Go cannot benefit from overlay/incremental analysis on pull requests. JavaScript gets this automatically — in our monorepo we see Overlay filter removed 4311 out of 4312 files from extraction on JS PRs, reducing a full extraction to just the changed files. Go still does a full extraction of every package on every PR (~2.5 min for autobuild + ~1.5 min for analysis in a large monorepo).

Current workaround

We use legacy env var hacks to skip the actual go build:

env:
  CODEQL_EXTRACTOR_GO_FAST_PACKAGE_INFO: y
  CODEQL_EXTRACTOR_GO_BUILD_COMMAND: false

This avoids compilation but still runs full type extraction for every Go package on every PR.

Expected behavior

Setting build-mode: none should work for Go, enabling overlay/incremental analysis on PRs (as it already does for JavaScript/TypeScript). The Go extractor already has a buildless/standalone extraction path (DEPRECATED: Use --build-mode none instead appears in the extractor options for the buildless flag), so the extraction capability exists — it just isn't wired up to accept build-mode: none.

Additional context

  • We also noticed that Go's extractor does not declare trap.cache.* options in codeql-extractor.yml, so TRAP caching is also unavailable for Go.
  • The v3→v4 action upgrade enabled overlay for JS automatically, but there's no path to get the same benefit for Go.
  • codeql-action v4.35.1, CodeQL CLI 2.25.1
Lingua principale
TypeScript
Stelle
1.6k
Fork
493
Merge medio
1g 13h
PR unite (30g)
44

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di github/codeql-action

Tutte le issue di github/codeql-action

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.