{"id":29195885,"url":"https://github.com/darko-martinovic/aicodereviewer","last_synced_at":"2026-05-13T20:32:50.495Z","repository":{"id":301937190,"uuid":"1010517312","full_name":"Darko-Martinovic/AICodeReviewer","owner":"Darko-Martinovic","description":"AI-powered code review tool for GitHub repositories using Azure OpenAI. Features automatic Jira ticket updates, PR comment posting, and Teams notifications with clean architecture design.","archived":false,"fork":false,"pushed_at":"2025-08-29T10:47:37.000Z","size":668,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-29T14:22:55.296Z","etag":null,"topics":["ai","automation","azure-openai","clean-architecture","code-analysis","code-review","csharp","devops","dotnet","github-integration","jira-integration","pull-requests","teams-notifications"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Darko-Martinovic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-29T08:37:33.000Z","updated_at":"2025-08-29T10:47:40.000Z","dependencies_parsed_at":"2025-06-29T18:18:54.015Z","dependency_job_id":"02ea0085-cc50-446f-928b-136dfdbab3c1","html_url":"https://github.com/Darko-Martinovic/AICodeReviewer","commit_stats":null,"previous_names":["darko-martinovic/aicodereviewer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Darko-Martinovic/AICodeReviewer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Darko-Martinovic%2FAICodeReviewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Darko-Martinovic%2FAICodeReviewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Darko-Martinovic%2FAICodeReviewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Darko-Martinovic%2FAICodeReviewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Darko-Martinovic","download_url":"https://codeload.github.com/Darko-Martinovic/AICodeReviewer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Darko-Martinovic%2FAICodeReviewer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002350,"owners_count":26083357,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","automation","azure-openai","clean-architecture","code-analysis","code-review","csharp","devops","dotnet","github-integration","jira-integration","pull-requests","teams-notifications"],"created_at":"2025-07-02T05:06:36.350Z","updated_at":"2026-05-13T20:32:50.489Z","avatar_url":"https://github.com/Darko-Martinovic.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🤖 AI Code Reviewer\n\nAI-powered code review tool using Azure OpenAI with React frontend for managing system prompts.\n\n## 🎬 Demo Video\n\nSee the AI Code Reviewer in action:\n\nhttps://github.com/user-attachments/assets/f1a3a6c9-41dd-441f-9e88-4f968f057006\n\n### 🆕 Latest Features Update\n\nSee the newest features and improvements:\n\nhttps://github.com/user-attachments/assets/ccbce9bc-30b1-494a-9efc-146f1473e9d9\n\n**New features showcased:**\n\n1. **🧠 Train AI** - Interactive testing and feedback system for prompt improvement\n2. **🤝 Better Collaboration** - Enhanced real-time code review capabilities\n3. **⚡ Better Workflow Management** - Streamlined development processes\n4. **🤖 Support for GitHub App** - Enterprise-grade authentication and security\n5. **🎛️ Repository Filters** - Advanced filtering and repository management\n\n## ✨ Features\n\n- **🔍 AI Code Analysis**: Automated reviews using Azure OpenAI\n- **🌐 Web Interface**: React + TypeScript frontend\n- **🎯 Multi-Language Support**: C#, Java, VB.NET, JavaScript, TypeScript, React, T-SQL\n- **⚙️ System Prompts Management**: Customize AI behavior per language\n- **� Train AI**: Interactive testing and feedback system to iteratively improve AI prompts through code validation, review testing, and prompt refinement based on feedback\n- **�🤝 Real-Time Collaboration**: Live code review sessions with multiple participants\n- **💬 Live Comments**: Real-time commenting and discussions on code lines\n- **👥 User Presence**: See who's actively reviewing with live cursor tracking\n- **� GitHub App Integration**: Enterprise-grade authentication with GitHub Apps for secure, scoped repository access\n- **🎛️ Repository Filtering**: Flexible pattern-based filtering to control visible repositories (application-level, future: user preferences)\n- **🔗 Integrations**: GitHub, Jira, Slack\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- .NET 9.0 SDK\n- Node.js 18+\n- Azure OpenAI Service access\n\n### Setup\n\n1. **Environment variables** (create `.env` file):\n\n   ```env\n   AZURE_OPENAI_ENDPOINT=your-endpoint\n   AZURE_OPENAI_API_KEY=your-api-key\n   AZURE_OPENAI_DEPLOYMENT_NAME=gpt-4\n   GITHUB_TOKEN=your-github-token\n   ```\n\n2. **Start backend**:\n\n   ```bash\n   dotnet run --launch-profile https --environment Development\n   ```\n\n3. **Start frontend**:\n\n   ```bash\n   cd client-app\n   npm install\n   npm run dev\n   ```\n\n4. **Access**: Frontend at `http://localhost:5174`, API at `https://localhost:7001`\n\n## ⚙️ Configuration\n\n### Token Metrics Display\n\nControl the visibility of token usage and cost information in code review results by editing `appsettings.json`:\n\n```json\n\"CodeReview\": {\n  \"MaxFilesToReview\": 3,\n  \"MaxIssuesInSummary\": 3,\n  \"ShowTokenMetrics\": true  // Set to false to hide token/cost info\n}\n```\n\nWhen enabled, token usage and estimated cost are displayed at the top of review summaries for:\n\n- 🧠 Train AI reviews\n- 📝 Commit reviews\n- 🔀 Pull request reviews\n\n## ⚙️ Usage\n\n1. Open web interface\n2. Connect GitHub repositories in **Repositories** tab\n3. Browse commits and pull requests\n4. Customize AI prompts in **System Prompts** tab\n5. Run automated code reviews\n6. View token usage and cost metrics (configurable via `appsettings.json`)\n\n## 🤝 Real-Time Collaboration\n\nCreate collaborative review sessions where multiple team members can review code simultaneously:\n\n- **👥 Live Presence**: See who's currently reviewing with real-time participant lists\n- **🖱️ Cursor Tracking**: Track where team members are looking in the code\n- **💬 Live Comments**: Add comments on specific code lines with instant synchronization\n- **🎨 Comment Types**: General, Suggestion, Question, Issue with threaded discussions\n- **🔄 WebSocket Communication**: Built with SignalR at `/collaborationHub` endpoint\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create feature branch\n3. Make changes and add tests\n4. Submit pull request\n\n## ⚠️ Disclaimer\n\nThis project was developed independently on personal equipment and in personal time.  \nIt is not affiliated with, endorsed by, or derived from the intellectual property of EPAM Systems or any of its clients.  \nAll examples, configurations, and data are generic and intended solely for demonstration and educational purposes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarko-martinovic%2Faicodereviewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarko-martinovic%2Faicodereviewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarko-martinovic%2Faicodereviewer/lists"}