python - 如何使用azure DevOps python API的文档,我试图在进行API调用时获取对象拥有哪些成员?

标签 python azure azure-devops

我正在使用 Azure DevOps 的 python API,我试图获取每个存储库拥有的存储库和分支的列表。当 API 调用返回对象时,我不知道该对象有哪些成员。我不确定documentation是否完成了,如何知道一个对象有哪些成员?

就像“repo”对象一样,我猜到了“name”属性

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

# Fill in with your personal access token and org URL
personal_access_token = 'YOURPAT'
organization_url = 'https://dev.azure.com/YOURORG'
project_name = "XYZ"

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

# Get a client (the "core" client provides access to projects, teams, etc)
git_client = connection.clients.get_git_client

# Get the first page of projects
get_repos_response = git_client.get_repositories(project_name)

index = 0
for repo in get_repos_response:
  pprint.pprint(str(index) + "." + repo.name)
  index += 1

在上面的代码中,我只是猜测了存储库的 name 属性。我想知道每个存储库都有哪些分支。

TIA

最佳答案

根据这些描述,您希望应用python api来获取Repos列表相应repos的分支列表以及分支的创建者>。对于>>when thebranch was last use,不确定是否表示该分支的最新更新时间。

如果是这样,引用这个source code sample .

  • Get repositories :

    只能根据提供的项目名称获取,所以使用_send将参数传递给客户端:

    route_values = {}
    if project is not None:
        route_values['project'] = self._serialize.url('project', project, 'str')
    query_parameters = {}
    if include_links is not None:
        query_parameters['includeLinks'] = self._serialize.query('include_links', include_links, 'bool')
    if include_all_urls is not None:
        query_parameters['includeAllUrls'] = self._serialize.query('include_all_urls', include_all_urls, 'bool')
    if include_hidden is not None:
        query_parameters['includeHidden'] = self._serialize.query('include_hidden', include_hidden, 'bool')
    response = self._send(http_method='GET',
                          location_id='225f7195-f9c7-4d14-ab28-a83f7ff77e1f',
                          version='6.0-preview.1',
                          route_values=route_values,
                          query_parameters=query_parameters)
    return self._deserialize('[GitRepository]', self._unwrap_collection(response))
    
  • Get branches :

    另外添加repository_idbase_version_descriptor:

    if project is not None:
        route_values['project'] = self._serialize.url('project', project, 'str')
    query_parameters = {}
    if include_links is not None:
        query_parameters['includeLinks'] = self._serialize.query('include_links', include_links, 'bool')
    if include_all_urls is not None:
        query_parameters['includeAllUrls'] = self._serialize.query('include_all_urls', include_all_urls, 'bool')
    if include_hidden is not None:
        query_parameters['includeHidden'] = self._serialize.query('include_hidden', include_hidden, 'bool')
    
  • 分支创建者最新更新时间,这些消息包含在一个指定的分支中,应该通过 getting branch 获取。此时,name是必需的,它代表一个指定的分支名称:

    route_values = {}
    if project is not None:
        route_values['project'] = self._serialize.url('project', project, 'str')
    if repository_id is not None:
        route_values['repositoryId'] = self._serialize.url('repository_id', repository_id, 'str')
    query_parameters = {}
    if name is not None:
        query_parameters['name'] = self._serialize.query('name', name, 'str')
    if base_version_descriptor is not None:
        if base_version_descriptor.version_type is not None:
            query_parameters['baseVersionDescriptor.versionType'] = base_version_descriptor.version_type
        if base_version_descriptor.version is not None:
            query_parameters['baseVersionDescriptor.version'] = base_version_descriptor.version
        if base_version_descriptor.version_options is not None:
            query_parameters['baseVersionDescriptor.versionOptions'] = base_version_descriptor.version_options
    

关于python - 如何使用azure DevOps python API的文档,我试图在进行API调用时获取对象拥有哪些成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59612240/

相关文章:

Python 替换单引号(撇号除外)

python - 是否可以像在 Entry 中一样通过单击来更改 canvas.create_text 中的内容?

azure - 恢复已删除的 Azure Web App Cloud 异常

azure - 如何从 Azure Devops 构建/发布管道执行在 Azure Databricks 笔记本中编写的 ScalaTest 测试用例

python - object() 不带参数

python - 通过 POST 请求返回列表

node.js - 从异步事件函数返回对象持久扩展Azure Function Nodejs

azure - 外键约束 Synapse Azure

azure-devops - AZ Devops Yaml 发布?

azure-devops - DevOps 发布错误 : EPERM operation not permitted