Skip to main content

🤖 AI Code Analyzer

PyPI version Python Support License: MIT GitHub Actions

A comprehensive AI-powered code analysis package that integrates with CI/CD pipelines to analyze code commits, execute tests, perform load testing, and generate detailed release notes with risk assessments.

🚀 Quick Start

Installation

# Install from PyPI
pip install ai-code-analyzer

# Or install with all optional dependencies
pip install ai-code-analyzer[all]

GitHub Action Usage

Add this to your .github/workflows/ci.yml:

name: AI Code Analysis

on:
  pull_request:
  push:
    branches: [main]

jobs:
  analyze:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: ai-code-analyzer/ai-code-analyzer@v1
      with:
        github-token: ${{ secrets.GITHUB_TOKEN }}
        openai-api-key: ${{ secrets.OPENAI_API_KEY }}

Command Line Usage

# Initialize configuration
ai-code-analyzer init

# Analyze a commit
ai-code-analyzer analyze --commit HEAD

# Analyze a pull request
ai-code-analyzer analyze --pr 123

# Validate configuration
ai-code-analyzer validate

🚀 Features

Core Analysis Capabilities

  • Multi-language support: Python, JavaScript/TypeScript, Java, Go, Rust, C/C++, Ruby, PHP, Swift, Kotlin, Scala
  • Static code analysis: Security vulnerabilities, code quality, complexity metrics
  • Dynamic testing: Unit tests, integration tests, end-to-end tests
  • Load testing: Performance testing with Locust and Artillery
  • Security scanning: Bandit, Safety, Semgrep, and custom security rules
  • AI-powered risk assessment: Using OpenAI GPT-4 or Anthropic Claude

CI/CD Integration

  • GitHub Actions: Automated analysis on PR and push events
  • PR status updates: Automatic comments and status checks
  • Risk-based deployment: Blocks high-risk changes from merging
  • Release notes generation: AI-generated release notes with metrics

Advanced Features

  • Comprehensive reporting: JSON, HTML, and Markdown outputs
  • Performance metrics: Response times, throughput, failure rates
  • Test coverage analysis: Multi-framework support with detailed reporting
  • Code quality scoring: Weighted scoring system with customizable thresholds
  • Recommendation engine: AI-powered suggestions for improvements

📦 Package Features

  • Easy Installation: Available on PyPI with simple pip install
  • GitHub Action: Ready-to-use GitHub Action for seamless CI/CD integration
  • CLI Interface: Rich command-line interface with beautiful output
  • Configuration Templates: Pre-built configuration templates for different use cases
  • Extensible: Modular architecture for easy customization and extension

🛠️ Installation Options

# Basic installation
pip install ai-code-analyzer

# With development tools
pip install ai-code-analyzer[dev]

# With all optional dependencies
pip install ai-code-analyzer[all]

Option 2: GitHub Action

Create .github/workflows/ai-analysis.yml:

name: AI Code Analysis

on: [push, pull_request]

jobs:
  analyze:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: ai-code-analyzer/ai-code-analyzer@v1
      with:
        github-token: ${{ secrets.GITHUB_TOKEN }}
        openai-api-key: ${{ secrets.OPENAI_API_KEY }}

Option 3: From Source

git clone https://github.com/ai-code-analyzer/ai-code-analyzer.git
cd ai-code-analyzer
pip install -e .

⚙️ Quick Configuration

Generate Configuration File

# Basic configuration
ai-code-analyzer init

# Advanced configuration
ai-code-analyzer init --template advanced

# Enterprise configuration
ai-code-analyzer init --template enterprise

Set Environment Variables

export GITHUB_TOKEN="your-github-token"
export OPENAI_API_KEY="your-openai-api-key"
# OR
export ANTHROPIC_API_KEY="your-anthropic-api-key"

🎯 GitHub Action Inputs

Input Description Required Default
github-token GitHub token for API access Yes ${{ github.token }}
openai-api-key OpenAI API key for AI analysis No -
anthropic-api-key Anthropic API key for AI analysis No -
commit-hash Specific commit to analyze No Auto-detect
pr-number PR number to analyze No Auto-detect
config-file Configuration file path No .ai-code-analyzer.yml
load-testing Enable load testing No false
fail-on-high-risk Fail on high/critical risk No true

📊 GitHub Action Outputs

Output Description
risk-level Overall risk level (low, medium, high, critical)
risk-score Risk score (0-100)
code-quality-score Code quality score (0-100)
test-coverage Test coverage percentage
security-issues Number of security issues
performance-issues Number of performance issues
analysis-results Path to detailed results file

🔧 CLI Commands

Analyze Code

# Analyze current commit
ai-code-analyzer analyze --commit HEAD

# Analyze specific commit
ai-code-analyzer analyze --commit abc123

# Analyze pull request
ai-code-analyzer analyze --pr 123

# Custom output file
ai-code-analyzer analyze --commit HEAD --output my-results.json

# Verbose output
ai-code-analyzer analyze --commit HEAD --verbose

Configuration Management

# Initialize configuration
ai-code-analyzer init

# Validate configuration
ai-code-analyzer validate

# Validate specific config file
ai-code-analyzer validate --config my-config.yml

Version Information

# Show version
ai-code-analyzer version

# Show help
ai-code-analyzer --help

📋 Prerequisites

  • Python 3.8+
  • Git
  • GitHub token (for GitHub integration)
  • OpenAI API key or Anthropic API key (for AI features)
  • Node.js 16+ (optional, for JavaScript analysis)
  • Go 1.19+ (optional, for Go analysis)

🚀 Usage Examples

Basic GitHub Action

name: Code Analysis

on: [push, pull_request]

jobs:
  analyze:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: ai-code-analyzer/ai-code-analyzer@v1
      with:
        github-token: ${{ secrets.GITHUB_TOKEN }}
        openai-api-key: ${{ secrets.OPENAI_API_KEY }}

Advanced GitHub Action with Load Testing

name: Advanced Code Analysis

on: [push, pull_request]

jobs:
  analyze:
    runs-on: ubuntu-latest
    services:
      app:
        image: my-app:latest
        ports:
          - 8000:8000
    
    steps:
    - uses: actions/checkout@v4
    - uses: ai-code-analyzer/ai-code-analyzer@v1
      with:
        github-token: ${{ secrets.GITHUB_TOKEN }}
        openai-api-key: ${{ secrets.OPENAI_API_KEY }}
        load-testing: true
        load-testing-host: http://localhost:8000
        config-file: .ai-code-analyzer.yml

Python Package Usage

from ai_code_analyzer import CodeAnalysisTool

# Initialize the tool
tool = CodeAnalysisTool('config.yaml')

# Analyze a commit
results = await tool.analyze_commit('abc123')

# Analyze a PR
pr_results = await tool.analyze_pr(123)

CLI Usage

# Initialize configuration
ai-code-analyzer init --template advanced

# Analyze current commit
ai-code-analyzer analyze --commit HEAD

# Analyze with custom config
ai-code-analyzer analyze --commit HEAD --config my-config.yml

# Validate configuration
ai-code-analyzer validate

📁 Configuration Examples

Basic Configuration

# .ai-code-analyzer.yml
repository:
  path: "."

github:
  token: "${GITHUB_TOKEN}"
  owner: "${GITHUB_REPOSITORY_OWNER}"
  repo: "${GITHUB_REPOSITORY_NAME}"

ai:
  openai_api_key: "${OPENAI_API_KEY}"

risk_assessment:
  thresholds:
    low: 0
    medium: 40
    high: 60
    critical: 80

Advanced Configuration

# .ai-code-analyzer.yml
repository:
  path: "."

github:
  token: "${GITHUB_TOKEN}"
  owner: "${GITHUB_REPOSITORY_OWNER}"
  repo: "${GITHUB_REPOSITORY_NAME}"

ai:
  openai_api_key: "${OPENAI_API_KEY}"
  anthropic_api_key: "${ANTHROPIC_API_KEY}"

load_testing:
  enabled: true
  host: "http://localhost:8000"
  basic:
    users: 10
    duration: 60

analysis:
  languages:
    - python
    - javascript
    - java
    - go
  
  security:
    enable_bandit: true
    enable_safety: true
    enable_semgrep: true

testing:
  frameworks:
    python: ["pytest"]
    javascript: ["jest"]
  
  coverage:
    min_coverage: 80

risk_assessment:
  weights:
    security: 0.3
    performance: 0.2
    reliability: 0.25
    maintainability: 0.15
    testing: 0.1
  
  thresholds:
    low: 0
    medium: 40
    high: 60
    critical: 80

🔍 Example Workflows

Workflow 1: Basic PR Analysis

# .github/workflows/pr-analysis.yml
name: PR Analysis

on:
  pull_request:
    types: [opened, synchronize]

jobs:
  analyze:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: ai-code-analyzer/ai-code-analyzer@v1
      with:
        github-token: ${{ secrets.GITHUB_TOKEN }}
        openai-api-key: ${{ secrets.OPENAI_API_KEY }}
        fail-on-high-risk: true

Workflow 2: Release Analysis

# .github/workflows/release-analysis.yml
name: Release Analysis

on:
  push:
    branches: [main]

jobs:
  analyze:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: ai-code-analyzer/ai-code-analyzer@v1
      with:
        github-token: ${{ secrets.GITHUB_TOKEN }}
        openai-api-key: ${{ secrets.OPENAI_API_KEY }}
        load-testing: true
        fail-on-high-risk: false
    
    - name: Create Release Notes
      if: success()
      run: |
        # Use the generated release notes for creating releases
        echo "Release notes generated in analysis results"

📊 Output Examples

Risk Assessment Output

{
  "risk_assessment": {
    "risk_level": "medium",
    "risk_score": 45.7,
    "confidence": 0.85,
    "recommendations": [
      "Address security vulnerabilities immediately",
      "Increase test coverage to at least 80%",
      "Optimize performance bottlenecks"
    ]
  },
  "analysis": {
    "quality_score": 78.5,
    "security_issues": 2,
    "performance_issues": 1
  },
  "tests": {
    "summary": {
      "total_tests": 150,
      "passed_tests": 145,
      "coverage_percentage": 82.3
    }
  }
}

CLI Output

🎯 Risk Assessment
┌─────────────────────────────────────┐
│ Risk Level: MEDIUM                  │
│ Risk Score: 45.7/100               │
│ Confidence: 0.85                   │
└─────────────────────────────────────┘

📊 Analysis Metrics
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┓
┃ Metric              ┃ Value               ┃
┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━┩
│ Code Quality Score  │ 78.5/100           │
│ Security Issues     │ 2                   │
│ Performance Issues  │ 1                   │
│ Test Coverage       │ 82.3%              │
│ Tests Passed        │ 145/150            │
└─────────────────────┴─────────────────────┘

💡 Top Recommendations:
  1. Address security vulnerabilities immediately
  2. Increase test coverage to at least 80%
  3. Optimize performance bottlenecks

🔧 Development

Setting Up Development Environment

# Clone the repository
git clone https://github.com/ai-code-analyzer/ai-code-analyzer.git
cd ai-code-analyzer

# Install in development mode
pip install -e .[dev]

# Run tests
pytest

# Run linting
black src/ tests/
isort src/ tests/
flake8 src/ tests/

Building the Package

# Build the package
python -m build

# Check the package
twine check dist/*

# Upload to Test PyPI
twine upload --repository testpypi dist/*

📚 API Reference

CodeAnalysisTool

from ai_code_analyzer import CodeAnalysisTool

tool = CodeAnalysisTool(config_path="config.yaml")

# Analyze a commit
results = await tool.analyze_commit("abc123")

# Analyze a PR
pr_results = await tool.analyze_pr(123)

Configuration

from ai_code_analyzer import Config

config = Config("config.yaml")
value = config.get("github.token")
config.set("load_testing.enabled", True)

📊 Analysis Results

Risk Assessment Levels

  • 🟢 LOW (0-39): Safe to merge, minimal risk
  • 🟡 MEDIUM (40-59): Proceed with caution, additional review recommended
  • 🟠 HIGH (60-79): Requires thorough review, consider additional testing
  • 🔴 CRITICAL (80-100): DO NOT MERGE, critical issues must be resolved

Output Format

The tool generates comprehensive results in JSON format:

{
  "commit_hash": "abc123",
  "risk_assessment": {
    "risk_level": "medium",
    "risk_score": 45.7,
    "confidence": 0.85,
    "recommendations": [
      "Address security vulnerabilities immediately",
      "Increase test coverage to at least 80%"
    ]
  },
  "analysis": {
    "quality_score": 78.5,
    "security_issues": ["Potential SQL injection in auth.py"],
    "performance_issues": ["Inefficient database query in search.py"]
  },
  "tests": {
    "summary": {
      "total_tests": 150,
      "passed_tests": 145,
      "failed_tests": 5,
      "coverage_percentage": 82.3
    }
  },
  "release_notes": "# Release Notes\n\n## Features\n- Added user authentication..."
}

🎯 Supported Test Frameworks

Python

  • pytest
  • unittest
  • nose2

JavaScript/TypeScript

  • Jest
  • Mocha
  • Cypress
  • Playwright

Java

  • JUnit
  • TestNG
  • Maven
  • Gradle

Go

  • go test

Rust

  • cargo test

🔍 Security Analysis

Static Analysis Tools

  • Bandit: Python security linter
  • Safety: Python dependency vulnerability scanner
  • Semgrep: Multi-language static analysis
  • ESLint: JavaScript/TypeScript security rules
  • Gosec: Go security analyzer

Security Checks

  • Hardcoded secrets detection
  • SQL injection patterns
  • XSS vulnerability patterns
  • Command injection detection
  • Insecure cryptographic practices

⚡ Performance Testing

Load Testing Scenarios

  • Basic Load Test: 10 users, 60 seconds
  • Spike Test: 50 users, 30 seconds
  • Stress Test: 100 users, 5 minutes
  • Endurance Test: 20 users, 30 minutes

Performance Metrics

  • Average response time
  • Requests per second
  • Error rate
  • Resource utilization

🤖 AI Integration

OpenAI GPT-4

  • Advanced code analysis
  • Risk assessment
  • Recommendation generation
  • Release notes creation

Anthropic Claude

  • Alternative AI provider
  • Advanced reasoning capabilities
  • Code understanding

🔧 Customization

Custom Risk Rules

Add custom rules to config.yaml:

risk_assessment:
  custom_rules:
    - pattern: "eval\\s*\\("
      severity: "critical"
      message: "Use of eval() is dangerous"
    - pattern: "TODO|FIXME"
      severity: "medium"
      message: "Unresolved TODO items"

Custom Test Commands

testing:
  custom_commands:
    python: ["python -m pytest --cov=src"]
    javascript: ["npm test", "npm run test:integration"]

📚 API Documentation

Core Classes

CodeAnalyzer

Performs static code analysis and quality checks.

TestExecutor

Executes tests and collects results.

LoadTester

Performs load testing using Locust and Artillery.

AIRiskAssessment

AI-powered risk assessment using OpenAI or Anthropic.

ReleaseNotesGenerator

Generates comprehensive release notes.

GitHubIntegration

Handles GitHub API integration.

🚨 Troubleshooting

Common Issues

  1. Permission Denied: Ensure GitHub token has required permissions
  2. API Rate Limits: Implement rate limiting for AI API calls
  3. Memory Issues: Increase memory limits for large repositories
  4. Network Timeouts: Configure appropriate timeouts for external calls

Debug Mode

Enable debug logging:

python src/main.py --verbose --commit HEAD

🤝 Contributing to the Package

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

Development Guidelines

# Install in development mode
pip install -e .[dev]

# Run tests
pytest

# Format code
black src/ tests/
isort src/ tests/

# Type checking
mypy src/

# Linting
flake8 src/ tests/

📦 Publishing

The package is automatically published to PyPI when a new release is created on GitHub.

Manual Publishing

# Build the package
python -m build

# Upload to PyPI
twine upload dist/*

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • OpenAI for GPT-4 API
  • Anthropic for Claude API
  • GitHub for Actions and API
  • All open-source security and testing tools
  • Python packaging community

📞 Support

For support and questions:

  1. Check the Documentation
  2. Search existing Issues
  3. Create a new issue with detailed information
  4. Join our Discord Community

Made with ❤️ by the AI Code Analysis Team

PyPI Downloads GitHub stars

Metadata

Release files for ai-code-analyzer 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ai-code-analyzer 1.0.1
File Size Uploaded Provenance
ai_code_analyzer-1.0.1.tar.gz 44.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ai-code-analyzer 1.0.1
File Interpreter ABI Platform
ai_code_analyzer-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 82.3 kB

Release files / ai_code_analyzer-1.0.1.tar.gz

Download URL ai_code_analyzer-1.0.1.tar.gz
Size 44.4 kB
Tags Source
SHA-256 checksum
How to use checksums
604578db1250dec10b56a291e04557af971b514853ee99be3e87d8e297d1239c
BLAKE2b-256 checksum
How to use checksums
d1b583dd573da19f9d9cd5767f9efc682c11fe180600f677d80ba23239408b5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release files / ai_code_analyzer-1.0.1-py3-none-any.whl

Download URL ai_code_analyzer-1.0.1-py3-none-any.whl
Size 37.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ca0441caa1146c608dc3139fad6846f4374fd666ae6bebc87643f4094d5d5703
BLAKE2b-256 checksum
How to use checksums
372962332ff63e6f9d6a5faa5b492782cec166148b03ec32977ab242c66a1c7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Security for ai-code-analyzer 1.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page