Skip to content

gugamainchein/github-ia-code-validation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GitHub IA - Code Validation

This project is a Serverless application that leverages generative AI to analyze developers' code, providing improvement suggestions based on Domain-Driven Design (DDD) and Clean Code principles.

Technologies

  • Serverless Framework: Used to deploy AWS resources, including Lambda functions, API Gateway, DynamoDB tables, and other auxiliary components necessary for the project.
  • Python: The primary programming language used in this application.
  • DeepSeek AI: A Large Language Model (LLM) that processes repository changes and suggests code improvements based on DDD and Clean Code practices.

Project Structure

β”œβ”€β”€ layers/                 # Lambda function layers (shared dependencies)
β”‚   β”œβ”€β”€ common/
β”‚   β”‚   β”œβ”€β”€ requirements.txt
β”‚   β”‚   └── ...
β”œβ”€β”€ src/                    # Source code for the application
β”‚   β”œβ”€β”€ functions/          # Lambda functions handling GitHub webhook requests
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ commit_analyzer.py
β”‚   β”‚   β”œβ”€β”€ functions.yml
β”‚   β”œβ”€β”€ helpers/            # Utility classes for handling Lambda payloads and responses
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ lambda_payload.py
β”‚   β”‚   β”œβ”€β”€ lambda_response.py
β”‚   β”œβ”€β”€ infrastructure/     # YAML files for AWS resource provisioning via Serverless Framework
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ resources.yml
β”‚   β”œβ”€β”€ services/           # Classes interacting with external services
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ bedrock.py      # AWS Bedrock integration
β”‚   β”‚   β”œβ”€β”€ dynamodb.py     # DynamoDB interactions
β”‚   β”‚   β”œβ”€β”€ github.py       # GitHub API interaction
β”‚   β”œβ”€β”€ __init__.py
β”œβ”€β”€ .env.example            # Example environment configuration file
β”œβ”€β”€ .gitignore              # Git ignore rules
β”œβ”€β”€ deploy-example.sh       # Deployment script
β”œβ”€β”€ README.md               # Project documentation
β”œβ”€β”€ serverless.yml          # Main configuration file for Serverless Framework deployment

Architecture Overview

Architecture Diagram

  • GitHub: Hosts the repository and triggers webhooks to invoke API Gateway.
  • API Gateway: Routes webhook requests to AWS Lambda functions.
  • Lambda Functions: Process commit changes and generate AI-based code improvement suggestions.
  • DynamoDB: Stores commit metadata and AI-generated suggestions.
  • S3: Stores Serverless Framework deployment states.
  • CloudWatch: Monitors Lambda function execution and logs.

Deployment Instructions

  1. Set up AWS Credentials: Create an IAM user and configure the Access Key and Secret Key in your local environment.

  2. Update Configuration: Modify deploy-example.sh to include your ACCOUNT_ID.

  3. Set up Serverless Framework: Create an organization in your Serverless Framework account by following the official Serverless Framework documentation.

  4. Deploy the Application: Run the following command:

    sh deploy-example.sh

Versioning

Version Description
0.1.0 Initial release

Author

Gustavo Mainchein
πŸ“§ gustavomainchein@outlook.com

About

This project is a Serverless application that leverages generative AI to analyze developers' code, providing improvement suggestions based on Domain-Driven Design (DDD) and Clean Code principles.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors