Viewing docs for:

Feature Reference

A detailed look at every capability built into PR Pilot.

Feature Reference

PR Pilot Tool WindowActivity Bar Panel

PR Pilot lives in a dedicated tool window that docks to the right side of the IDE. Click the PR Pilot icon in the side panel to expand it. The tool window contains two views:

  • Pull Requests — browse and manage PRs for the current repository
  • Files Changed — inspect the changed files for the selected PR

The tool window automatically detects the remote URL of the open project and initialises for the configured Git provider (GitHub or Bitbucket).

PR Pilot lives in a dedicated Activity Bar panel on the left side of VS Code. Click the PR Pilot icon in the Activity Bar to expand the panel, which contains two tree views:

  • Pull Requests — browse and manage PRs for the current repository
  • Files Changed — inspect the changed files for the selected PR

The panel automatically detects the remote URL of the open workspace and initialises for the configured Git provider (GitHub or Bitbucket).

PR Browser

The main view of the tool windowpanel lists all pull requests for the current repository. Each row in the list shows:

Double-clicking a pull request immediately opens the file diff view for that PR.

Filtering Pull Requests

The toolbar above the PR list provides four controls:

ControlDescription
🔄 RefreshReload the PR list from the API
Status dropdownFilter by OPEN, MERGED, DECLINED, or ALL
ID fieldType a PR number to jump directly to that PR
Title fieldFree-text search across PR titles (case-insensitive)

All filters are applied client-side instantly — no additional API calls.

Side-by-Side Diff Viewer

Clicking the View Files icon button (or double-clicking a PR) fetches the full unified diff for that PR and parses it into per-file entries.

File list view

A breadcrumb bar shows the PR number, title, and source→target branch. Below it is a stats bar summarising:

Each row in the file list shows the file path and a colour-coded status badge: ADDED, MODIFIED, DELETED, or RENAMED.

Opening a diff

Click any file row to open IntelliJ's native side-by-side diff viewerVS Code's built-in diff editor. The viewer:

Note: The diff editor reconstructs file content from the patch. For very large files the reconstructed content may be truncated. For full file context, use IntelliJ's built-in Git diff toolsVS Code's built-in Git diff tools after clicking through to the file.

AI Code Review (AI Summary)

Click the ⚡ AI Summary icon button with a PR selected to generate a comprehensive AI code review report.

What the AI receives

The AI receives a carefully constructed multi-layer prompt (see Skills → How Skills Are Injected):

  1. Skills block — your team's system_prompt.md, review_rules.md, coding_standards.md
  2. PR context — PR ID, title, author, branches, file count
  3. Structured code analysis — for each changed file: language, line count, impacted classes, method signatures with line numbers, changed line ranges
  4. File snippets — up to 3,000 characters of actual file content per changed file
  5. Referenced files — files imported by changed files, included as context (1,500 chars each)

What the report contains

The default system_prompt.md instructs the AI to produce a structured Markdown report with:

Viewing the report

The report is displayed in a resizable dialog window with:

Inline Comments

After generating an AI review, PR Pilot can post the AI's feedback as inline comments directly on the pull request — visible to all reviewers in Bitbucket Cloud or GitHub, attached to the exact line number identified by the AI.

How it works

  1. Click ⚡ AI Summary to generate the review report.
  2. In the review dialog, click Post Inline Comments to push all AI-identified issues to the PR as line-level comments, or click Request Changes to post the comments and register a formal "Changes Requested" review at the same time.
  3. The AI's severity label is prepended to each comment so reviewers instantly see 🔴 / 🟡 / 🟢 priority.
  4. If Jira is configured, a Jira comment is also posted automatically when Request Changes is used.

Comment format posted to the PR

Each inline comment follows this structure on the pull request:

[warning] Missing null-check before dereferencing `user.profile`.
Consider adding a guard clause or using the safe-call operator.

Inline comment schema (AI output)

The AI is instructed to emit a machine-parseable JSON block at the end of every response, delimited by HTML comment tags. This block is parsed by the plugin to extract the per-line comments before displaying the dialog. See Skills → Inline Comment Format for the exact prompt contract.

Empty array is valid: If the AI finds no issues worth flagging inline, it outputs [] and the dialog shows "No inline issues found". The overall summary is still displayed in full.

Code Analyzer

PR Pilot includes a built-in source-code analyser that extracts structural information from each changed file before sending it to the AI. This makes the AI review far more precise because the model can reference exact class names, method signatures, and line numbers.

What is extracted

Supported languages

LanguageExtensionsParsed constructs
Kotlin.kt, .ktsclass, interface, object, enum class, fun
Java.javaclass, interface, enum, @interface, method
Python.pyclass, def (methods & top-level functions)
TypeScript.ts, .tsxclass, interface, function, arrow functions
JavaScript.js, .jsx, .mjsclass, function, arrow functions
Go.gostruct, interface, func (methods & functions)
Swift.swiftclass, struct, protocol, enum, func
Scala.scalaclass, case class, object, trait, def
C / C++.c, .h, .cpp, .cc, .cxxstruct, class, function signatures
Other*Line count and changed ranges only (no class/method extraction)

Import-Chain Analysis

Beyond the directly changed files, PR Pilot resolves first-degree imports to understand the full "blast radius" of a change.

For each changed file, the analyser:

  1. Extracts all import statements.
  2. Filters for imports that map to local project files (not third-party libraries).
  3. Reads those local files and runs the same structural analysis on them.
  4. Marks them as isReferenced = true and includes them in the AI prompt under a "Referenced Files" section.

This allows the AI to understand, for example, that a changed method in a service class is calling an interface defined in another file — and review the change in context of the full contract.

De-duplication: Each file is included at most once. If multiple changed files import the same dependency, it is analysed once and shared in context.

PR Actions

The action bar in the PR list view contains icon buttons for managing pull requests:

ButtonActionTooltip
📄 DiffView Changed FilesOpens the file diff view for the selected PR
⚡ AIAI SummaryGenerates an AI code review report
✔ ApproveApprove PRApproves the selected PR
⤢ MergeMerge PRMerges the selected PR into its target branch
✘ DeclineDecline / Close PRDeclines (Bitbucket) or closes (GitHub) the selected PR
💬 Request ChangesRequest ChangesPosts inline AI comments on the PR and registers a "Changes Requested" review; also updates the linked Jira issue
📌 Post Inline CommentsPost Inline CommentsPosts AI-generated inline line comments on the PR without a formal Changes Requested status

All actions require a PR to be selected in the list first. If no PR is selected, a brief notification reminds you to select one.

Merge warning: The merge action is immediate and permanent. PR Pilot does not prompt for a merge commit message — it uses the default strategy for the configured provider. Make sure the PR is ready to merge before clicking.

GitHub — Approve behaviour

Submits a GitHub Pull Request Review with event: APPROVE. This adds an approval from the authenticated user's account.

GitHub — Decline behaviour

GitHub has no "decline" concept. PR Pilot closes the pull request instead (equivalent to clicking "Close pull request" on GitHub.com).

Bitbucket — Approve behaviour

Calls the Bitbucket POST /pullrequests/{id}/approve endpoint using the repository's configured PAT.

Bitbucket — Merge behaviour

Calls the Bitbucket POST /pullrequests/{id}/merge endpoint with the default merge strategy.

Multi-Provider Architecture

PR Pilot uses a provider-agnostic service layer (PullRequestService) that delegates every operation to either the GitHub client or the Bitbucket client based on the active provider setting. Switching providers is a one-click operation in settings.

For Bitbucket, a client registry (BitbucketClientRegistry) maintains one pre-configured HTTP client per workspace/repo pair, each carrying the correct PAT for that repository. This makes multi-repo Bitbucket setups fully transparent — you never need to manually switch tokens.

In-IDEEditor Notifications

PR Pilot uses the IDE notification system to surface important events:

Notifications appear as IDE balloon alerts (bottom-right) and are also logged to the Event Log. They can be dismissed individually.

Notifications appear as VS Code info/error popups (bottom-right) and can be dismissed individually.

Status bar

A persistent status label at the bottom of the PR Pilot panel shows the current operation state in real time: "Loading pull requests…", "Building AI summary…", "Ready", etc.

Jira Integration

PR Pilot can automatically sync review outcomes to Atlassian Jira. When you approve, merge, or decline a pull request, the plugin detects the linked Jira issue key and posts a comment — and on a decline, also reassigns the issue back to the PR author.

How issue keys are detected

PR Pilot scans the following PR fields (in order) and uses the first matching Jira issue key found:

  1. PR title
  2. PR description
  3. Source branch name
  4. Target branch name
  5. PR URL

The default detection pattern matches standard Jira keys like PROJ-123 or MYAPP-42. A custom regex can be set in the PR Pilot Settings → Jira Integration.

What happens on each action

PR ActionJira Effect
ApprovePosts "Code Review Passed." as a comment on the linked issue
MergePosts "Code Review Passed." as a comment on the linked issue
DeclinePosts the AI review summary (or a fallback message) as a comment, then reassigns the issue to the PR author
Request ChangesPosts the AI review summary as a Jira comment with a note that changes were requested
Post Inline CommentsPosts the AI review summary as a Jira comment noting inline feedback was left on the PR

If Jira is not configured, or no issue key is found in the PR data, the integration is silently skipped. See the Jira configuration guide for setup instructions.