Skip to content

Latest commit

 

History

History
106 lines (88 loc) · 4.33 KB

File metadata and controls

106 lines (88 loc) · 4.33 KB
nav_exclude true

ABAP Git Bridge - Implementation Plan

Overview

Create an automated workflow where Claude generates ABAP code, pushes to git, and a local agent pulls/activates the code in the ABAP system with proper error handling.

Architecture

┌─────────────┐     ┌─────────────────┐     ┌────────────────┐
│   Claude     │────▶│  Local Agent    │────▶│   ABAP System  │
│  (VS Code)   │     │  (Node.js)      │     │  (abapGit)     │
└─────────────┘     └─────────────────┘     └────────────────┘
                           │                        │
                           │                        ▼
                    ┌─────────────┐         ┌────────────────┐
                    │ Result Cache│◀───────│ Activation Log │
                    └─────────────┘         └────────────────┘

Communication Flow

  1. Claude pushes code to git
  2. Claude calls agent: POST /pull { url: "...", branch: "main", username, password }
  3. Agent calls ABAP: POST /sap/bc/z_abapgit_agent/pull
  4. ABAP executes pull synchronously
  5. ABAP returns: { success, job_id, message, error_detail }
  6. Agent returns response to Claude
  7. If errors, Claude fixes and repeats

Implemented Features

CLI Commands (v1.8.1)

  • ✅ init - Initialize local configuration (supports --update to update files to latest)
  • ✅ create - Create online repository in ABAP
  • ✅ delete - Delete abapGit repository from ABAP system
  • ✅ import - Import objects from ABAP package to git
  • ✅ pull - Pull and activate repository
  • ✅ syntax - Pre-commit syntax check for CLAS, INTF, PROG, DDLS (v1.8.0)
    • Auto-detection of companion files (locals_def, locals_imp, testclasses)
    • FIXPT flag support from XML metadata
    • Exact line numbers and filenames in errors
  • ✅ inspect - Syntax check via Code Inspector (post-activation)
  • ✅ unit - AUnit test execution
  • ✅ tree - Display package hierarchy tree
  • ✅ list - List ABAP objects in a package with filtering and pagination
  • ✅ view - View ABAP object definitions
  • ✅ preview - Preview table/CDS view data
  • ✅ where - Find where-used list for ABAP objects (classes, interfaces, programs)
  • ✅ ref - Search ABAP reference repositories (topics, patterns, export)
  • ✅ health - Health check
  • ✅ status - Status check (includes repo existence in ABAP)

Backend (ABAP)

  • ✅ Command factory pattern for extensibility
  • ✅ REST resource handlers for all commands
  • ✅ abapGit integration for repository operations
  • ✅ Syntax checkers with factory pattern (CLAS, INTF, PROG, DDLS)
    • Object-specific syntax checking without activation
    • FIXPT flag support
    • Local classes and test classes support
  • ✅ Object viewers with factory pattern (CLAS, INTF, PROG, TABL, STRU, DTEL, TTYP, DDLS)

Documentation

  • ✅ Jekyll website with navigation
  • ✅ ABAP coding guidelines (SQL, exceptions, testing, CDS, classes, JSON, abapGit)
  • ✅ Common errors reference guide
  • ✅ Command specifications
  • ✅ Development workflow documentation (CLAUDE.md for CLI, abap/CLAUDE.md for ABAP)

Testing & Quality

  • ✅ Integration tests for all commands
  • ✅ Command-specific test filtering
  • ✅ Unit test framework
  • ✅ Session caching with automatic retry

CI/CD

  • ✅ GitHub Actions workflow for automated npm releases
  • ✅ Automated release notes generation
  • ✅ Version synchronization between CLI and ABAP

Future Enhancements

  1. Package-Level Unit Tests

    • Run all AUnit tests in a package
    • --package $MY_PACKAGE support
    • Aggregate results across all test classes
  2. Extended Inspect Command

    • ATC checks (Assessment Task Controller)
    • Custom rule sets
    • Quality gates
  3. CI/CD Quality Gates

    • GitHub Actions integration
    • Pull request checks
    • Automated test execution on merge
  4. Enhanced Syntax Checking

    • Support for more object types (FUGR, MSAG, DOMA)
    • Cross-object dependency validation
    • Semantic checks beyond syntax