mirror of
https://github.com/github/awesome-copilot.git
synced 2026-03-13 20:55:13 +00:00
334 lines
6.6 KiB
Markdown
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
|
|
```
|