Go extractor does not support build-mode: none, preventing overlay/incremental analysis on PRs
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 45/100
調査の方向性
Go extractor の build-mode の処理と、issue で参照されている buildless オプションから始めます。宣言されているオプション(trap.cache.* を含む)について codeql-extractor.yml を確認します。build-mode: none で再現し、既存の workaround と抽出動作を比較します。Go がそのモードを受け入れ、これらの環境変数なしで overlay またはインクリメンタル抽出が機能すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
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 incodeql-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
- 主要言語
- TypeScript
- スター
- 1.6k
- フォーク
- 493
- 平均マージ
- 1日 13時間
- マージ済み PR(30日)
- 44
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
github/codeql-action のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
github/codeql-action#4052 · コメント 4 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
github/codeql-action#4078 · コメント 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
github/codeql-action#4008 · コメント 9 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
github/codeql-action#3978 · コメント 4 件 · リアクション 1 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 48/100
github/codeql-action#3915 · コメント 6 件 · リアクション 3 件 ·
github/codeql-action の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
safetrustcr/dApp-SafeTrust#426 ·
-
area:workflow bug ready-for-agent
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
fil-donadoni/tolaria#4409 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
Fission-AI/OpenSpec#1960 ·
-
Add dependabot オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
corsairdev/corsair#1764 ·