{"id":30019172,"url":"https://github.com/ramya487/prr_bot","last_synced_at":"2026-05-15T12:09:03.293Z","repository":{"id":307945028,"uuid":"930763554","full_name":"ramya487/PRR_Bot","owner":"ramya487","description":"A Pull Request reviewer that reviews the open pull requests in a repository and suggests code optimizations, error rectifications etc.","archived":false,"fork":false,"pushed_at":"2025-08-03T06:18:04.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-03T08:26:57.558Z","etag":null,"topics":["fastapi","forge-app","langchain","pull-request"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/watch?v=17qtKcrNx4c","language":null,"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/ramya487.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-02-11T07:04:25.000Z","updated_at":"2025-08-03T06:18:07.000Z","dependencies_parsed_at":"2025-08-03T08:37:18.078Z","dependency_job_id":null,"html_url":"https://github.com/ramya487/PRR_Bot","commit_stats":null,"previous_names":["ramya487/prr_bot"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ramya487/PRR_Bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ramya487%2FPRR_Bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ramya487%2FPRR_Bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ramya487%2FPRR_Bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ramya487%2FPRR_Bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ramya487","download_url":"https://codeload.github.com/ramya487/PRR_Bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ramya487%2FPRR_Bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33066193,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T11:35:32.926Z","status":"ssl_error","status_checked_at":"2026-05-15T11:35:31.362Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["fastapi","forge-app","langchain","pull-request"],"created_at":"2025-08-06T00:51:39.276Z","updated_at":"2026-05-15T12:09:03.276Z","avatar_url":"https://github.com/ramya487.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg height=\"40\" alt=\"horizontal-logo-gradient-blue-atlassian\" src=\"https://github.com/user-attachments/assets/dcf5ef2d-ecef-420b-8151-cad1849d2144\" /\u003e \u0026nbsp;\n\u003cimg height=\"45\" alt=\"logo-gradient-blue-bitbucket\" src=\"https://github.com/user-attachments/assets/b2b47870-cc29-4845-a413-c99534efd3ee\" /\u003e\n\u003c/p\u003e\n\n# \u003cp align=\"center\"\u003ePULL REQUEST REVIEWER BOT\u003c/p\u003e\n\nPRR Bot is an application that is built using atlassian forge platform. It seamlessly integrates with bitbucket, and assists in code review process by analyzing pull requests and providing detailed feedback on code quality, potential issues, and optimizations. It helps developers identify minor flaws, improve efficiency, and maintain best coding practices, reducing manual review effort and thus ensuring higher code standards\n\n\u003csection\u003e\n  \u003ca href=\"https://youtu.be/17qtKcrNx4c\" target=\"_blank\"\u003e\u003cimg src=\"https://github.com/user-attachments/assets/7182222a-3bb2-47e5-ad74-c22c478664b1\" alt=\"demovideo\" height=\"40\" /\u003e\u003c/a\u003e\n\u003c/section\u003e\n\n## Features\n\n#### 1. AI-Powered Analysis\n\nUsing LLM, the application evaluates the pull request’s code, detecting minor flaws, suggesting performance improvements. The AI provides contextual and actionable suggestions, reducing the time needed for manual code reviews.\n\n#### 2. Bitbucket Integration\n\nSeamlessly integrates within the Bitbucket environment, allowing developers to review and refine their code without leaving their workflow. The app works directly within Bitbucket’s UI.\n\n#### 3. Inline PR Comments\n\nOnce the review is complete, the application can allows to add AI-generated feedback as comments directly within the pull request. This allows developers and reviewers to see suggestions alongside the relevant code changes, making it easier to address issues and apply improvements\n\n## Technologies Used\n\n#### 1. Forge\n\nForge is a cloud based, serverless app development platform for atlassian products. This has been used to integrate with Bitbucket's UI and interact with the APIs. **Forge UI Kit** is a **React based** framework that provides pre-built UI components to embed the app seamlessly within the Bitbucket interface.\n\n#### 2. Bitbucket cloud REST API\n\nBitbucket Cloud REST API has been utilized via **Forge Product Fetch API** , to fetch pull request data, retrieve code changes, and post comments back into the pull request, ensuring seamless integration within Bitbucket environment.\n\n#### 3. LLM and FastAPI\n\nThis project uses Google ```gemini-1.5-pro``` model to for code analyzation and generate efficient comments. FastAPI has been utilized to construct the backend which typically is used to interact with the LLM and send the response to the frontend\n\n#### 4. Langchain and LangServe\n\nLangchain has been used to interact with the LLM, specifically the the module ```langchain-google-genai``` that is utilized to send requests to Gemini model. Further it was also utilized to generate accurate prompts, and format the output from the LLM, according to what is required by the application\n\nLangServe has been used to deploy the LLM chains as a REST API\n\n## Architecture\n\n![forge (3)](https://github.com/user-attachments/assets/d974bd03-a7ce-473a-9075-7339643056a9)\n\n#### 1. Fetch Open Pull Requests\n\nThe Forge Custom UI invokes to the Forge Product Fetch API which makes a request to the Bitbucket Cloud REST API which fetches the open pull requests for the repository\n\n#### 2. Fetch File Contents\n\nNext the files which have undergone a change or have been added or removed is determined from the pull request diff. The contents of the file as of the latest commit in the pull request is fetched\n\n#### 3. LLM Review\n\nThe fetched file contents is then sent to the FastAPI backend which then sends a request to Gemini for review. The suggested comments from the LLM is then sent to the frontend\n\n#### 4. Add Comments To Pull Reqeust\n\nThe suggested comments from the LLM is then displayed to the user and could be further added directly as comments to the pull request alongside the revelant code changes\n\n## License\n\nThis project with a MIT license giving permissive usage. For more information, refer to the [LICENSE](LICENSE) file\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Framya487%2Fprr_bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Framya487%2Fprr_bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Framya487%2Fprr_bot/lists"}