首页 > 编程问答 >使用 Azure Devops API (Python) 撰写 PR 评论

使用 Azure Devops API (Python) 撰写 PR 评论

时间:2024-07-29 10:46:25浏览次数:13  
标签:python git azure-devops ado pull-request

在任何地方都找不到直接的方法。如何通过 Python 中的 Azure Devops API 将注释添加到拉取请求?


可以使用 Azure DevOps Python API 将注释添加到拉取请求。以下是执行此操作的方法:

1. 安装 Azure DevOps 库:

pip install azure-devops

2. 导入必要的类并对的组织和项目进行身份验证:

from azure.devops.connection import Connection
from msrest.authentication import BasicAuthentication

# Fill in with your personal access token and organization URL
personal_access_token = 'YOUR_PERSONAL_ACCESS_TOKEN'
organization_url = 'https://dev.azure.com/YOUR_ORGANIZATION'

# Create a connection to the organization
credentials = BasicAuthentication('', personal_access_token)
connection = Connection(base_url=organization_url, creds=credentials)

3. 获取 Git 客户端并检索拉取请求:

# Get the Git client
git_client = connection.clients.get_git_client()

# Specify the project ID or name and pull request ID
project_name = 'YOUR_PROJECT_NAME'
pull_request_id = YOUR_PULL_REQUEST_ID

# Get the pull request
pull_request = git_client.get_pull_request(project_name, pull_request_id)

4. 创建一个线程并添加的注释:

# Create a thread for the comment
thread = git_client.create_thread(
    comment_thread={
        'comments': [{'content': 'This is my comment!'}],
        'status': 'active' 
    },
    repository_id=pull_request.repository.id,
    pull_request_id=pull_request.pull_request_id,
    project=project_name
)

这将在拉取请求中创建一个新线程,并在其中添加的注释。

完整脚本:

from azure.devops.connection import Connection
from msrest.authentication import BasicAuthentication

# Fill in with your personal access token and organization URL
personal_access_token = 'YOUR_PERSONAL_ACCESS_TOKEN'
organization_url = 'https://dev.azure.com/YOUR_ORGANIZATION'

# Create a connection to the organization
credentials = BasicAuthentication('', personal_access_token)
connection = Connection(base_url=organization_url, creds=credentials)

# Get the Git client
git_client = connection.clients.get_git_client()

# Specify the project ID or name and pull request ID
project_name = 'YOUR_PROJECT_NAME'
pull_request_id = YOUR_PULL_REQUEST_ID

# Get the pull request
pull_request = git_client.get_pull_request(project_name, pull_request_id)

# Create a thread for the comment
thread = git_client.create_thread(
    comment_thread={
        'comments': [{'content': 'This is my comment!'}],
        'status': 'active'
    },
    repository_id=pull_request.repository.id,
    pull_request_id=pull_request.pull_request_id,
    project=project_name
)

print(f"Comment added to pull request: {pull_request.title}") 

注意: * 将占位符替换为的实际个人访问令牌、组织 URL、项目名称和拉取请求 ID。 * 确保的个人访问令牌具有访问代码和创建注释的足够权限。

标签:python,git,azure-devops,ado,pull-request
From: 78802146

相关文章

  • Python\Python312\Lib\site-packages\torch\lib\fbgemm.dll
    在此处输入图像描述我正在尝试从HuggingFace导入GPT-2变压器模型,但当我尝试导入它时,遇到错误。即使当我尝试仅导入Torch时,我也会收到相同的错误。我已尝试重新安装Torch并完成了所有操作,包括更新VisualC++Redistributable软件包和更新我的驱动程序,但问题......
  • Python GEKKO 不更新参数
    我正在Python中使用GEKKO来估计弹跳球的轨迹。为此,我需要估计2个变量:e_1(恢复系数)和q_1(每次弹跳时的水平速度损失)。我已为其编写了以下代码,但参数似乎没有更新,尽管解算器已成功执行。参数的初始值与参数的最终优化值相同e_1=0.8和q_1=1代码:imp......
  • Python内置模块常用总结
    目录unittestunittest点击查看代码importunittestfromhtmltestreportimportHTMLTestReportclassTestOne(unittest.TestCase):@classmethoddefsetUpClass(cls)->None:print(f'setUpClass')@classmethoddeftearDownClass......
  • 使用 warpPerspective 生成​​全景图像并使用 python 进行单应拼接
    我没有获得正确的全景图像,并且图像质量随着图像的缝合而降低。我期待获得正确的360度图像,并且不会因正确拼接而降低质量。当我使用网络摄像头图像时。它应该得到没有不匹配的拼接图像。我正在研究匹配FCFS中的图像或最佳匹配的方法。创建并添加一个输入图像以及image1和im......
  • 通过 python 获取 android.view.ViewGroup 中的子项
    是否可以使用python、adb或任何库从android.view.ViewGroup获取子元素或文本,但不需要java和kotlin?我正在尝试使用python自动化android模拟器。与模拟器的交互通过adb进行。当我得到屏幕转储时,我看到我需要的元素是android.view.ViewGroup,并且text和content-......
  • Python反编译失败。 (不支持的操作码:JUMP_IF_NOT_EXC_MATCH)
    我尝试使用“pycdc.exe”反编译使用pycdc.exe失败。因为错误“不支持的操作码:JUMP_IF_NOT_EXC_MATCH”在此处输入图像描述使用pycdc.exe失败。因为错误“不支持的操作码:JUMP_IF_NOT_EXC_MATCH”你知道我为什么失败吗?(我试图编译的.pyc似乎是3.10版本)......
  • 计算机毕业设计项目推荐,基于Echarts的高校就业数据可视化管理系统 81461(开题答辩+程序
    摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对高校就业管理等问题,对高校就业管理进行研究分析,然后开发设计出高校就业数据可视化管理系统......
  • Python逆向总结(Python反编译)
    目录第一种:直接反编译型第二种:打包成exe的py文件第三种: 给pyc字节码(类汇编形式)第四种:加花的pyc内容参考第一种:直接反编译型除了直接获得题目内容的python文件外,出题人也可以稍微加工一点点,给出题目python文件所对应的pyc文件,即python的字节码。PYC文件的定义pyc......
  • 【Python学习手册(第四版)】学习笔记06-Python动态类型-赋值模型详解
    个人总结难免疏漏,请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。主要介绍Python的动态类型(也就是Python自动为跟踪对象的类型,不需要在脚本中编写声明语句),Python中变量和对象是如何通过引用关联,垃圾收集的概念,对象共享引用是如何影响多个变量......
  • Python学习手册(第四版)】学习笔记09.3-Python对象类型-分类、引用VS拷贝VS深拷贝、比较
    个人总结难免疏漏,请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。这部分稍杂,视需要选择目录读取。主要讲的是对之前的所有对象类型作复习,以通俗易懂、由浅入深的方式进行介绍,所有对象类型共有的特性(例如,共享引用),引用、拷贝、深拷贝,以及比较、......