{"slug": "i-built-an-ai-that-turns-github-issues-into-pull-requests-no-local-setup", "title": "I Built an AI That Turns GitHub Issues Into Pull Requests — No Local Setup Required", "summary": "A developer built resolvo, an agentic pipeline that takes a GitHub issue and a repo URL and returns a working pull request with passing tests and a completed review, requiring no local setup. The system uses LangGraph and Google's Gemini Flash models to plan, implement, test, and review code changes, cutting issue turnaround time by 85%. It routes tasks by confidence, uses live web grounding for accuracy, and runs tests in an E2B sandbox to ensure fixes are verified.", "body_md": "*This is a submission for *[Weekend Challenge: Passion Edition](https://dev.to/challenges/weekend-2026-07-09)\n\n##\nWhat I Built\n\n**resolvo** is an agentic pipeline that takes a GitHub issue and a repo URL and hands you back a working pull request — with tests already passing and a review already done.\n\nThe \"passion\" here isn't a stretch for me — it's the actual origin story. I kept losing weekend hours to the same loop: read an issue, dig through an unfamiliar codebase to find the right files, write the fix, write tests, second-guess the diff, open the PR. I love writing code, I don't love being the API glue between \"here's a bug\" and \"here's a merge.\" So I built a system that treats that whole loop as a multi-agent job: explore the repo, plan the change like a senior engineer would, implement it, test it in a sandbox, review it adversarially, and only then open the PR.\n\nIt's less \"AI writes your code for you\" and more \"AI does the tedious 80% around your code with the same rigor a careful human would\" — this solution cuts issue turnaround time by 85% by allowing anyone to resolve lightweight bugs. The goal is to democratize basic maintenance and remove bottlenecks. It's built for modern, fast-moving teams that need to keep their senior talent focused on high-impact projects.\n\n##\nDemo\n\n[Demo Video](https://drive.google.com/file/d/10i-YiVGiO4Ed25_T5tF5hNb3T2FExDei/view?usp=drive_link)\n\n##\nCode\n\n###\nAgentic pipeline that turns a GitHub issue into a tested pull request — no local clone required. Built with LangGraph.\n\n##\nHow I Built It\n\nresolvo is built on **LangGraph**, structured as a `StateGraph`\n\nwith a fairly deep multi-agent pipeline:\n\nA few decisions I'm most proud of:\n\n-\n**Routing by confidence, not by default.** A `PreClassifier`\n\ndecides how deep exploration needs to go, and the `PlannerAgent`\n\nchooses one of three pipeline paths — `fast_track`\n\n, `standard`\n\n, or `critical`\n\n— so a one-line typo fix doesn't pay the same cost as a cross-module refactor.\n-\n**Splitting reasoning work by strength, not by convenience.** I used **Gemini Flash models** for the two critical steps that need the most contextual judgment — final implementation *planning* and *adversarial code review* — while **Google's lite models** handle enrichment, per-file implementation, and test generation. Same model ecosystem, different reasoning depth for different stakes: the adversarial reviewer gets full diffs, test results, and pre-check findings; the lite reviewer (used on the fast track) gets diff summaries only. That tiering is really the heart of the \"diff reasoning modes\" idea — cheap, fast reasoning where the risk is low, deep reasoning where it isn't.\n-\n**Grounding, not just guessing.** I wired **Grounding with Google Search** into the Gemini calls so planning and review aren't limited to whatever the model memorized during training. When a fix depends on something that moves — a library's current API surface, a framework's latest breaking change, a security advisory — Gemini pulls in live web results instead of confidently proposing a fix built on a deprecated signature. That distinction matters for a code-fixing agent specifically: a plan built on stale knowledge doesn't fail loudly, it fails silently until the test run catches it.\n-\n**Real execution, not vibes.** Tests run inside an **E2B sandbox** against a real shallow clone of the repo, with `pytest-json-report`\n\nparsed back into structured results — so \"the fix works\" is a fact, not an LLM's opinion.\n-\n**Retrieval that isn't just embeddings.** The planner fuses five signals — raw-issue BM25, enriched-query BM25, Cohere `rerank-v4.0`\n\n, symbol-name matching, and one-hop dependency expansion — via Reciprocal Rank Fusion before Gemini ever sees a prompt, so the plan is grounded in the actual dependency graph of the repo, not just semantic similarity.\n\n##\nPrize Categories\n\n-\n**Best Use of Google AI** — Gemini Flash powers the two highest-stakes reasoning steps in the pipeline (final implementation planning and adversarial code review), deliberately reserved for the moments where deeper reasoning matters most, while lighter-weight models handle the rest of the pipeline. On top of that, **Grounding with Google Search** is wired into those Gemini calls so the model can reason against current, real-world information — up-to-date library APIs, framework changes, advisories — rather than relying solely on training-time knowledge.", "url": "https://wpnews.pro/news/i-built-an-ai-that-turns-github-issues-into-pull-requests-no-local-setup", "canonical_source": "https://dev.to/kkhandelwal1733/i-built-an-ai-that-turns-github-issues-into-pull-requests-no-local-setup-required-codedoc-3bmp", "published_at": "2026-07-13 03:05:00+00:00", "updated_at": "2026-07-13 03:14:08.727326+00:00", "lang": "en", "topics": ["artificial-intelligence", "ai-agents", "developer-tools", "machine-learning", "large-language-models"], "entities": ["resolvo", "LangGraph", "Gemini Flash", "Google", "E2B", "Cohere"], "alternates": {"html": "https://wpnews.pro/news/i-built-an-ai-that-turns-github-issues-into-pull-requests-no-local-setup", "markdown": "https://wpnews.pro/news/i-built-an-ai-that-turns-github-issues-into-pull-requests-no-local-setup.md", "text": "https://wpnews.pro/news/i-built-an-ai-that-turns-github-issues-into-pull-requests-no-local-setup.txt", "jsonld": "https://wpnews.pro/news/i-built-an-ai-that-turns-github-issues-into-pull-requests-no-local-setup.jsonld"}}