Repository navigation
feat(golang): Scan & CI pipeline routing (PR-09) - #528
Merged
Merged
Conversation
SafeDep Report SummaryNo dependency changes detected. Nothing to scan. This report is generated by SafeDep Github App |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #528 +/- ##
==========================================
- Coverage 82.89% 82.77% -0.12%
==========================================
Files 132 133 +1
Lines 15555 15627 +72
==========================================
+ Hits 12895 12936 +41
- Misses 2181 2210 +29
- Partials 479 481 +2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
shivasurya
force-pushed
the
feature/pr-08-go-call-graph-construction
branch
from
February 15, 2026 03:57
3007e50 to
fe06d29
Compare
shivasurya
force-pushed
the
feature/pr-09-go-scan-ci-routing
branch
from
February 15, 2026 03:57
384adcf to
9bab648
Compare
This was referenced Feb 15, 2026
Owner
Author
This was referenced Feb 15, 2026
Owner
Author
Merge activity
|
shivasurya
changed the base branch from
feature/pr-08-go-call-graph-construction
to
graphite-base/528
February 15, 2026 04:13
Implements PR-09 to wire Go call graph construction into scan.go and ci.go, enabling pathfinder scan and pathfinder ci commands to analyze Go projects. Changes: 1. Created graph/callgraph/builder/merge.go (40 lines) - MergeCallGraphs function to combine Python + Go call graphs - Merges Functions, CallSites, Edges, and ReverseEdges maps - FQN namespacing prevents collisions between languages 2. Created graph/callgraph/builder/merge_test.go (80 lines) - TestMergeCallGraphs: Verifies Python + Go merge - TestMergeCallGraphs_EmptySource: Tests empty src handling - TestMergeCallGraphs_EmptyDestination: Tests empty dst handling - 100% coverage on merge.go 3. Modified graph/types.go - Added Language string field to Node struct - Tagged as "go", "python", or "java" during parsing - Keeps existing boolean fields for backward compatibility 4. Modified all parser files to set Language field - graph/parser_python.go: Added Language: "python" to 9 node types - graph/parser_java.go: Added Language: "java" to 6 node types - graph/parser_golang.go: Added Language: "go" to 14 node types - graph/parser_statements.go: Added Language: "java" to 5 statement nodes 5. Modified cmd/scan.go - Added Go call graph integration after Python call graph build - Auto-detects go.mod presence - Gracefully degrades if Go build fails (logs warning) - Merges Go call graph into unified graph 6. Modified cmd/ci.go - Identical Go call graph integration pattern - Same auto-detection and graceful degradation - Unified call graph for CI/SARIF output Test Results: ✅ gradle buildGo: SUCCESSFUL ✅ gradle testGo: ALL TESTS PASS ✅ gradle lintGo: 0 ISSUES ✅ merge.go coverage: 100% ✅ Overall builder package: 72% (100% on new code) Integration: - Depends on PR-08 (BuildGoCallGraph) - Depends on PR-07 (BuildGoModuleRegistry) - Non-breaking: All existing Python/Java functionality unchanged - Language tagging enables future filtering in MCP server Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
shivasurya
force-pushed
the
feature/pr-09-go-scan-ci-routing
branch
from
February 15, 2026 04:15
9bab648 to
dd1e5f1
Compare
Code Pathfinder Security ScanNo security issues detected.
Powered by Code Pathfinder |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




Summary
Wires the Go call graph construction (from PR-08) into the scan and CI pipelines, enabling
pathfinder scanandpathfinder cicommands to analyze Go projects. This makes the full analysis pipeline language-agnostic and enables mixed Python/Go projects.Changes
1. Core Merge Functionality
Created
graph/callgraph/builder/merge.go(40 lines)MergeCallGraphsfunction to combine Python + Go call graphsCreated
graph/callgraph/builder/merge_test.go(80 lines)TestMergeCallGraphs: Verifies Python + Go mergeTestMergeCallGraphs_EmptySource: Tests empty src handlingTestMergeCallGraphs_EmptyDestination: Tests empty dst handling2. Language Field Addition
Modified
graph/types.goLanguage stringfield toNodestructUpdated all parser files to set Language field:
graph/parser_python.go: AddedLanguage: "python"to 9 node typesgraph/parser_java.go: AddedLanguage: "java"to 6 node typesgraph/parser_golang.go: AddedLanguage: "go"to 14 node typesgraph/parser_statements.go: AddedLanguage: "java"to 5 statement nodes3. Pipeline Integration
Modified
cmd/scan.gogo.modpresenceModified
cmd/ci.goTest Results
All verification steps passed successfully:
Key Features
go.modpresenceIntegration
Files Changed
Created (2):
graph/callgraph/builder/merge.gograph/callgraph/builder/merge_test.goModified (7):
graph/types.gograph/parser_python.gograph/parser_java.gograph/parser_golang.gograph/parser_statements.gocmd/scan.gocmd/ci.goTotal Lines Added: 213 lines
Example Usage
Go-only Project
Mixed Python + Go Project
Python-only Project (no regression)
Verification Checklist
gradle buildGopassesgradle testGopasses (all tests)gradle lintGopasses (0 issues)🤖 Generated with Claude Code