Ошибка создания конвейера Azure DevOps: “Значение не может быть пустым. Имя параметра: Path”

Вопрос или проблема

Я пытаюсь создать конвейер на основе YAML в Azure DevOps, используя Python SDK (azure-devops), но сталкиваюсь со следующей ошибкой:

azure.devops.exceptions.AzureDevOpsServiceError: Значение не может быть равно null.

Имя параметра: Path

Код:

Вот функция, которую я использую для создания конвейера:

from azure.devops.v7_1.pipelines.models import CreatePipelineParameters, CreatePipelineConfigurationParameters

self.pipeline_name = pipeline_name

pipeline_config_parameters = CreatePipelineConfigurationParameters(type="yaml")



pipeline_parameters = CreatePipelineParameters(

    configuration=pipeline_config_parameters,

    name=self.pipeline_name

)



pipeline_response = self.pipeline_client.create_pipeline(pipeline_parameters, project=project_name)



print(pipeline_response)

Ошибка:

Ошибка возникает во время метода create_pipeline:

azure.devops.exceptions.AzureDevOpsServiceError: Значение не может быть равно null.

Имя параметра: Path

Вопрос:

Как я могу правильно указать путь к YAML-файлу и репозиторию при создании конвейера с использованием Azure DevOps Python SDK?

Я пытался указать путь к YAML в CreatePipelineConfigurationParameters, но параметр пути, похоже, отсутствует в версии SDK, которую я использую.

Я проверил документацию SDK и не смог найти способ указать путь к YAML-файлу и репозиторию в конфигурации конвейера.

Ответ или решение

Чтобы создать конвейер в Azure DevOps с использованием Python SDK, важно правильно указать путь к YAML-файлу и репозиторий, где находится этот файл. Ошибка, которую вы получаете ("Value cannot be null. Parameter name: Path"), указывает на то, что путь к YAML-файлу не был предоставлен или задан неверно.

В вашей реализации вы создаете объект CreatePipelineConfigurationParameters, но не задаете требуемое поле для указания пути к YAML-файлу. Для указания пути и репозитория при создании конвейера вам необходимо создать объект YAMLConfiguration (в зависимости от используемой версии SDK) и передать его в CreatePipelineConfigurationParameters.

Вот обновленный пример кода, который показывает, как правильно задать параметры для создания конвейера:

from azure.devops.v7_1.pipelines.models import CreatePipelineParameters, CreatePipelineConfigurationParameters, YamlPipelineConfiguration

# Задайте имя конвейера и проект
self.pipeline_name = "ИмяВашегоКонвейера"
project_name = "ИмяВашегоПроекта"
repository_id = "ВашIDРепозитория"  # ID или имя репозитория
yaml_file_path = "путь/к/вашему/yaml-файлу.yaml"  # Путь к YAML-файлу в репозитории

# Создаем YAML конфигурацию
yaml_configuration = YamlPipelineConfiguration(
    path=yaml_file_path,
    repository_id=repository_id
)

# Создаем параметр конфигурации конвейера
pipeline_config_parameters = CreatePipelineConfigurationParameters(
    type="yaml",
    yaml=yaml_configuration
)

# Создаем параметры конвейера
pipeline_parameters = CreatePipelineParameters(
    configuration=pipeline_config_parameters,
    name=self.pipeline_name
)

# Создаем конвейер
pipeline_response = self.pipeline_client.create_pipeline(pipeline_parameters, project=project_name)

# Выводим ответ
print(pipeline_response)

Ключевые моменты:

  1. Путь к YAML-файлу: Он должен быть указан как относительный путь в репозитории.
  2. ID репозитория: Убедитесь, что вы правильно указываете ID или имя репозитория.
  3. Тип конфигурации: Убедитесь, что type выставлен на yaml, а также что вы используете правильно настроенные классы конфигурации.

Также убедитесь, что у вас есть необходимые права на чтение репозитория и доступ к ресурсам Azure DevOps.

Если у вас возникли проблемы или дополнительные вопросы, пожалуйста, дайте знать.

Оцените материал
Добавить комментарий

Капча загружается...