Skip to content

[duplicate-code] Duplicate Code Analysis Report - January 2026 #289

@github-actions

Description

@github-actions

🔍 Duplicate Code Analysis Report

Analysis of commit 87ced49

Summary

This analysis identified 3 significant duplication patterns in the MCP Gateway codebase, with approximately 60-70 lines of duplicated code affecting maintainability and increasing the risk of inconsistent bug fixes.

Detected Patterns

This analysis found 3 significant duplication patterns:

  1. HTTP Request Setup Duplication - Severity: High - See sub-issue #aw_http1234abcd
  2. SDK Client Creation Duplication - Severity: Medium - See sub-issue #aw_sdk5678efgh
  3. Connection Struct Initialization - Severity: Medium - See sub-issue #aw_conn9012ijkl

Overall Impact

  • Total Duplicated Lines: ~60-70 lines across patterns
  • Affected Files: internal/mcp/connection.go (primary)
  • Maintainability Risk: High - duplicated code makes consistent updates difficult
  • Refactoring Priority: High - patterns are in critical connection/transport code

Key Findings

Pattern 1: HTTP Request Setup (High Severity)

Identical HTTP request creation and header setup logic appears in two separate functions (initializePlainJSON and sendHTTPRequest), with ~30-35 lines of duplicated code including JSON marshaling, request creation, and header configuration.

Pattern 2: SDK Client Creation (Medium Severity)

The same sdk.NewClient initialization with identical Implementation struct appears 3+ times throughout the connection code, creating unnecessary repetition.

Pattern 3: Connection Struct Initialization (Medium Severity)

Nearly identical Connection struct initialization patterns appear in multiple transport attempt functions (tryStreamableHTTPTransport, trySSETransport), with ~15-20 lines of duplicated struct setup.

Next Steps

  1. Review individual pattern sub-issues for detailed analysis
  2. Prioritize refactoring based on severity and impact
  3. Create implementation plan for highest priority patterns
  4. Consider extracting common HTTP setup logic into reusable helper functions

Analysis Metadata

  • Analyzed Files: 45 Go files (excluding tests, workflows, agent configs)
  • Detection Method: Manual semantic code analysis
  • Commit: 87ced49 (Propagate HTTP backend errors to clients with full context)
  • Analysis Date: 2026-01-16
  • Triggered by: @pelikhan
  • Primary Focus: internal/mcp/connection.go (907 lines)

Recommendations

  • Extract HTTP request setup into a helper function
  • Create a factory function for SDK client initialization
  • Standardize Connection struct initialization with a builder or factory pattern
  • Add linting rules to detect future duplication (consider using dupl or gocyclo)

AI generated by Duplicate Code Detector

Sub-issues

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions