You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps Server 2022本地版与私有Azure OpenAI PR集成问询

自定义脚本实现Azure DevOps Server拉取请求与私有Azure OpenAI集成方案

针对你的场景,完全可以通过自定义脚本实现拉取请求变更传递至私有Azure OpenAI评审,并将结果添加为拉取请求评论的需求,具体实现如下:

核心流程

  • 捕获Azure DevOps Server拉取请求的创建或更新事件
  • 提取拉取请求中的代码变更详情(文件列表、代码差异)
  • 将格式化后的变更内容发送至带专用终结点的私有Azure OpenAI实例
  • 解析AI评审结果,提交为拉取请求的评论内容

关键实现步骤

1. 获取拉取请求变更内容

通过Azure DevOps Server REST API获取变更数据:

  • 调用拉取请求变更列表接口:GET _apis/git/repositories/{repoId}/pullrequests/{pullRequestId}/changes?api-version=7.1-preview.1,获取变更文件ID及基本信息
  • 针对每个变更文件,调用差异详情接口:GET _apis/git/repositories/{repoId}/pullrequests/{pullRequestId}/changes/{changeId}/diff?api-version=7.1-preview.1,提取具体代码差异内容

2. 调用私有Azure OpenAI实例

需确保脚本运行环境可访问OpenAI专用终结点(同虚拟网络或通过专线连接):

  • 使用Azure OpenAI官方SDK(如Python openai库)或REST API,配置base路径指向专用终结点地址
  • 将代码差异整理为明确的评审prompt,示例格式:
    请评审以下代码变更,指出潜在bug、性能问题、代码规范不符合项或优化建议:
    文件路径:{file_path}
    代码差异:
    {diff_content}
    
  • 调用聊天补全接口(如gpt-35-turbo)获取AI评审结果

3. 提交评论至拉取请求

通过Azure DevOps Server REST API提交评论:

  • 调用创建评论线程接口:POST _apis/git/repositories/{repoId}/pullrequests/{pullRequestId}/threads?api-version=7.1-preview.1
  • 按接口要求构造请求体,将AI评审结果作为评论内容提交

脚本触发方式

  • 手动执行:将脚本封装为命令行工具,按需运行
  • 自动触发:配置Azure DevOps Server服务挂钩,在拉取请求创建/更新时触发脚本(可通过本地自动化服务或Azure Function接收挂钩事件并执行脚本逻辑)

注意事项

  • 权限配置:确保脚本使用的服务账号拥有拉取请求读取、评论提交权限;OpenAI实例需配置网络规则允许脚本环境访问专用终结点
  • 内容控制:避免发送过大的代码差异至AI,可限制单文件变更行数或拆分多批请求
  • 结果校验:添加逻辑过滤AI返回的无效内容,确保评论质量

内容的提问来源于stack exchange,提问作者Vowneee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 07:53:13