{"id":51150976,"url":"https://github.com/mason01kent/pr-forge","last_synced_at":"2026-06-26T06:01:04.556Z","repository":{"id":366707572,"uuid":"1277323590","full_name":"Mason01Kent/pr-forge","owner":"Mason01Kent","description":"AI-powered PR description and review generator for VS Code. Supports DeepSeek, OpenAI, Anthropic, OpenRouter, Groq, and Ollama.","archived":false,"fork":false,"pushed_at":"2026-06-23T02:09:10.000Z","size":422,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-23T02:21:55.955Z","etag":null,"topics":["ai","code-review","github","pull-request","vscode-extension"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/Mason01Kent.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-22T19:43:38.000Z","updated_at":"2026-06-23T02:09:12.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Mason01Kent/pr-forge","commit_stats":null,"previous_names":["mason01kent/pr-forge"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/Mason01Kent/pr-forge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mason01Kent%2Fpr-forge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mason01Kent%2Fpr-forge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mason01Kent%2Fpr-forge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mason01Kent%2Fpr-forge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mason01Kent","download_url":"https://codeload.github.com/Mason01Kent/pr-forge/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mason01Kent%2Fpr-forge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34805072,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-26T02:00:06.560Z","response_time":106,"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","code-review","github","pull-request","vscode-extension"],"created_at":"2026-06-26T06:01:01.302Z","updated_at":"2026-06-26T06:01:04.550Z","avatar_url":"https://github.com/Mason01Kent.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PR Forge\n\n[![Version](https://img.shields.io/visual-studio-marketplace/v/masonkent.pr-forge)](https://marketplace.visualstudio.com/items?itemName=masonkent.pr-forge)\n[![Installs](https://img.shields.io/visual-studio-marketplace/i/masonkent.pr-forge)](https://marketplace.visualstudio.com/items?itemName=masonkent.pr-forge)\n[![License](https://img.shields.io/github/license/Mason01Kent/pr-forge)](LICENSE)\n\n**From diff to draft PR without leaving VS Code.**\n\nPR Forge reads your git diff and commits, generates a pull request title, description, and review summary, then submits or updates the PR on GitHub — all from a sidebar panel. No Copilot subscription. No per-seat fee. Bring your own API key.\n\n---\n\n## The workflow\n\n```\nChange code  →  Generate title/body/review  →  Preview \u0026 edit  →  Submit or update GitHub PR\n```\n\n---\n\n## Demo assets needed\n\n\u003e Screenshots and GIFs are not yet in the repo. Contributions welcome.\n\n| Placeholder | What to capture |\n|---|---|\n| `docs/assets/sidebar.png` | PR Forge sidebar with generate controls visible |\n| `docs/assets/generated-pr-body.png` | Generated PR body open in the editor |\n| `docs/assets/generated-review.png` | Generated review document |\n| `docs/assets/submit-pr-flow.gif` | Full submit-PR flow from sidebar to GitHub |\n\n---\n\n## Why PR Forge?\n\nWriting a PR description from scratch is tedious. PR Forge reads your diff and recent commits and writes the first draft for you — structured, consistent, and ready to edit. Your reviewer gets the context they need; you skip the blank-page problem.\n\nMost tools either *review* your PR or *manage* it. PR Forge does both: it authors the title and description, generates a structured review, and submits the PR to GitHub — all with the model and provider you choose.\n\n---\n\n## Features\n\n- **Generate PR Body** — AI-written title and description from your `base..HEAD` diff, commits, and optional test output\n- **No-AI fallback** — when no API key is configured, Generate PR Body produces a structured template (branch name, diffstat, changed-files table, commits table) you can fill in manually; no key required\n- **Generate PR Review** — structured review with blocking issues, suggestions, security concerns, test coverage, and a recommendation\n- **Post Inline Review** — post a proper GitHub review with comments anchored to specific diff lines, plus committable one-line suggestions (same shape as Copilot's review, with your own model)\n- **Post Review as PR Comment** — alternative: post the full review as a single comment on the submitted PR\n- **Submit PR / Submit as Draft** — creates a GitHub pull request (or GitLab merge request) without leaving VS Code; draft PRs are supported\n- **Smart Submit/Update button** — automatically detects an open PR or MR for your branch and relabels itself \"Update PR #N\" / \"Update MR #N\" so you never accidentally create a duplicate\n- **Open Inbox** — list open pull requests (GitHub) or merge requests (GitLab) from the sidebar; select any to open in the browser or jump into reviewing its threads\n- **Close PR / Close MR** — close the open PR or MR for the current branch directly from the sidebar, with a confirmation dialog\n- **Regenerate with feedback** — type an instruction in the Refine panel to revise the draft without re-running tests\n- **Repository template awareness** — PR body generation picks up GitHub and GitLab template files and folds that guidance into both AI and no-AI drafts\n- **Submission metadata** — attach labels, assignees, reviewers, and milestone values to GitHub PRs and GitLab MRs when configured\n- **File walkthrough** — opt-in `## Changes` per-file table appended to the PR body\n- **Commit summaries** — opt-in `## Commits` table with one AI-written line per commit\n- **Re-review on push** — opt-in: when new commits land on a branch with a submitted PR, PR Forge offers to re-run the review (accept or dismiss — no silent token spend)\n- **Model picker** — lists models from your provider's API; selection saved to `.pr-forge.json` automatically\n- **Cancellable generation** — cancel at any point from the sidebar or progress notification\n- **Multi-provider** — DeepSeek, OpenAI, Anthropic, OpenRouter, Groq, Ollama\n- **GitLab support** — create, update, comment, and post inline reviews on GitLab MRs; button labels and terminology switch between \"PR\" and \"MR\" based on your remote\n- **API keys in SecretStorage** — stored securely in VS Code; never written to project files\n- **Project type detection** — seeds sensible defaults for .NET, Node, React, and Python projects\n\n---\n\n## Generated files\n\n| File | Description |\n|---|---|\n| `.pr/PR_TITLE.txt` | Suggested pull request title |\n| `.pr/PR_BODY.md` | Full pull request description |\n| `.pr/PR_REVIEW.md` | Full code review (Generate PR Review only) |\n\n---\n\n## Supported providers\n\n| Provider | Key required | Notes |\n|---|---|---|\n| DeepSeek | Yes | Tested |\n| OpenAI | Yes | Tested |\n| Anthropic | Yes | Tested |\n| OpenRouter | Yes | Best-effort |\n| Groq | Yes | Best-effort |\n| Ollama | No | Local; no API key needed |\n\n---\n\n## Quick start\n\n**Install from Marketplace:**\n\n```\next install masonkent.pr-forge\n```\n\n**Install from VSIX** (no build required):\n\n```bash\ncode --install-extension extensions/pr-forge/pr-forge-1.5.3.vsix\n```\n\nOr via the Extensions panel: `⋯ menu → Install from VSIX…`\n\n**First run:**\n\n1. Click the **PR Forge** icon in the Activity Bar to open the sidebar.\n2. Click **Set API Key** — pick your provider and paste its key.\n3. Click **Init Config** (or run **PR Forge: Initialize Project Config** from the Command Palette) to create `.pr-forge.json` in your project root.\n4. Switch to a feature branch and click **Generate PR Body** or **Generate PR Review**.\n\n\u003e **Tip:** The sidebar model dropdown lets you switch models without editing any files. The Run Tests toggle skips the test step when you want a quick regeneration.\n\n---\n\n## Project config\n\n`.pr-forge.json` is created by **Init Config** and updated automatically by the sidebar controls. You can also edit it directly via **Open Config**.\n\n| Field | Default | Description |\n|---|---|---|\n| `baseBranch` | `main` | Branch to diff against |\n| `provider` / `defaultModel` | — | AI provider and model; updated by the sidebar |\n| `runTestsOnGenerate` | `true` | Run the configured test command before generating |\n| `includeRecentCommits` | `false` | Include recent commit messages in the prompt |\n| `includeCommitSummaries` | `false` | Append an AI-summarised commits table to the PR body |\n| `includeFileWalkthrough` | `false` | Append a per-file changes table to the PR body |\n| `reReviewOnPush` | `false` | Offer to re-run the review when new commits land on the branch |\n| `outputDirectory` | `.pr/` | Where generated files are written |\n| `reviewRulesFiles` | — | Files (e.g. `README.md`, `AGENTS.md`) injected as project standards into the prompt |\n| `prRiskAreas` | — | Risk areas to highlight in the body and review |\n| `prBodySections` | — | Section headings for the generated PR body |\n\n---\n\n## GitHub and GitLab submission\n\nPR Forge uses your VS Code GitHub sign-in (falling back to `GITHUB_TOKEN`) for GitHub PRs, and a GitLab personal access token (api scope) for GitLab MRs. If a PR or MR already exists for your branch, the Submit button automatically switches to \"Update PR #N\" / \"Update MR #N\".\n\nAfter a PR or MR is submitted, use **Post Review to PR** for a single comment or **Post Inline Review** for line-anchored comments with committable suggestions — no Copilot, no extra cost.\n\n**Not yet supported:** Bitbucket, Azure DevOps, GitHub Enterprise with a custom host.\n\n---\n\n## Limitations / Roadmap\n\n**Current limitations:**\n\n- Bitbucket and Azure DevOps submission not yet supported\n- GitHub Enterprise / custom host not yet supported\n- Multi-line committable suggestion ranges not yet supported (single-line only)\n- Single-workspace only\n\n**Planned:**\n\n- GitHub Enterprise / custom host support\n- Bitbucket and Azure DevOps submission\n- Multi-line committable suggestions\n- Better onboarding and demo examples\n\nSee [docs/ROADMAP.md](docs/ROADMAP.md) for the full feature backlog.\n\n---\n\n## Privacy / Security\n\n**Your code and keys stay yours.** API keys live in VS Code SecretStorage, never in project files. Your diff is sent only to the AI provider *you* configure — never to PR Forge's authors. Nothing is posted to GitHub unless you explicitly submit a PR or click **Post Review to PR**.\n\nPR Forge collects anonymous usage data to improve the extension. **Never collected:** code, diffs, PR content, file paths, branch names, or API keys. **Collected:** activation events, feature usage, provider and model names, outcome, token counts, estimated cost, and broad error categories.\n\nTo opt out: set `\"prForge.telemetry.enabled\": false` in VS Code user settings, or disable `telemetry.telemetryLevel` globally (turns off telemetry for all extensions).\n\n---\n\n## Repo layout\n\n```\nextensions/pr-forge/    VS Code extension (TypeScript + esbuild)\ndocs/ROADMAP.md         Feature backlog\ndocs/setup.md           Setup and troubleshooting guide\n```\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmason01kent%2Fpr-forge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmason01kent%2Fpr-forge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmason01kent%2Fpr-forge/lists"}