我正在使用 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 .
-
只能根据提供的项目名称获取,所以使用
_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))
-
另外添加
repository_id
和base_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/