Azure DevOps Git Assistance icon

Azure DevOps Git Assistance

One-click PR creation with auto-filled descriptions, configurable draft mode and target branches, AI enrichment via Bedrock, AI-powered work item remediation, and safe branch deletion. All directly in Azure DevOps.

About Azure DevOps Git Assistance

Azure DevOps Git Assistance is a Chrome Extension that adds productivity features directly inside Azure DevOps. Everything runs in your browser. No external server is involved except Azure DevOps and, optionally, AWS Bedrock.

Branch Toolbar

Features injected directly into the Azure DevOps branch list. No navigation required.

PR Creation

One-click PR creation

+ PR next to every branch. Creates a PR with title, description, and work items pre-filled. Inline Publish / Delete / View actions appear on success.

Draft mode

PRs are drafts by default. Toggle Create as Draft off in the popup to publish immediately.

Configurable targets

Set a default target branch (default: develop) and a separate one for develop source branches (default: main).

Auto-fill from branch name

Title and description generated from your branch name and commit history. Prefixes stripped, commits grouped by type. Merge commits and low-signal messages (wip, fix typo) excluded automatically.

Work item linking

Numeric IDs in the branch name (e.g. feature/12345/...) are linked to the PR automatically.

AI description generation

Connect AWS Bedrock to refine descriptions with AI. Disabled by default. Requires configuration in the popup.

Delete branch

Ownership-verified deletion

Delete button appears on your branches only, enabled once you are confirmed as the last committer. Inline Sure? confirmation prevents accidents.

Admin Delete

Enable in the popup to delete any non-protected branch regardless of ownership. Protected branches (main, master, develop, release) are always blocked.

Work Item Toolbar

Features injected directly into the Azure DevOps work item form toolbar.

AI Remediate

One-click AI fix

AI Remediate button appears in the work item toolbar. Clicking it prompts for project type, then triggers a configured ADO pipeline that uses an AI agent to investigate the work item, locate the root cause in the repository, apply a minimal fix, and open a Pull Request — all without leaving the page.

Live progress feed

A floating panel tracks the pipeline in real time: first showing pipeline task steps, then switching to an agent tool-call feed grouped by phase (Investigating → Planning → Remediating → Validating → Creating PR). Run state is saved locally so progress is restored after a page refresh.

Installation & Setup

Add to Chrome (free)

Opens Chrome Web Store — no account required to install

Step 1: Install from the Chrome Web Store

Click Add to Chrome, confirm the dialog, and the extension is ready. No restart required.

Step 2: Configure (click the toolbar icon)

Connection

Setting Details
Personal Access Token (PAT) Paste your Azure DevOps PAT. Required for PR creation and branch deletion.
Required scope: Code: Read & Write. Add Work Items: Read & Write if you use AI Remediate.
Click Test Access to verify. The extension detects your organisation from the active tab automatically.

+ PR Button: Configure ▾

Click Configure ▾ next to the + PR Button feature row to expand these options.

Option Default Details
Create as Draft On When on, new PRs are created as drafts. An inline Publish action appears after creation so you can publish without leaving the page. When off, PRs are published immediately and no Publish button is shown.
Default Target Branch develop The branch that PRs merge into for all source branches except develop. Change this if your team uses a different integration branch (e.g. main or trunk).
develop → Target Branch main Override for when the source branch is develop itself, typically used when merging a release up to main.
AI Description Generation Off When enabled, the generated PR description is sent to AWS Bedrock for AI enrichment before the PR is created. Toggling this on automatically opens the AI Configuration section. Has no effect if AI Configuration has not been saved.

Delete Branch: Configure ▾

Click Configure ▾ next to the Delete Branch feature row to expand this option.

Option Default Details
Admin Delete Off When off, the Delete button is only enabled on branches where you were the last committer. When on, the Delete button is enabled immediately for any non-protected branch regardless of ownership. Intended for repo admins cleaning up stale branches. Protected branches (main, master, develop, release/*) are always blocked.

AI Configuration: Configure ▾

Opened automatically when you enable AI Description Generation, or via Configure ▾ (appears after enabling AI in the + PR section). Powered by Amazon Bedrock.

Field Details
AI Configuration toggle Master on/off for AI. When off, no data is sent to Bedrock even if credentials are saved.
AWS Region The AWS region where your Bedrock endpoint is provisioned. Default: us-east-2. The endpoint called is bedrock-runtime.{region}.amazonaws.com.
Model ID (optional) Bedrock model to use. Leave blank to use the extension default.
Bearer Token Your AWS Bedrock bearer token (ABSK). Stored locally only, never sent anywhere except bedrock-runtime.*.amazonaws.com. Click Test AI Connection to verify credentials before saving.

Getting a PAT token

  1. Go to dev.azure.com/{your-org}/_usersSettings/tokens
  2. Click New Token
  3. Scopes: Code → Read & Write (required for PR creation and branch deletion). Add Work Items → Read & Write if you use AI Remediate
  4. Copy the token and paste it into the extension popup

How + PR works

  1. Click + PR next to any branch name (excluding main / master)
  2. The extension derives a PR title from the branch name (strips prefixes, title-cases)
  3. The target branch is determined from your popup settings, defaulting to develop or main when your source is develop
  4. It fetches commits between your branch and the target, filters noise, and generates a structured description with Summary, Changes, and Testing sections
  5. Any numeric IDs in the branch name (e.g. feature/12345) are included as work item links
  6. If AI Description Generation is enabled and Bedrock is configured, the description is enriched before the PR is created
  7. The PR is created via the ADO REST API. The page stays the same with inline actions appearing immediately
  8. When Create as Draft is on: Publish, Delete, and View actions appear. When off: only Delete and View
  9. If no PAT is configured, session cookies are used automatically

How branch deletion works

Deletes the branch from the remote repository for everyone. This is equivalent to git push origin --delete branch-name.
  1. The Delete button is always visible next to non-protected branches, but starts disabled while ownership is checked
  2. The extension identifies you via the ADO identity API using your PAT, then enables the button if you were the last committer
  3. With Admin Delete enabled, the button is enabled immediately for any non-protected branch regardless of ownership
  4. Protected branches (main, master, develop, release/*) are never deletable
  5. Click Delete → an inline Sure? ✓ ✗ confirmation replaces the button
  6. Click ✓ to confirm. The branch is deleted from the remote and removed from the list

AI Remediate: Configure ▾

Opened via Configure ▾ next to the AI Remediate feature row in the popup. One-time setup — three steps:

  1. Enter Pipeline Creation — Repository and Pipeline Creation — Branch
  2. Click Initialize — the extension pushes the pipeline YAML files and creates both ADO pipelines automatically
  3. Optionally set Default Target Repo as a fallback, then save settings
Option Default Details
Pipeline Creation — Repository None Name of the ADO Git repository where pipeline YAML files will be pushed (e.g. spike-devops-tools). The extension pushes /pipelines/fix-work-item.yml and /pipelines/review-pr.yml to this repo on the branch below.
Pipeline Creation — Branch None Branch in the pipeline repo that holds the YAML files (e.g. ado-gh-demo). Created automatically from the repo's default branch if it does not exist.
Default Target Repo None Fallback repository name for the code to be fixed, used when the work item does not contain a Repo: org/project/repo-name line.
Initialize button — After filling in Repository and Branch above, click Initialize. The extension verifies the repo, creates the branch if needed, pushes the pipeline files, and creates (or updates) two ADO pipelines: git-helper-ai-remediate and git-helper-ai-review. Pipeline IDs are saved automatically — no further configuration required.

Agent Budget Limits (optional)

Expand Agent Budget Limits inside the AI Remediate configure block to cap how many resources the AI agent may consume per pipeline run. Leave any field blank to use the pipeline default.

Option Default Details
Max Fix Attempts 3 Maximum number of times the agent will attempt to apply and validate a fix before giving up.
Max Iterations 50 Total agent loop iterations across all phases. Prevents runaway agents on complex issues.
Max Tool Calls 100 Total number of tool calls (file reads, shell commands, API calls) the agent may make.
Wall Time (minutes) 45 Hard time limit for the entire pipeline run. The agent is stopped if it exceeds this.
Max Input Tokens 2,000,000 Maximum Bedrock input tokens the agent may consume across all AI calls in the run.
PAT scopes required for AI Remediate & AI Review In addition to Code: Read & Write, the PAT needs Work Items: Read & Write so the pipeline agent can read work item details and post the created PR URL as a work item comment.

How AI Remediate works

  1. Click AI Remediate in the work item toolbar — a project type picker appears (.NET or Node)
  2. The extension reads the work item title, description, and form text to detect the target repository (looks for Repo: org/project/repo-name). Falls back to Default Target Repo from popup settings if not found
  3. The git-helper-ai-remediate pipeline is triggered via the ADO Pipelines API with workItemId, targetRepo, and targetBranch as template parameters. Your PAT and Bedrock bearer token are passed as masked runtime variables so the pipeline agent can authenticate. Any configured Agent Budget Limits (max fix attempts, iterations, tool calls, wall time, input tokens) are also passed as pipeline variables
  4. A floating progress panel appears. It shows pipeline task steps while the pipeline starts, then switches to a live agent tool-call feed once the AI agent begins working
  5. The agent works through five phases: Investigating (reads code), Planning (forms hypothesis), Remediating (applies patch), Validating (checks fix), Creating PR (opens a pull request and links it to the work item)
  6. On success, a View Pull Request → link appears in the panel and below the button. On failure, a link to the pipeline run is shown instead
  7. Run state is saved locally — if you refresh the page while a fix is running, the progress panel is automatically restored and polling continues

Agent Internals

Pipeline agent architecture for AI Remediate. Hover or click nodes in the state diagram to explore phase details.

State Diagram
Phase Roles
Tool Matrix
Security Guards
Critic
PR Description

State Transition Diagram

Flow:
IDLE LOADING_SKILL INVESTIGATING PLANNING REMEDIATING REPRODUCING PROVING VALIDATING CRITIC CREATING_PR COMPLETE FAILED / BUDGET_EXCEEDED test passes → retry once LEGEND active path retry failure write (modifies files) security-only phase failure / terminal normal phase
Hover or click a state →

Phase Roles & Tool Access

IDLE
Start state. No tools. Transitions only to LOADING_SKILL.
LOADING_SKILL
Reads skills/work-item-fix/SKILL.md and injects it as the system prompt for all agent phases. No tools available.
INVESTIGATING
Fetch the work item, explore the repo, identify root cause and exact files/lines. Goal: smallest possible change. Budget: 50 iterations.
get_work_itemread_filelist_filessearch_codefind_references
REPRODUCING bug only
Receives full INVESTIGATING context. Finds nearest test file, inserts a single failing test. Pre-fix run checks the test must fail; retries once with feedback if it passes. Budget: 20 iter / attempt.
read_filelist_filessearch_codefind_referencesreplace_in_file ✦apply_patch
PLANNING
Pure LLM synthesis — no tools. Compresses INVESTIGATING output into a compact self-contained fix plan.
REMEDIATING
Apply patches. Only exact lines needed — no reformatting or cleanup. Re-entered on validation failure or critic reject.
get_work_itemread_filelist_filessearch_codefind_referencesreplace_in_file ✦apply_patch
PROVING security only non-fatal
Read-only dry-run. Agent confirms the attack vector is closed. Write tools are blocked. Failure does not block the fix. Budget: 20 iter.
get_work_itemread_filelist_filessearch_codefind_references
VALIDATING
FixValidator runs independently — never accessible to Claude. Checks: patch applied, non-empty files, JSON/XML parseable, output scan passes, TEST_COMMAND exits 0 if set.
read_filelist_files
CRITIC
Independent LLM call — no tools. Receives fix plan + unified diffs. A reject always blocks PR. Feedback injected into next REMEDIATING attempt.
CREATING_PR
Blocked if patch hash changed since validation. Pushes to ai-fix/wi-<id>-<ts>, creates PR, links work item.
create_pull_requestlink_work_item
COMPLETE
Terminal. PR created, work item linked, rich ADO comment posted.
FAILED / BUDGET_EXCEEDED / BLOCKED
Terminal error states. Report JSON + Markdown published as pipeline artifact.

read read-only   write ✦ modifies workspace files

Tool Permission Matrix

Tools are phase-gated. A call in an unlisted phase is immediately rejected. Green pills = write (modifies workspace).

ToolAllowed PhasesNotes
get_work_itemINVESTIGATINGPLANNINGREMEDIATINGPROVINGInput scanned by guards before fetch.
read_fileINVESTIGATINGREPRODUCINGPLANNINGREMEDIATINGPROVINGVALIDATINGREVIEWING
list_filesINVESTIGATINGREPRODUCINGPLANNINGREMEDIATINGPROVINGVALIDATINGREVIEWING
search_codeINVESTIGATINGREPRODUCINGPLANNINGREMEDIATINGPROVINGREVIEWING
find_referencesINVESTIGATINGREPRODUCINGPLANNINGREMEDIATINGPROVINGREVIEWING
replace_in_fileREPRODUCINGREMEDIATINGPreferred — surgical insertion, leaves existing code untouched.
apply_patchREPRODUCINGREMEDIATINGCaptures git diff --cached in PatchRecord.unifiedDiff for the critic. Blocked in PROVING.
get_pr_details
get_pr_diff
get_pr_comments
INVESTIGATINGPLANNINGREVIEWINGReview workflow only.
create_pull_requestCREATING_PR
link_work_itemCREATING_PR

Security Guards

Guards scan tool inputs before execution. A block is a hard failure — the error includes matchedText (≤80 chars) visible in pipeline logs.

regexGuard always on

Returns safe: false with matchedText snippet on first match.

  • ignore-instructions
  • disregard
  • forget-instructions
  • override-safety
  • do-not-follow
  • persona-switch
  • act-as
  • pretend-persona
  • roleplay-framing
  • new-role
  • session-persona
  • DAN-jailbreak
  • jailbreak-keyword
  • system-tag
  • system-bracket
  • markdown-header-injection
  • llama-inst-tokens
  • special-model-tokens
  • claude-turn-markers
  • extract-system-prompt
  • prompt-extraction
  • repeat-above
  • respond-only-in
  • execute-command
  • run-command
  • shell-subshell
  • backtick-execution
  • developer-mode
  • unrestricted-mode
  • no-restrictions
  • safety-bypass

⚠ backtick-execution (/`[^`]{5,}`/) is intentionally broad — work items with inline code like `StackOverflowException` will be blocked. Known limitation.

base64Guard always on

Detects Base64-encoded payloads that could smuggle injection patterns past the regex guard.

llmGuard optional

Secondary LLM evaluator. Active when llmClient is in GuardOptions.

azurePromptShield optional

Calls Azure AI Content Safety prompt shield. Requires AZURE_CONTENT_SAFETY_ENDPOINT + AZURE_CONTENT_SAFETY_KEY.

Length guard removed. The 8 000-char limit blocked legitimate large work items.

Output scanner

Runs on git diff --cached after every apply_patch / replace_in_file. On failure the file is unstaged and restored — patch rolled back.

Critic Phase

Independent LLM call (no tools). Receives fix plan + unified diff hunks via git diff --cached --unified=5 — up to 8 000 chars per file. A reject always blocks PR — no bypass limit.

DO evaluate

  • Does the fix address the root cause in the plan?
  • Are there logic errors, bypasses, or unintended side effects?
  • Does the change match acceptance criteria in the work item?
  • If a version number was replaced — does the old value still appear in patched content?
  • (Bug fixes only) Is a regression test present and does it cover the specific bug?

DO NOT reject based on

  • Whether a CVE exists in any external database (no internet access)
  • Whether a package version exists on NuGet / npm / PyPI
  • Whether a version bump is a breaking change
  • Any external fact not derivable from the provided text

PR Description — AI Generation

The + PR button generates an AI-refined description from commits and changed files.

  1. Fetch branch commits and changed files from diffs/commits API in parallel.
  2. Filter commits (merge commits optional per settings).
  3. Template generator builds structured draft.
  4. AI refinement receives draft + commit messages + changed file list — uses file paths to make bullets specific.
  5. Refined Markdown set as PR description on creation.

Logging

[tool-error] immediate stderr on tool failure
[plan] planText preview after PLANNING
[remediate] 0 patches applied warning
[proving] non-fatal proving failure
[reproducing] pre-fix test run result
[critic] full reject feedback

Removing the extension

Go to chrome://extensions, find Azure DevOps Git Assistance, and click Remove. All locally stored settings are deleted with the extension.

Permissions Requested and Why

Azure DevOps Git Assistance requests only the minimum permissions required to provide its functionality.

Permission User-facing feature Why narrower is not viable
storage Saves PAT token and AI settings (region, bearer token) to chrome.storage.local so they persist across sessions. Without this permission, every setting resets when the browser closes. There is no narrower scope for local per-extension storage.
activeTab Reads the URL of the currently active tab to detect which ADO organisation you are on (used to pre-fill the "Test against organisation" field in the popup). Only the active tab URL is read. tabs permission (which grants access to all open tabs) is not requested.
host_permissions:
dev.azure.com/*
*.visualstudio.com/*
Injects the content script into Azure DevOps pages; calls the ADO REST API to fetch commits, branch refs, and user connection data; creates and deletes branch refs. Content scripts and cross-origin fetch require host permissions matching the target origin. Narrower path patterns (e.g. only */pullrequest/*) are not supported by Chrome's host permission syntax for content scripts.
host_permissions:
*.amazonaws.com/*
Sends the generated draft and commit messages to AWS Bedrock for AI refinement, only when AI is enabled and a bearer token is configured. Only bedrock-runtime.{region}.amazonaws.com is contacted. Chrome extensions cannot call cross-origin URLs from content scripts unless declared in host_permissions. If AI is disabled, this permission is never exercised.
No background permissions Azure DevOps Git Assistance does not use tabs, history, cookies, webRequest, bookmarks, identity, or any other sensitive Chrome API. It has no access to pages outside Azure DevOps.

Privacy Policy

Last updated: September 28, 2026

Overview

Azure DevOps Git Assistance is a Chrome Extension that adds PR workflow features to Azure DevOps pages. It is free to use for personal and commercial purposes. You may not copy, modify, redistribute, reverse-engineer, or create derivative works based on this extension. This policy explains what data the extension accesses, how it is used, and what leaves your browser.

Data Stored Locally

The following values are saved to chrome.storage.local, stored exclusively on your device and never transmitted to any server operated by this extension:

Data Sent to Azure DevOps

The extension calls the Azure DevOps REST API to:

These calls are made directly from your browser to Azure DevOps using your configured PAT or existing session cookies. No intermediate server is involved.

Data Sent to AWS Bedrock

When AI description generation is enabled and a PR is created, the extension sends to AWS Bedrock:

No source code, file diffs, PAT tokens, API keys, or personal account information are included in the AI description request. When AI is disabled, no data is sent to any AI provider.

Data Sent by AI Remediate

When AI Remediate is triggered, the extension calls the ADO Pipelines API to start the configured fix pipeline. The following are passed as pipeline parameters:

The pipeline itself (running on your ADO agents) calls AWS Bedrock with work item and code context to perform the fix. No data from the AI Remediate pipeline is sent to any server operated by this extension.

Data Not Collected

Azure DevOps Git Assistance does not collect, transmit, or store:

Third-Party Services

The only external services the extension may contact are Azure DevOps (always) and AWS Bedrock (only when AI is enabled). No analytics, advertising, or tracking services are used.

Data Deletion

Remove the extension from Chrome to delete all locally stored data. You can also clear the extension's storage via chrome://extensions → Azure DevOps Git Assistance → Clear storage.

Contact

For questions about this Privacy Policy: lucamit@gmail.com

Terms of Service

Last updated: September 28, 2026

1. Acceptance of Terms

By installing or using Azure DevOps Git Assistance, you agree to these Terms of Service. If you do not agree, do not install or use the extension.

2. Description of the Service

Azure DevOps Git Assistance is a Chrome Extension that adds PR workflow features to Azure DevOps: one-click PR creation with auto-filled titles and descriptions, configurable draft mode and target branches, optional AI-powered description enrichment via AWS Bedrock, AI-powered work item remediation that investigates code and opens a Pull Request automatically, and safe branch deletion with ownership verification and an optional Admin Delete mode. It is intended as a productivity aid and should not be relied upon as the sole source of important PR documentation or as a substitute for reviewing your own changes.

3. Branch Deletion

The Delete branch feature permanently removes the branch from the remote repository for all users. You are solely responsible for any consequences of deleting a branch, including loss of work. Always confirm you no longer need a branch before deleting it. The developer is not responsible for data loss resulting from use of this feature.

4. License

Azure DevOps Git Assistance is free to use for both personal and commercial purposes. You may not copy, modify, redistribute, reverse-engineer, or create derivative works based on this extension or its source code without explicit written permission from the developer.

5. Third-Party AI Services

When AI refinement is enabled, commit data is sent to AWS Bedrock using the bearer token you provide. Your use of AWS services is governed by Amazon's terms. The developer of Azure DevOps Git Assistance is not responsible for the behaviour, outputs, data handling, pricing, or availability of AWS Bedrock.

6. No Warranty

Azure DevOps Git Assistance is provided "as is" without warranties of any kind. The developer does not guarantee that generated descriptions will be accurate, complete, or suitable; that the extension will remain compatible with future versions of Chrome or Azure DevOps; or that AI output will meet any quality standard. Always review generated descriptions before publishing them.

7. Limitation of Liability

To the maximum extent permitted by law, the developer is not liable for any damages arising from use of Azure DevOps Git Assistance, including inaccurate descriptions, data loss from branch deletion, service interruptions, or consequences of relying on AI-generated output.

8. User Responsibilities

You agree to use the extension only on repositories you are authorised to access, to comply with Azure DevOps and Chrome Web Store terms, and to review generated output before publishing.

9. Changes to These Terms

The developer may update these Terms at any time. Continued use after changes are posted constitutes acceptance of the revised terms.

Support

Getting help

See the Installation & Setup section above for configuration and usage guidance.

Report an issue

Email lucamit@gmail.com and please include: