Files
awesome-copilot/skills/azure-devops-cli/references/repos-and-prs.md
fondoger 2f71741fb5 Merge pull request #841 from fondoger/fondoger/ado-skill-update
Split azure-devops-cli SKILL.md into samller files
2026-03-02 10:33:08 +11:00

334 lines
6.6 KiB
Markdown

# Repositories & Pull Requests
## Table of Contents
- [Repositories](#repositories)
- [Repository Import](#repository-import)
- [Pull Requests](#pull-requests)
- [Git References](#git-references)
- [Repository Policies](#repository-policies)
---
## Repositories
### List Repositories
```bash
az repos list --org https://dev.azure.com/{org} --project {project}
az repos list --output table
```
### Show Repository Details
```bash
az repos show --repository {repo-name} --project {project}
```
### Create Repository
```bash
az repos create --name {repo-name} --project {project}
```
### Delete Repository
```bash
az repos delete --id {repo-id} --project {project} --yes
```
### Update Repository
```bash
az repos update --id {repo-id} --name {new-name} --project {project}
```
## Repository Import
### Import Git Repository
```bash
# Import from public Git repository
az repos import create \
--git-source-url https://github.com/user/repo \
--repository {repo-name}
# Import with authentication
az repos import create \
--git-source-url https://github.com/user/private-repo \
--repository {repo-name} \
--user {username} \
--password {password-or-pat}
```
## Pull Requests
### Create Pull Request
```bash
# Basic PR creation
az repos pr create \
--repository {repo} \
--source-branch {source-branch} \
--target-branch {target-branch} \
--title "PR Title" \
--description "PR description" \
--open
# PR with work items
az repos pr create \
--repository {repo} \
--source-branch {source-branch} \
--work-items 63 64
# Draft PR with reviewers
az repos pr create \
--repository {repo} \
--source-branch feature/new-feature \
--target-branch main \
--title "Feature: New functionality" \
--draft true \
--reviewers user1@example.com user2@example.com \
--required-reviewers lead@example.com \
--labels "enhancement" "backlog"
```
### List Pull Requests
```bash
# All PRs
az repos pr list --repository {repo}
# Filter by status
az repos pr list --repository {repo} --status active
# Filter by creator
az repos pr list --repository {repo} --creator {email}
# Output as table
az repos pr list --repository {repo} --output table
```
### Show PR Details
```bash
az repos pr show --id {pr-id}
az repos pr show --id {pr-id} --open # Open in browser
```
### Update PR (Complete/Abandon/Draft)
```bash
# Complete PR
az repos pr update --id {pr-id} --status completed
# Abandon PR
az repos pr update --id {pr-id} --status abandoned
# Set to draft
az repos pr update --id {pr-id} --draft true
# Publish draft PR
az repos pr update --id {pr-id} --draft false
# Auto-complete when policies pass
az repos pr update --id {pr-id} --auto-complete true
# Set title and description
az repos pr update --id {pr-id} --title "New title" --description "New description"
```
### Checkout PR Locally
```bash
# Checkout PR branch
az repos pr checkout --id {pr-id}
# Checkout with specific remote
az repos pr checkout --id {pr-id} --remote-name upstream
```
### Vote on PR
```bash
az repos pr set-vote --id {pr-id} --vote approve
az repos pr set-vote --id {pr-id} --vote approve-with-suggestions
az repos pr set-vote --id {pr-id} --vote reject
az repos pr set-vote --id {pr-id} --vote wait-for-author
az repos pr set-vote --id {pr-id} --vote reset
```
### PR Reviewers
```bash
# Add reviewers
az repos pr reviewer add --id {pr-id} --reviewers user1@example.com user2@example.com
# List reviewers
az repos pr reviewer list --id {pr-id}
# Remove reviewers
az repos pr reviewer remove --id {pr-id} --reviewers user1@example.com
```
### PR Work Items
```bash
# Add work items to PR
az repos pr work-item add --id {pr-id} --work-items {id1} {id2}
# List PR work items
az repos pr work-item list --id {pr-id}
# Remove work items from PR
az repos pr work-item remove --id {pr-id} --work-items {id1}
```
### PR Policies
```bash
# List policies for a PR
az repos pr policy list --id {pr-id}
# Queue policy evaluation for a PR
az repos pr policy queue --id {pr-id} --evaluation-id {evaluation-id}
```
## Git References
### List References (Branches)
```bash
az repos ref list --repository {repo}
az repos ref list --repository {repo} --query "[?name=='refs/heads/main']"
```
### Create Reference (Branch)
```bash
az repos ref create --name refs/heads/new-branch --object-type commit --object {commit-sha}
```
### Delete Reference (Branch)
```bash
az repos ref delete --name refs/heads/old-branch --repository {repo} --project {project}
```
### Lock/Unlock Branch
```bash
az repos ref lock --name refs/heads/main --repository {repo} --project {project}
az repos ref unlock --name refs/heads/main --repository {repo} --project {project}
```
## Repository Policies
### List All Policies
```bash
az repos policy list --repository {repo-id} --branch main
```
### Create/Update/Delete Policy
```bash
# Create from config file
az repos policy create --config policy.json
# Update
az repos policy update --id {policy-id} --config updated-policy.json
# Delete
az repos policy delete --id {policy-id} --yes
```
### Approver Count Policy
```bash
az repos policy approver-count create \
--blocking true \
--enabled true \
--branch main \
--repository-id {repo-id} \
--minimum-approver-count 2 \
--creator-vote-counts true
```
### Build Policy
```bash
az repos policy build create \
--blocking true \
--enabled true \
--branch main \
--repository-id {repo-id} \
--build-definition-id {definition-id} \
--queue-on-source-update-only true \
--valid-duration 720
```
### Work Item Linking Policy
```bash
az repos policy work-item-linking create \
--blocking true \
--branch main \
--enabled true \
--repository-id {repo-id}
```
### Required Reviewer Policy
```bash
az repos policy required-reviewer create \
--blocking true \
--enabled true \
--branch main \
--repository-id {repo-id} \
--required-reviewers user@example.com
```
### Merge Strategy Policy
```bash
az repos policy merge-strategy create \
--blocking true \
--enabled true \
--branch main \
--repository-id {repo-id} \
--allow-squash true \
--allow-rebase true \
--allow-no-fast-forward true
```
### Case Enforcement Policy
```bash
az repos policy case-enforcement create \
--blocking true \
--enabled true \
--branch main \
--repository-id {repo-id}
```
### Comment Required Policy
```bash
az repos policy comment-required create \
--blocking true \
--enabled true \
--branch main \
--repository-id {repo-id}
```
### File Size Policy
```bash
az repos policy file-size create \
--blocking true \
--enabled true \
--branch main \
--repository-id {repo-id} \
--maximum-file-size 10485760 # 10MB in bytes
```