update-codeql-query-dataflow-go

Migrate Go CodeQL queries from v1 to v2 dataflow API.

30|3|Updated Feb 4, 2026
One-click install
npx skills add https://github.com/advanced-security/codeql-development-mcp-server --skill update-codeql-query-dataflow-go
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: update-codeql-query-dataflow-go
Source: https://github.com/advanced-security/codeql-development-mcp-server/tree/main/.github/skills/update-codeql-query-dataflow-go
Command: npx skills add https://github.com/advanced-security/codeql-development-mcp-server --skill update-codeql-query-dataflow-go

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This migration guide enables teams to convert Go CodeQL queries from the legacy v1 dataflow API to the modern v2 shared dataflow API, ensuring functional equivalence with a test-driven approach.

Core Features & Use Cases

  • Converts v1 DataFlow::Configuration-based queries to v2 ConfigSig modules, updating sources, sinks, and flow predicates.
  • Renames and aligns go-specific dataflow predicates (isSanitizer to isBarrier, isAdditionalTaintStep to isAdditionalFlowStep) while preserving logic.
  • Provides a structured migration workflow with a Go-specific pattern guide for AST/IR nodes, RemoteFlowSource handling, and common sources/sinks.
  • Validates equivalence through TDD, with steps for baseline tests, migration steps, and verification.

Quick Start

Follow the migration workflow to convert a sample Go query from v1 to v2 and verify results using the MCP server tests.

Frequently Asked Questions about update-codeql-query-dataflow-go

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I migrate Go CodeQL queries from v1 to v2 dataflow API?

To migrate Go CodeQL queries from v1 to v2 dataflow API, convert DataFlow::Configuration-based queries to v2 ConfigSig modules. This process updates sources, sinks, and flow predicates while aligning Go-specific predicates like isSanitizer to isBarrier.

What is the best way to preserve results when migrating CodeQL taint-tracking configurations to v2?

The best way to preserve results during taint-tracking migration is test-driven validation. Establish baseline tests before migration, apply the v2 ConfigSig updates, and verify functional equivalence through comprehensive TDD-based validation.

How does the v2 CodeQL dataflow API handle Go-specific AST and IR nodes?

The v2 CodeQL dataflow API handles Go-specific AST and IR nodes through a structured migration workflow. This guide provides a Go-specific pattern guide for RemoteFlowSource handling, node alignment, and managing common sources and sinks.

Does the CodeQL v2 migration support queries using cfg.hasFlow patterns?

Yes, the CodeQL v2 migration supports queries using cfg.hasFlow patterns. It applies to queries using DataFlow::Configuration, isSanitizer, isAdditionalTaintStep, and cfg.hasFlow across Go sources and sinks.

Why do I need to rename isAdditionalTaintStep when converting to v2 shared dataflow?

You need to rename isAdditionalTaintStep to isAdditionalFlowStep to align with the v2 shared dataflow API module-based configuration requirements. This predicate renaming preserves the original taint tracking logic while satisfying v2 API standards.

What are the limitations when migrating to the v2 shared dataflow API for Go?

A key limitation is that the v2 shared dataflow API migration specifically targets Go CodeQL queries using DataFlow::Configuration and related predicates. Queries outside these patterns may require a different migration approach or manual conversion.