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
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
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
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))
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))
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))
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)
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)
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)