コード例 #1
0
def _resolve_repository_as_id(repository, organization, project):
    if is_uuid(repository):
        return repository
    git_client = get_git_client(organization)
    repositories = git_client.get_repositories(project=project, include_links=False, include_all_urls=False)
    for found_repository in repositories:
        if found_repository.name.lower() == repository.lower():
            return found_repository.id
    return None
コード例 #2
0
def task_list(organization=None, task_id=None, detect=None):
    """List tasks.
    :param str task_id: The UUID of the task.
    :type detect: str
    :rtype: [TaskDefinition]
    """
    if task_id is not None and not is_uuid(task_id):
        raise ValueError("The --id argument must be a UUID.")
    organization = resolve_instance(detect=detect, organization=organization)
    client = get_task_agent_client(organization)
    definition_references = client.get_task_definitions(task_id=task_id)
    return definition_references
コード例 #3
0
def task_show(id, version, organization=None, detect=None):  # pylint: disable=redefined-builtin
    """Show task.
    :param str id: The UUID of the task.
    :param str version: The version of the task.
    :rtype: TaskDefinition
    """
    if not is_uuid(id):
        raise ValueError("The --id argument must be a UUID.")
    organization = resolve_instance(detect=detect, organization=organization)
    client = get_task_agent_client(organization)
    definition_references = client.get_task_definition(task_id=id,
                                                       version_string=version)
    return definition_references
コード例 #4
0
def get_definition_id_from_name(name, client, project):
    definition_references = client.get_definitions(project=project, name=name)
    if len(definition_references) == 1:
        return definition_references[0].id
    elif len(definition_references) > 1:
        if is_uuid(project):
            project = definition_references[0].project.name
        message = 'Multiple definitions were found matching name "{name}" in project "{project}".  Try '\
                  + 'supplying the definition ID.'
        raise ValueError(message.format(name=name, project=project))
    else:
        raise ValueError('There were no build definitions matching name "{name}" in project "{project}".'
                         .format(name=name, project=project))
コード例 #5
0
def get_definition_id_from_name(name, client, project, path=None):
    path = fix_path_for_api(path)
    definition_references = client.get_definitions(project=project, name=name, path=path)
    if len(definition_references) == 1:
        return definition_references[0].id
    if len(definition_references) > 1:
        if is_uuid(project):
            project = definition_references[0].project.name
        message = 'Multiple definitions were found matching name "{name}" in project "{project}". Try '\
                  + 'supplying the definition ID or folder path to differentiate.'
        raise ValueError(message.format(name=name, project=project))

    raise ValueError('There were no build definitions matching name "{name}" in project "{project}".'
                     .format(name=name, project=project))
コード例 #6
0
def get_definition_id_from_name(name, client, project):
    definition_references = client.get_release_definitions(
        project=project, search_text=name, is_exact_name_match='true')
    if len(definition_references) == 1:
        return definition_references[0].id
    if len(definition_references) > 1:
        if is_uuid(project):
            project = definition_references[0].project.name
        message = 'Multiple definitions were found matching name "{name}" in project "{project}".  Try '\
                  + 'supplying the definition ID.'
        raise ValueError(message.format(name=name, project=project))

    raise ValueError('There were no release definitions matching name "{name}" in project "{project}".'
                     .format(name=name, project=project))
コード例 #7
0
 def test_is_uuid(self):
     # upper
     self.assertEqual(is_uuid('C9B24FCD-B879-4E79-A3A2-17C3710BEE00'), True)
     # mixed case
     self.assertEqual(is_uuid('c9B24FCD-B879-4E79-A3A2-17C3710BEE00'), True)
     # no dashes
     self.assertEqual(is_uuid('c9B24FCDB8794E79A3A217C3710BEE00'), False)
     # empty string
     self.assertEqual(is_uuid(''), False)
     # invalid digit
     self.assertEqual(is_uuid('C9G24FCD-B879-4E79-A3A2-17C3710BEE00'),
                      False)
     # one less digit
     self.assertEqual(is_uuid('C9G24FCD-B879-4E79-A3A2-17C3710BEE0'), False)
     # one more digit
     self.assertEqual(is_uuid('C9G24FCD-B879-4E79-A3A2-17C3710BEE0'), False)
コード例 #8
0
def task_list(organization=None, task_id=None, detect=None):
    """List tasks.
    :param organization: Azure Devops organization URL. Example: https://dev.azure.com/MyOrganizationName/
    :type organization: str
    :param str task_id: The UUID of the task.
    :param detect: Automatically detect values for instance and project. Default is "on".
    :type detect: str
    :rtype: [TaskDefinition]
    """
    try:
        if task_id is not None and not is_uuid(task_id):
            raise ValueError("The --id argument must be a UUID.")
        organization = resolve_instance(detect=detect,
                                        organization=organization)
        client = get_task_agent_client(organization)
        definition_references = client.get_task_definitions(task_id=task_id)
        return definition_references
    except VstsServiceError as ex:
        raise CLIError(ex)
コード例 #9
0
def task_show(id, version, organization=None, detect=None):  # pylint: disable=redefined-builtin
    """Show task.
    :param str id: The UUID of the task.
    :param str version: The version of the task.
    :param organization: Azure Devops organization URL. Example: https://dev.azure.com/MyOrganizationName/
    :type organization: str
    :param detect: Automatically detect values for instance and project. Default is "on".
    :type detect: str
    :rtype: TaskDefinition
    """
    try:
        if not is_uuid(id):
            raise ValueError("The --id argument must be a UUID.")
        organization = resolve_instance(detect=detect,
                                        organization=organization)
        client = get_task_agent_client(organization)
        definition_references = client.get_task_definition(
            task_id=id, version_string=version)
        return definition_references
    except VstsServiceError as ex:
        raise CLIError(ex)