This project leverages the power of Large Language Models (LLMs) to automate common software development tasks, reduce repetitive work, and increase developer productivity. Using a combination of GitHub Actions, Flask, and OpenAI's API, we've built a comprehensive system that can analyze code changes, suggest improvements, generate tests, and create meaningful reports.
Our system automatically analyzes code changes in the repository:
- Code Review - LLM reviews code and provides constructive feedback
- Bug Detection - Identifies common programming issues and suggests fixes
- Linting Automation - Finds and resolves style and best practice violations
- Test Generation - Automatically creates test cases for code functions
Every analysis creates markdown reports that are published to GitHub Pages:
- Individual file reports with detailed findings
- Change history tracking
- Beautiful web interface to browse all code changes
Streamlines the PR process:
- Automatically identifies changed files
- Generates meaningful PR descriptions based on code changes
- Creates pull requests with proper metadata
A Flask-based server that allows:
- Drag-and-drop file uploads
- Markdown file processing
- Integration with the reporting system
- Python 3.10+
- OpenAI API key
- GitHub repository with Actions enabled
-
Clone the repository:
git clone https://github.com/JAdamhub/Tech-Case-Team2.git cd Tech-Case-Team2 -
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
# Create a .env file with your OpenAI API key echo "OPENAI_API_KEY=your-api-key-here" > .env
-
Run the server:
python src/upload_server.py
The system follows this process:
- 📝 When code is pushed to the repository, GitHub Actions workflow is triggered
- 🔍 The workflow identifies changed files in the codebase
- 🧠 LLM analyzes the code changes for issues and improvement opportunities
- ✅ Tests are generated for new or modified functions
- 📊 Report files are created in the
_llm_changesdirectory - 🌐 GitHub Pages is updated with the latest analysis
- 🔄 A pull request may be automatically created with LLM-generated description
Visit the GitHub Pages site at: https://JAdamhub.github.io/Tech-Case-Team2/
Access the upload page at: https://JAdamhub.github.io/Tech-Case-Team2/drag-drop
You can customize the analysis pipeline by modifying:
- The LLM prompt templates in
combined_flow.py - The GitHub Actions workflow in
.github/workflows/main.yml - The web interface templates in
_layouts/
This project is licensed under the MIT License - see the LICENSE file for details.
- Team 2 - AAU Case Competition