sprint-254-features
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese🚨 CRITICAL GUIDELINES
🚨 重要指南
Windows File Path Requirements
Windows文件路径要求
MANDATORY: Always Use Backslashes on Windows for File Paths
When using Edit or Write tools on Windows, you MUST use backslashes () in file paths, NOT forward slashes ().
\/Examples:
- ❌ WRONG:
D:/repos/project/file.tsx - ✅ CORRECT:
D:\repos\project\file.tsx
This applies to:
- Edit tool file_path parameter
- Write tool file_path parameter
- All file operations on Windows systems
强制要求:在Windows系统中使用文件路径时必须使用反斜杠(\)
在Windows系统上使用编辑或写入工具时,文件路径必须使用反斜杠(),而不能使用正斜杠()。
\/示例:
- ❌ 错误:
D:/repos/project/file.tsx - ✅ 正确:
D:\repos\project\file.tsx
此要求适用于:
- Edit工具的file_path参数
- Write工具的file_path参数
- Windows系统上的所有文件操作
Documentation Guidelines
文档指南
NEVER create new documentation files unless explicitly requested by the user.
- Priority: Update existing README.md files rather than creating new documentation
- Repository cleanliness: Keep repository root clean - only README.md unless user requests otherwise
- Style: Documentation should be concise, direct, and professional - avoid AI-generated tone
- User preference: Only create additional .md files when user specifically asks for documentation
除非用户明确要求,否则绝不要创建新的文档文件。
- 优先级:优先更新现有的README.md文件,而非创建新文档
- 仓库整洁性:保持仓库根目录整洁 - 除非用户要求,否则只保留README.md
- 风格:文档应简洁、直接、专业 - 避免AI生成的语气
- 用户偏好:仅当用户明确要求文档时,才创建额外的.md文件
Azure DevOps 2025 Latest Features (Sprints 254-262)
Azure DevOps 2025最新功能(Sprint 254-262)
New Expression Functions (Sprint 248)
新表达式函数(Sprint 248)
iif() - Ternary Conditional Operator
iif() - 三元条件运算符
yaml
undefinedyaml
undefinedSyntax: iif(condition, valueIfTrue, valueIfFalse)
Syntax: iif(condition, valueIfTrue, valueIfFalse)
variables:
environment: 'production'
Use iif for conditional values
instanceCount: ${{ iif(eq(variables.environment, 'production'), 10, 2) }}
deploymentSlot: ${{ iif(eq(variables.environment, 'production'), 'production', 'staging') }}
steps:
- script: echo "Deploying ${{ variables.instanceCount }} instances to ${{ variables.deploymentSlot }}"
undefinedvariables:
environment: 'production'
Use iif for conditional values
instanceCount: ${{ iif(eq(variables.environment, 'production'), 10, 2) }}
deploymentSlot: ${{ iif(eq(variables.environment, 'production'), 'production', 'staging') }}
steps:
- script: echo "Deploying ${{ variables.instanceCount }} instances to ${{ variables.deploymentSlot }}"
undefinedtrim() - Remove Whitespace
trim() - 移除空白字符
yaml
parameters:
- name: branchName
type: string
default: ' feature/my-branch '
variables:
# Remove leading/trailing whitespace
cleanBranch: ${{ trim(parameters.branchName) }}
# Result: 'feature/my-branch' (no spaces)yaml
parameters:
- name: branchName
type: string
default: ' feature/my-branch '
variables:
# Remove leading/trailing whitespace
cleanBranch: ${{ trim(parameters.branchName) }}
# Result: 'feature/my-branch' (no spaces)New Predefined Variables (Sprint 253)
新预定义变量(Sprint 253)
Build.StageRequestedBy
Build.StageRequestedBy
Who requested the stage execution:
yaml
stages:
- stage: Deploy
jobs:
- job: DeployJob
steps:
- script: |
echo "Stage requested by: $(Build.StageRequestedBy)"
echo "Stage requester ID: $(Build.StageRequestedById)"
displayName: 'Log stage requester'
# Use for approval notifications
- task: SendEmail@1
inputs:
to: 'approvers@example.com'
subject: 'Deployment requested by $(Build.StageRequestedBy)'发起阶段执行的用户信息:
yaml
stages:
- stage: Deploy
jobs:
- job: DeployJob
steps:
- script: |
echo "Stage requested by: $(Build.StageRequestedBy)"
echo "Stage requester ID: $(Build.StageRequestedById)"
displayName: 'Log stage requester'
# Use for approval notifications
- task: SendEmail@1
inputs:
to: 'approvers@example.com'
subject: 'Deployment requested by $(Build.StageRequestedBy)'Stage Dependencies Visualization (Sprint 254)
阶段依赖可视化(Sprint 254)
View stage dependencies when stage is expanded in pipeline UI:
yaml
stages:
- stage: Build
jobs:
- job: BuildJob
steps:
- script: echo "Building..."
- stage: Test
dependsOn: Build # Shown visually when expanded
jobs:
- job: TestJob
steps:
- script: echo "Testing..."
- stage: Deploy_USEast
dependsOn: Test
jobs:
- job: DeployJob
steps:
- script: echo "Deploying to US East..."
- stage: Deploy_EUWest
dependsOn: Test # Parallel with Deploy_USEast - visualized clearly
jobs:
- job: DeployJob
steps:
- script: echo "Deploying to EU West..."Benefits:
- Visual dependency graph in UI
- Easier debugging of complex pipelines
- Clear multi-region deployment patterns
- Identify parallel vs sequential stages
在管道UI中展开阶段时可查看阶段依赖关系:
yaml
stages:
- stage: Build
jobs:
- job: BuildJob
steps:
- script: echo "Building..."
- stage: Test
dependsOn: Build # Shown visually when expanded
jobs:
- job: TestJob
steps:
- script: echo "Testing..."
- stage: Deploy_USEast
dependsOn: Test
jobs:
- job: DeployJob
steps:
- script: echo "Deploying to US East..."
- stage: Deploy_EUWest
dependsOn: Test # Parallel with Deploy_USEast - visualized clearly
jobs:
- job: DeployJob
steps:
- script: echo "Deploying to EU West..."优势:
- UI中的可视化依赖图
- 更易于调试复杂管道
- 清晰展示多区域部署模式
- 区分并行与串行阶段
New OS Images
新操作系统镜像
Ubuntu-24.04 (General Availability)
Ubuntu-24.04(正式可用)
yaml
pool:
vmImage: 'ubuntu-24.04' # Latest LTS - Recommended
# OR use ubuntu-latest (will map to 24.04 soon)
# vmImage: 'ubuntu-latest'
steps:
- script: |
lsb_release -a
# Ubuntu 24.04 LTS (Noble Numbat)Key Information:
- Ubuntu 24.04 is now generally available
- will soon map to
ubuntu-latest(currentlyubuntu-24.04)ubuntu-22.04 - Ubuntu 20.04 fully removed April 30, 2025
yaml
pool:
vmImage: 'ubuntu-24.04' # Latest LTS - Recommended
# OR use ubuntu-latest (will map to 24.04 soon)
# vmImage: 'ubuntu-latest'
steps:
- script: |
lsb_release -a
# Ubuntu 24.04 LTS (Noble Numbat)关键信息:
- Ubuntu 24.04现已正式可用
- 很快将映射到
ubuntu-latest(当前为ubuntu-24.04)ubuntu-22.04 - Ubuntu 20.04已于2025年4月30日完全移除
Windows Server 2025 (Coming June 2025)
Windows Server 2025(2025年6月推出)
yaml
pool:
vmImage: 'windows-2025' # GA: June 16, 2025
steps:
- pwsh: |
Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersionKey Information:
- General availability: June 16, 2025
- will map to
windows-lateststarting September 2, 2025windows-2025 - Windows Server 2019 extended support until December 31, 2025
yaml
pool:
vmImage: 'windows-2025' # GA: June 16, 2025
steps:
- pwsh: |
Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion关键信息:
- 正式可用日期:2025年6月16日
- 从2025年9月2日起,将映射到
windows-latestwindows-2025 - Windows Server 2019的扩展支持将持续到2025年12月31日
macOS-15 Sequoia (Available)
macOS-15 Sequoia(已可用)
yaml
pool:
vmImage: 'macOS-15' # Sequoia
steps:
- script: |
sw_vers
# macOS 15.x (Sequoia)Key Information:
- macOS 13 Ventura deprecation starts September 1, 2025
- macOS 13 retirement planned for December 4, 2025
- Apple Silicon (ARM64) support in preview
yaml
pool:
vmImage: 'macOS-15' # Sequoia
steps:
- script: |
sw_vers
# macOS 15.x (Sequoia)关键信息:
- macOS 13 Ventura的弃用从2025年9月1日开始
- macOS 13的退役计划于2025年12月4日实施
- Apple Silicon(ARM64)支持处于预览阶段
⚠️ Deprecated and Retired Images
⚠️ 已弃用和退役的镜像
Fully Removed (2025):
- Ubuntu 20.04 - Removed April 30, 2025
- .NET 6 - Removed from Windows and Ubuntu images August 1, 2025
Extended Support:
- Windows Server 2019 - Extended until December 31, 2025
- Deprecation starts: June 1, 2025
- Brownout periods: June 3-24, 2025
- Final removal: December 31, 2025
Upcoming Deprecations:
- macOS 13 Ventura - Deprecation: September 1, 2025, Retirement: December 4, 2025
Migration Recommendations:
yaml
undefined已完全移除(2025年):
- Ubuntu 20.04 - 2025年4月30日移除
- .NET 6 - 2025年8月1日从Windows和Ubuntu镜像中移除
扩展支持:
- Windows Server 2019 - 扩展支持至2025年12月31日
- 弃用开始时间:2025年6月1日
- 受限访问期:2025年6月3日-24日
- 最终移除时间:2025年12月31日
即将到来的弃用:
- macOS 13 Ventura - 弃用:2025年9月1日,退役:2025年12月4日
迁移建议:
yaml
undefinedUbuntu Migration
Ubuntu迁移
OLD (Removed)
旧版(已移除)
pool:
vmImage: 'ubuntu-20.04'
pool:
vmImage: 'ubuntu-20.04'
NEW (Recommended)
新版(推荐)
pool:
vmImage: 'ubuntu-24.04' # Best: explicit version
OR
vmImage: 'ubuntu-latest' # Will map to 24.04 soon
pool:
vmImage: 'ubuntu-24.04' # 最佳选择:明确指定版本
或
vmImage: 'ubuntu-latest' # 很快将映射到24.04
Windows Migration
Windows迁移
OLD (Being deprecated)
旧版(即将弃用)
pool:
vmImage: 'windows-2019'
pool:
vmImage: 'windows-2019'
NEW (Recommended)
新版(推荐)
pool:
vmImage: 'windows-2022' # Current stable
OR wait for
vmImage: 'windows-2025' # GA June 2025
undefinedpool:
vmImage: 'windows-2022' # 当前稳定版
或等待
vmImage: 'windows-2025' # 2025年6月正式可用
undefinedGitHub Integration Improvements
GitHub集成改进
Auto-linked Pull Requests
自动关联拉取请求
GitHub branches linked to work items automatically link PRs:
yaml
undefined与工作项关联的GitHub分支会自动关联拉取请求:
yaml
undefinedWhen PR is created for branch linked to work item,
当为关联工作项的分支创建PR时,
PR automatically appears in work item's Development section
PR会自动显示在工作项的开发部分
trigger:
branches:
include:
- feature/*
- users/*
trigger:
branches:
include:
- feature/*
- users/*
Work item auto-linking based on branch name pattern
根据分支名称模式自动关联工作项
AB#12345 in commits auto-links to work item 12345
提交信息中的AB#12345会自动关联到工作项12345
undefinedundefined"Integrated in build" Links
"已集成到构建中"链接
GitHub repos show which build integrated the PR:
yaml
pr:
branches:
include:
- main
- developGitHub仓库会显示PR已集成到哪个构建中:
yaml
pr:
branches:
include:
- main
- developAfter PR merged, work item shows:
PR合并后,工作项会显示:
"Integrated in build: Pipeline Name #123"
"已集成到构建中:管道名称 #123"
Direct link to build that deployed the change
直接链接到部署该变更的构建
undefinedundefinedStage-Level Variables
阶段级变量
yaml
stages:
- stage: Build
variables:
buildConfiguration: 'Release'
platform: 'x64'
jobs:
- job: BuildJob
steps:
- script: echo "Building $(buildConfiguration) $(platform)"
- stage: Deploy
variables:
environment: 'production'
region: 'eastus'
jobs:
- job: DeployJob
steps:
- script: |
echo "Stage: $(System.StageName)"
echo "Requested by: $(Build.StageRequestedBy)"
echo "Deploying to $(environment) in $(region)"yaml
stages:
- stage: Build
variables:
buildConfiguration: 'Release'
platform: 'x64'
jobs:
- job: BuildJob
steps:
- script: echo "Building $(buildConfiguration) $(platform)"
- stage: Deploy
variables:
environment: 'production'
region: 'eastus'
jobs:
- job: DeployJob
steps:
- script: |
echo "Stage: $(System.StageName)"
echo "Requested by: $(Build.StageRequestedBy)"
echo "Deploying to $(environment) in $(region)"Practical Examples
实用示例
Multi-Region Deployment with New Features
采用新功能的多区域部署
yaml
parameters:
- name: deployToProd
type: boolean
default: false
variables:
# Use iif for conditional values
targetEnvironment: ${{ iif(parameters.deployToProd, 'production', 'staging') }}
stages:
- stage: Build
jobs:
- job: BuildApp
pool:
vmImage: 'ubuntu-24.04' # New image
steps:
- script: npm run build
- stage: Test
dependsOn: Build
jobs:
- job: RunTests
pool:
vmImage: 'ubuntu-24.04'
steps:
- script: npm test
- stage: Deploy_USEast
dependsOn: Test
condition: succeeded()
variables:
region: 'eastus'
jobs:
- deployment: DeployToUSEast
environment: ${{ variables.targetEnvironment }}
pool:
vmImage: 'ubuntu-24.04'
strategy:
runOnce:
deploy:
steps:
- script: |
echo "Deploying to $(region)"
echo "Requested by: $(Build.StageRequestedBy)"
- stage: Deploy_EUWest
dependsOn: Test # Parallel with Deploy_USEast
condition: succeeded()
variables:
region: 'westeurope'
jobs:
- deployment: DeployToEUWest
environment: ${{ variables.targetEnvironment }}
pool:
vmImage: 'ubuntu-24.04'
strategy:
runOnce:
deploy:
steps:
- script: |
echo "Deploying to $(region)"
echo "Requested by: $(Build.StageRequestedBy)"yaml
parameters:
- name: deployToProd
type: boolean
default: false
variables:
# 使用iif设置条件值
targetEnvironment: ${{ iif(parameters.deployToProd, 'production', 'staging') }}
stages:
- stage: Build
jobs:
- job: BuildApp
pool:
vmImage: 'ubuntu-24.04' # 新镜像
steps:
- script: npm run build
- stage: Test
dependsOn: Build
jobs:
- job: RunTests
pool:
vmImage: 'ubuntu-24.04'
steps:
- script: npm test
- stage: Deploy_USEast
dependsOn: Test
condition: succeeded()
variables:
region: 'eastus'
jobs:
- deployment: DeployToUSEast
environment: ${{ variables.targetEnvironment }}
pool:
vmImage: 'ubuntu-24.04'
strategy:
runOnce:
deploy:
steps:
- script: |
echo "Deploying to $(region)"
echo "Requested by: $(Build.StageRequestedBy)"
- stage: Deploy_EUWest
dependsOn: Test # 与Deploy_USEast并行
condition: succeeded()
variables:
region: 'westeurope'
jobs:
- deployment: DeployToEUWest
environment: ${{ variables.targetEnvironment }}
pool:
vmImage: 'ubuntu-24.04'
strategy:
runOnce:
deploy:
steps:
- script: |
echo "Deploying to $(region)"
echo "Requested by: $(Build.StageRequestedBy)"Stage dependencies visualized clearly in UI (Sprint 254)
阶段依赖关系在UI中清晰可视化(Sprint 254)
undefinedundefinedContinuous Access Evaluation (Sprint 260 - August 2025)
持续访问评估(Sprint 260 - 2025年8月)
Enhanced Security with CAE
借助CAE增强安全性
Azure DevOps now supports Continuous Access Evaluation (CAE), enabling near real-time enforcement of Conditional Access policies through Microsoft Entra ID.
Key Benefits:
- Instant access revocation on critical events
- No waiting for token expiration
- Enhanced security posture
Triggers for Access Revocation:
- User account disabled
- Password reset
- Location or IP address changes
- Risk detection events
- Policy violations
Example Scenario:
yaml
undefinedAzure DevOps现在支持持续访问评估(CAE),通过Microsoft Entra ID实现条件访问策略的近乎实时执行。
主要优势:
- 关键事件发生时立即撤销访问权限
- 无需等待令牌过期
- 提升安全态势
访问撤销触发条件:
- 用户账户被禁用
- 密码重置
- 位置或IP地址变更
- 风险检测事件
- 策略违规
示例场景:
yaml
undefinedYour pipeline with CAE enabled automatically
已自动启用CAE的管道
stages:
- stage: Production
jobs:
- deployment: Deploy environment: 'production' pool: vmImage: 'ubuntu-24.04' strategy: runOnce: deploy: steps: - script: echo "Deploying..." # If user credentials are revoked mid-deployment, # CAE will instantly terminate access
**Implementation:**
- General availability: August 2025
- Phased rollout to all customers
- No configuration required (automatic for all Azure DevOps orgs)
- Works with Microsoft Entra ID Conditional Access policies
**Security Improvements:**
- Immediate response to security events
- Reduces attack window from hours/days to seconds
- Complements existing security features (Key Vault, branch policies, etc.)stages:
- stage: Production
jobs:
- deployment: Deploy environment: 'production' pool: vmImage: 'ubuntu-24.04' strategy: runOnce: deploy: steps: - script: echo "Deploying..." # 如果在部署过程中用户凭证被撤销, # CAE会立即终止访问权限
**实施细节:**
- 正式可用:2025年8月
- 分阶段向所有客户推出
- 无需配置(对所有Azure DevOps组织自动生效)
- 与Microsoft Entra ID条件访问策略兼容
**安全改进:**
- 对安全事件做出即时响应
- 将攻击窗口从数小时/天缩短至数秒
- 补充现有安全功能(Key Vault、分支策略等)OAuth Apps Deprecation (April 2025)
OAuth应用弃用(2025年4月)
Important Change:
- Azure DevOps no longer supports new registrations of Azure DevOps OAuth apps (effective April 2025)
- First step towards retiring the Azure DevOps OAuth platform
- Existing OAuth apps continue to work
- Plan migration to Microsoft Entra ID authentication
Migration Recommendations:
yaml
undefined重要变更:
- Azure DevOps不再支持新的Azure DevOps OAuth应用注册(自2025年4月起生效)
- 这是淘汰Azure DevOps OAuth平台的第一步
- 现有OAuth应用可继续使用
- 计划迁移到Microsoft Entra ID认证
迁移建议:
yaml
undefinedUse service connections with Microsoft Entra ID instead
改用基于Microsoft Entra ID的服务连接
- task: AzureCLI@2 inputs: azureSubscription: 'service-connection' # Uses Managed Identity or Service Principal scriptType: 'bash' scriptLocation: 'inlineScript' addSpnToEnvironment: true inlineScript: | az account show
undefined- task: AzureCLI@2 inputs: azureSubscription: 'service-connection' # 使用托管标识或服务主体 scriptType: 'bash' scriptLocation: 'inlineScript' addSpnToEnvironment: true inlineScript: | az account show
undefinedSNI Requirement (April 2025)
SNI要求(2025年4月)
Network Requirement:
- Server Name Indication (SNI) required on all incoming HTTPS connections
- Effective: April 23, 2025
- Affects all Azure DevOps Services connections
What to Check:
- Ensure clients support SNI (most modern clients do)
- Update legacy tools/scripts if needed
- Test connectivity before April 23, 2025
网络要求:
- 所有传入的HTTPS连接都需要服务器名称指示(SNI)
- 生效时间:2025年4月23日
- 影响所有Azure DevOps服务连接
需要检查的内容:
- 确保客户端支持SNI(大多数现代客户端都支持)
- 如有需要,更新旧版工具/脚本
- 在2025年4月23日前测试连接性
OAuth Apps Deprecation (Sprint 261 - September 2025)
OAuth应用弃用(Sprint 261 - 2025年9月)
Critical Security Change:
Azure DevOps is enforcing one-time visibility for OAuth client secrets:
- Newly generated client secrets displayed only once at creation
- Get Registration Secret API will be retired
- Change effective: September 2, 2025
- No new OAuth app registrations allowed
Migration Path:
yaml
undefined重要安全变更:
Azure DevOps将强制实施OAuth客户端密钥的一次性可见性:
- 新生成的客户端密钥仅在创建时显示一次
- Get Registration Secret API将被淘汰
- 变更生效时间:2025年9月2日
- 不允许新的OAuth应用注册
迁移路径:
yaml
undefinedReplace OAuth apps with Microsoft Entra ID authentication
用Microsoft Entra ID认证替换OAuth应用
Use service connections with Managed Identity or Service Principal
使用托管标识或服务主体的服务连接
- task: AzureCLI@2 inputs: azureSubscription: 'entra-id-service-connection' scriptType: 'bash' addSpnToEnvironment: true inlineScript: | az account show # Authenticated via Entra ID
**Action Required:**
- Audit existing OAuth apps
- Plan migration to Entra ID authentication
- Update CI/CD pipelines to use service connections
- Document secret rotation procedures- task: AzureCLI@2 inputs: azureSubscription: 'entra-id-service-connection' scriptType: 'bash' addSpnToEnvironment: true inlineScript: | az account show # 通过Entra ID认证
**需执行的操作:**
- 审核现有OAuth应用
- 规划迁移到Entra ID认证
- 更新CI/CD管道以使用服务连接
- 记录密钥轮换流程Agent Software Version 4 (October 2024 - Current)
Agent软件版本4(2024年10月 - 当前)
Major Upgrade:
The Azure Pipelines agent has been upgraded from v3.x to v4.x, powered by .NET 8:
Key Improvements:
- Built on .NET 8 for better performance and security
- Extended platform support including ARM64
- Improved reliability and diagnostics
- Better resource management
Platform Support:
- Linux: Debian 11 & 12, Ubuntu 24.04, 22.04, 20.04 (ARM64 supported)
- macOS: Intel and Apple Silicon (ARM64 supported)
- Windows: Windows Server 2019, 2022, 2025
ARM64 Support:
yaml
undefined重大升级:
Azure Pipelines代理已从v3.x升级到v4.x,基于.NET 8构建:
主要改进:
- 基于.NET 8构建,性能和安全性更优
- 扩展平台支持,包括ARM64
- 提升可靠性和诊断能力
- 改进资源管理
平台支持:
- Linux: Debian 11 & 12,Ubuntu 24.04、22.04、20.04(支持ARM64)
- macOS: Intel和Apple Silicon(支持ARM64)
- Windows: Windows Server 2019、2022、2025
ARM64支持:
yaml
undefinedSelf-hosted ARM64 agent
自托管ARM64代理
pool:
name: 'arm64-pool'
demands:
- agent.os -equals Linux
- Agent.OSArchitecture -equals ARM64
steps:
- script: uname -m displayName: 'Verify ARM64 architecture'
**Note:** ARM64 support is available for self-hosted agents. Microsoft-hosted ARM64 macOS agents are in preview.pool:
name: 'arm64-pool'
demands:
- agent.os -equals Linux
- Agent.OSArchitecture -equals ARM64
steps:
- script: uname -m displayName: '验证ARM64架构'
**注意:** ARM64支持适用于自托管代理。微软托管的ARM64 macOS代理处于预览阶段。Sprint 262 - GitHub Copilot Integration (2025)
Sprint 262 - GitHub Copilot集成(2025年)
AI-Powered Work Item Assistance (Private Preview):
Connect Azure Boards work items directly with GitHub Copilot:
Capabilities:
- Send work items to Copilot coding agent
- AI-assisted bug fixes
- Automated feature implementation
- Test coverage improvements
- Documentation updates
- Technical debt reduction
Usage Pattern:
- Create work item in Azure Boards
- Add detailed requirements in description
- Send to GitHub Copilot
- Copilot generates code changes
- Review and merge via standard PR process
Integration with Pipelines:
yaml
undefinedAI驱动的工作项辅助功能(私有预览):
将Azure Boards工作项直接与GitHub Copilot连接:
功能:
- 将工作项发送到Copilot编码Agent
- AI辅助修复bug
- 自动实现功能
- 提升测试覆盖率
- 更新文档
- 减少技术债务
使用流程:
- 在Azure Boards中创建工作项
- 在描述中添加详细需求
- 发送到GitHub Copilot
- Copilot生成代码变更
- 通过标准PR流程审核并合并
与管道的集成:
yaml
undefinedWork items auto-link with PRs
工作项自动与PR关联
trigger:
branches:
include:
- feature/*
trigger:
branches:
include:
- feature/*
Mention work item in commit
在提交信息中提及工作项
Example: "Fix login bug AB#12345"
示例:"修复登录bug AB#12345"
Automatically links PR to work item and tracks in build
自动将PR关联到工作项并在构建中跟踪
undefinedundefined