使用 python 从 Azure devops 上的 workItem 获取 ID
Get ID from workItem on Azure devops using python
我想从 Azure DevOPS 中的多个项目中获取特定工作项的 ID。
我试试下面的代码
from azure.devops.connection import Connection
from azure.devops.v5_1.work_item_tracking.models import Wiql
from msrest.authentication import BasicAuthentication
pat = 'my_PAT'
organization = 'https://dev.azure.com/ORG/PROJ'
credentials = BasicAuthentication('', pat)
connection = Connection(base_url=organization, creds=credentials)
wit_client = connection.clients.get_work_item_tracking_client()
tp_query = Wiql(query="""
SELECT [System.Id] FROM workitems WHERE [System.Title] CONTAINS WORDS 'ESA-2525'
""")
for plan in wit_client.query_by_wiql(tp_query).work_items:
print(f"Results for {plan.id}")
我得到的错误是
回溯(最近调用最后):
文件“C:\Users\P70252\source\repos\Azure_WIKI_PostUpgrades\Azure_WIKI_PostUpgrades\devops.py”,第 15 行,在
中
wit_client = connection.clients.get_work_item_tracking_client()
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\released\client_factory.py”,第 170 行,get_work_item_tracking_client
return self._connection.get_client('azure.devops.released.work_item_tracking.work_item_tracking_client.WorkItemTrackingClient')
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\connection.py”,第 45 行,get_client
self._client_cache[client_type] = self._get_client_instance(client_class)
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\connection.py”,第 58 行,在 _get_client_instance
中
url = self._get_url_for_client_instance(client_class)
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\connection.py”,第 70 行,_get_url_for_client_instance
resource_areas = self._get_resource_areas()
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\connection.py”,第 120 行,_get_resource_areas
self._resource_areas = location_client.get_resource_areas()
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\v5_1\location\location_client.py”,第 107 行,get_resource_areas
query_parameters=query_parameters)
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\client.py”,第 77 行,在 _send
query_parameters=query_parameters)
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\client.py”,第 119 行,_create_request_message
location = self._get_organization_resource_location(location_id)
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\client.py”,第 160 行,_get_organization_resource_location
return self._get_resource_location(self.normalized_url, location_id)
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\client.py”,第 172 行,_get_resource_location
Client._locations_cache[url] = self._get_resource_locations(url, all_host_types=False)
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\client.py”,第 208 行,_get_resource_locations
response = self._send_request(request, headers=headers)
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\client.py”,第 68 行,_send_request
self._handle_error(request, response)
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\client.py”,第 291 行,_handle_error
url=request.url))
azure.devops.exceptions.AzureDevOpsAuthenticationError:请求的资源需要用户认证:https://dev.azure.com/ORG/PROJ/_apis
按任意键继续。 . .
“ESA-2525”是一个虚拟工作项,我将用一个变量替换它,这样我就可以从不同的项目中获取 ID。
连接有效,但 wiql 无效。有什么想法吗?
问题请参考以下代码
1.package
azure-devops==6.0.0b4
创建完全访问个人访问令牌
代码
pat = '<token>'
organization = 'https://dev.azure.com/jim0375'
credentials = BasicAuthentication('', pat)
connection = Connection(base_url=organization, creds=credentials)
wit_client = connection.clients.get_work_item_tracking_client()
tp_query = Wiql(
query="SELECT [System.Id] FROM WorkItems WHERE [System.Title] CONTAINS WORDS 'test'")
for plan in wit_client.query_by_wiql(tp_query).work_items:
print(f"Results for {plan.id}")
我想从 Azure DevOPS 中的多个项目中获取特定工作项的 ID。
我试试下面的代码
from azure.devops.connection import Connection
from azure.devops.v5_1.work_item_tracking.models import Wiql
from msrest.authentication import BasicAuthentication
pat = 'my_PAT'
organization = 'https://dev.azure.com/ORG/PROJ'
credentials = BasicAuthentication('', pat)
connection = Connection(base_url=organization, creds=credentials)
wit_client = connection.clients.get_work_item_tracking_client()
tp_query = Wiql(query="""
SELECT [System.Id] FROM workitems WHERE [System.Title] CONTAINS WORDS 'ESA-2525'
""")
for plan in wit_client.query_by_wiql(tp_query).work_items:
print(f"Results for {plan.id}")
我得到的错误是 回溯(最近调用最后):
文件“C:\Users\P70252\source\repos\Azure_WIKI_PostUpgrades\Azure_WIKI_PostUpgrades\devops.py”,第 15 行,在
中wit_client = connection.clients.get_work_item_tracking_client()
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\released\client_factory.py”,第 170 行,get_work_item_tracking_client
return self._connection.get_client('azure.devops.released.work_item_tracking.work_item_tracking_client.WorkItemTrackingClient')
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\connection.py”,第 45 行,get_client
self._client_cache[client_type] = self._get_client_instance(client_class)
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\connection.py”,第 58 行,在 _get_client_instance
中url = self._get_url_for_client_instance(client_class)
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\connection.py”,第 70 行,_get_url_for_client_instance
resource_areas = self._get_resource_areas()
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\connection.py”,第 120 行,_get_resource_areas
self._resource_areas = location_client.get_resource_areas()
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\v5_1\location\location_client.py”,第 107 行,get_resource_areas
query_parameters=query_parameters)
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\client.py”,第 77 行,在 _send
query_parameters=query_parameters)
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\client.py”,第 119 行,_create_request_message
location = self._get_organization_resource_location(location_id)
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\client.py”,第 160 行,_get_organization_resource_location
return self._get_resource_location(self.normalized_url, location_id)
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\client.py”,第 172 行,_get_resource_location
Client._locations_cache[url] = self._get_resource_locations(url, all_host_types=False)
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\client.py”,第 208 行,_get_resource_locations
response = self._send_request(request, headers=headers)
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\client.py”,第 68 行,_send_request
self._handle_error(request, response)
文件“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\azure\devops\client.py”,第 291 行,_handle_error
url=request.url))
azure.devops.exceptions.AzureDevOpsAuthenticationError:请求的资源需要用户认证:https://dev.azure.com/ORG/PROJ/_apis
按任意键继续。 . .
“ESA-2525”是一个虚拟工作项,我将用一个变量替换它,这样我就可以从不同的项目中获取 ID。
连接有效,但 wiql 无效。有什么想法吗?
问题请参考以下代码
1.package
azure-devops==6.0.0b4
创建完全访问个人访问令牌
代码
pat = '<token>'
organization = 'https://dev.azure.com/jim0375'
credentials = BasicAuthentication('', pat)
connection = Connection(base_url=organization, creds=credentials)
wit_client = connection.clients.get_work_item_tracking_client()
tp_query = Wiql(
query="SELECT [System.Id] FROM WorkItems WHERE [System.Title] CONTAINS WORDS 'test'")
for plan in wit_client.query_by_wiql(tp_query).work_items:
print(f"Results for {plan.id}")