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.
- 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.
βββ 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
- 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.
-
Set up AWS Credentials: Create an IAM user and configure the Access Key and Secret Key in your local environment.
-
Update Configuration: Modify
deploy-example.shto include yourACCOUNT_ID. -
Set up Serverless Framework: Create an organization in your Serverless Framework account by following the official Serverless Framework documentation.
-
Deploy the Application: Run the following command:
sh deploy-example.sh
| Version | Description |
|---|---|
| 0.1.0 | Initial release |
Gustavo Mainchein
π§ gustavomainchein@outlook.com
