Eagle — Android Commit Impact Engine for AAOS System Apps
Project description
🦅 Eagle — Android Commit Impact Engine
Analyze the blast radius of every commit across your AAOS system apps.
Eagle builds a source code knowledge graph from your Android repositories and uses it to compute the impact area of any commit — identifying affected classes, methods, mandatory test areas, historical Jira ticket risks, and producing a composite Eagle Score (0-100).
Features
- 🔍 Knowledge Graph: Full code structure in Neo4j — classes, methods, fields, inheritance, call chains, XML layouts, Android components
- 💥 Blast Radius: Cypher-based traversal to find all impacted code at configurable depth
- 🧪 Test Mapping: Automatic identification of mandatory test areas (graph-based + convention-based)
- 📊 Eagle Score: Composite 0-100 risk score (change volume, fan-out, test coverage, code churn, static analysis, bug density)
- 🔗 Jira Correlation: Link commits to historical tickets and find open bugs in the blast radius
- ⚡ Incremental Updates: Only re-parse changed files on each commit (CocoIndex integration)
- 🤖 CI/CD Integration: Webhooks for Gerrit/GitHub with automatic PR comment posting and merge gating
- 🌐 REST API: FastAPI backend exposing all functionality
- 📱 Android-Specific: Java, Kotlin, XML (layouts, manifests, navigation), Gradle module dependencies
Tech Stack
| Layer | Technology |
|---|---|
| Orchestration | Python 3.11+ |
| Git Integration | pygit2 (libgit2) |
| Java AST | Tree-sitter + JavaParser (JVM service) |
| Kotlin AST | Tree-sitter + Kotlin Analysis API |
| XML AST | Tree-sitter XML + Android-aware extraction |
| Knowledge Graph | Neo4j 5.x |
| Incremental Index | CocoIndex |
| Graph RAG | GitNexus |
| Structural Map | Graphify |
| API | FastAPI |
| Task Queue | Celery + Redis |
| Metadata DB | PostgreSQL |
Quick Start
1. Prerequisites
The only requirement to run Eagle's analysis engine is Docker. (Note: If using the standalone binary, even Python is not required on the host machine).
2. Install Eagle CLI
# From source
pip install -e .
# Or download the pre-built 'egl' binary for your platform
3. Start the Background Engine
Eagle manages its own infrastructure (Neo4j, Postgres, Redis) via Docker. Start it once:
egl daemon start
4. Initialize a Project
Eagle supports a Hybrid Storage Model:
- Local Repos: Run
egl initinside an existing Git repo. It creates a local.egl/config. - Remote Repos: Run
egl init <name> <url>to clone a repo centrally into~/.egl/repos/.
# Example: Local project
cd ~/projects/my-android-app
egl init
egl index
egl impact symbol method com.example.MyClass.myMethod
Architecture & Storage
Eagle uses a Hybrid Configuration to balance powerful graph analysis with a clean developer experience:
- Global Storage (
~/.egl): This is the "brain" of Eagle. It stores the shared Neo4j knowledge graph, global metadata, and any centrally cloned repositories. This ensures that cross-repository impact analysis is fast and consistent. - Local Project Config (
.egl/): When you runegl initin a local folder, Eagle creates a small hidden.egl/directory. This tells the CLI to treat the current folder as a project and link it to the global background engine. - Zero-Installation Backend: By using
egl daemon start, the CLI automatically pulls and configures the necessary Docker containers (Neo4j 5, Postgres 16). You never have to manually install or configure a database.
Packaging & Distribution
Install from source (any platform)
pip install -e . # Editable dev install
pip install -e ".[all]" # Everything (indexing, mapping, build tools, dev)
Build a pip-installable wheel (universal)
pip install build
python -m build
# Output: dist/eagle-0.1.0-py3-none-any.whl (works on Linux & Windows)
pip install dist/eagle-0.1.0-py3-none-any.whl
Build standalone executables
pip install -e ".[build]"
# Build for your current platform
python scripts/build.py
# Output:
# Windows: dist/egl-windows-x86_64.exe
# Linux: dist/egl-linux-x86_64
# Clean + rebuild
python scripts/build.py --clean
Cross-platform CI build (GitLab CI example)
# .gitlab-ci.yml
stages: [build]
build-linux:
stage: build
image: python:3.11
script:
- pip install -e ".[build]"
- python scripts/build.py
artifacts:
paths: [dist/egl-linux-*]
build-windows:
stage: build
tags: [windows]
script:
- pip install -e ".[build]"
- python scripts/build.py
artifacts:
paths: [dist/egl-windows-*]
Install from Git (for CI/CD pipelines)
pip install git+https://your-git-server.com/eagle.git
After installation, both eagle and egl commands are available globally.
CLI Command Reference
Git-Like Workflow
egl init <name> <url> # Register + clone
egl status # Show repo info
egl fetch # Fetch remote updates
egl log [-n 15] # Commit history table
egl checkout <branch> # Switch branches
Analysis
egl commit analyze <sha> # Single commit analysis
egl commit analyze A..B # Range analysis
egl diff <sha> # Entity-level diff
egl test-map <sha> # Mandatory test discovery
egl jira <sha> # Jira ticket correlation
egl query <symbol> # Symbol blast radius
egl usages <type> <fqn> # Smart find usages (Graph + Text)
egl impact symbol <type> <fqn> # Single symbol blast radius
Graph & Indexing
egl index # Build knowledge graph
egl stats # Graph statistics
egl clear # Wipe graph data
egl scan [path] # Classify source files
egl sync # Incremental index sync
egl enrich [--force] [--mcp] # Deep call-chain enrichment
egl map # Structural code mapping
Fine-Grained AST Parsing
egl parse java <file> # Java AST + call graph
egl parse kotlin <file> # Kotlin AST
egl parse xml <file> # Android XML (layout/manifest/nav)
egl parse gradle <file> # Gradle dependencies
egl parse soong <file> # Android.bp modules
API Endpoints
| Endpoint | Method | Description |
|---|---|---|
/api/health |
GET | Health check |
/api/repos |
GET/POST | List/register repositories |
/api/repos/{id}/clone |
POST | Clone a repository |
/api/repos/{id}/analyze |
POST | Build knowledge graph |
/api/commits/{sha}/impact |
GET | Blast radius analysis |
/api/commits/{sha}/score |
GET | Eagle Score breakdown |
/api/graph/{repo}/stats |
GET | Graph statistics |
/api/webhooks/push |
POST | CI/CD push webhook |
Eagle Score
| Range | Level | Action |
|---|---|---|
| 0–30 | 🟢 Low | Standard review |
| 31–60 | 🟡 Medium | Extended testing recommended |
| 61–80 | 🟠 High | Blast radius review + senior sign-off |
| 81–100 | 🔴 Critical | Full regression test required |
License
Proprietary — Internal use only.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file egl_cli-0.1.0.tar.gz.
File metadata
- Download URL: egl_cli-0.1.0.tar.gz
- Upload date:
- Size: 86.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4a3e2e07e83123b598c11600be75a15f18e3dda05b1c7020653427577c3c1ac
|
|
| MD5 |
7af09e8ba94362d8ad47de1db3fdb1ed
|
|
| BLAKE2b-256 |
d45991629fa829383b7d1bf5128ee751f8342b8b00e5dca001a5f84fab35db57
|
File details
Details for the file egl_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: egl_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 103.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc88ffefd2009c466aa301d2faf756f366cdb5cd9c7657416d8e0b2af6835e72
|
|
| MD5 |
1308d216a986c3c4d3f732069209eed3
|
|
| BLAKE2b-256 |
4d4f9c66b03b80728443e39636326be7db2e3f5c5002b9dc1dac028b718fe01a
|