An AI-powered web application that provides intelligent reviews and analysis of GitHub repositories and user profiles using Google's Gemini AI model.
- π Repository Analysis: Get comprehensive AI reviews of any public GitHub repository
- π€ User Profile Reviews: Analyze GitHub user profiles and their top repositories
- π€ AI-Powered: Leverages Google Gemini AI for intelligent code analysis
- π¨ Modern UI: Clean, responsive web interface with toggle between HTML and Markdown views
- π Export Options: Copy reviews to clipboard or download as files
- β‘ Fast API: Built with FastAPI for high performance
- π± Responsive Design: Works seamlessly on desktop and mobile devices
github-reviewer/
βββ app.py # FastAPI application server
βββ main.py # Core logic for GitHub API integration and AI reviews
βββ requirements.txt # Python dependencies
βββ .env # Environment variables (create your own)
βββ .gitignore # Git ignore rules
βββ policies..txt # AI review policies/guidelines
βββ frontend/
β βββ index.html # Main web interface
β βββ script.js # Frontend JavaScript logic
β βββ style.css # Styling and responsive design
βββ venv/ # Virtual environment (auto-generated)
- FastAPI - Modern, fast web framework for building APIs
- Python 3.8+ - Core programming language
- Google Gemini AI - AI model for generating reviews
- GitHub API - Fetching repository and user data
- Uvicorn - ASGI server for running the application
- HTML5 - Semantic markup
- CSS3 - Modern styling with CSS Grid and Flexbox
- Vanilla JavaScript - Interactive functionality
- Marked.js - Markdown rendering support
- GitHub REST API - Repository and user data
- Google Gemini API - AI-powered content generation
- Python 3.8 or higher
- Git
- A GitHub Personal Access Token
- A Google Gemini API Key
git clone https://github.com/Mavros-Lykos/GitHub-Reviewer.git
cd GitHub-Reviewer# Windows
python -m venv venv
venv\Scripts\activate
# macOS/Linux
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtCreate a .env file in the root directory:
GITHUB_TOKEN=your_github_personal_access_token_here
GEMINI_API_KEY=your_gemini_api_key_here# Development mode with auto-reload
uvicorn app:app --reload
# Or run directly
python app.pyThe application will be available at http://localhost:8000
- Go to GitHub Settings > Developer settings > Personal access tokens
- Click "Generate new token (classic)"
- Give it a descriptive name like "GitHub Reviewer App"
- Select the following scopes:
public_repo- Access public repositoriesread:user- Read user profile data
- Click "Generate token"
- Copy the token immediately (you won't be able to see it again)
- Go to Google AI Studio
- Sign in with your Google account
- Click "Create API Key"
- Copy the generated API key
- Make sure you have access to the Gemini API (may require verification)
# Start the server with auto-reload
uvicorn app:app --reload --host 0.0.0.0 --port 8000GET /- Main web interfaceGET /review/repo/{owner}/{repo}- Get AI review for a repositoryGET /review/user/{username}- Get AI review for a user profileGET /health- Health check endpointGET /static/*- Static file serving
You can test the API endpoints directly:
# Test repository review
curl http://localhost:8000/review/repo/pallets/flask
# Test user review
curl http://localhost:8000/review/user/torvalds
# Health check
curl http://localhost:8000/healthNavigate to the application and enter:
- Owner:
microsoft - Repository:
vscode
The AI will analyze the repository structure, code quality, documentation, and provide comprehensive insights.
Enter a GitHub username like:
- Username:
gaearon
The AI will review the user's profile, contribution patterns, and top repositories.
"GITHUB_TOKEN missing" Error
- Ensure your
.envfile exists and contains a valid GitHub token - Check that the token has the correct permissions
"Failed to initialize Gemini client" Error
- Verify your Gemini API key is correct
- Ensure you have access to the Gemini API
Repository/User Not Found
- Check that the repository/user is public
- Verify the owner/repo name spelling
- Ensure your GitHub token has appropriate permissions
Port Already in Use
- Change the port:
uvicorn app:app --reload --port 8001 - Or kill the process using port 8000
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Add tests if applicable
- Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow PEP 8 for Python code style
- Add docstrings for new functions
- Keep commits atomic and well-described
- Update documentation for new features
- Test your changes locally before submitting
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Gemini for providing the AI capabilities
- GitHub API for repository and user data access
- FastAPI community for the excellent framework
- Inter Font for the beautiful typography
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue if your problem isn't already reported
- Provide detailed information about your environment and the issue
- Add support for private repositories
- Implement caching for faster repeated reviews
- Add more detailed code quality metrics
- Support for other AI models (OpenAI, Claude, etc.)
- Docker containerization
- Batch processing for multiple repositories
- Integration with GitHub webhooks
- Custom review templates and criteria
Made with β€οΈ by the GitHub Reviewer team

