Как автоматически создавать резервные копии Azure DevOps Boards для восстановления на определенный момент времени?

Служба Azure DevOps не имеет готовой к использованию функция для поддержки резервного копирования / восстановления на определенный момент времени для плат Azure. Поэтому мне интересно, как это сделать через API?

Я открыт для любого варианта, который может быть автоматически запланирован. Например, по расписанию (конвейер) создайте и сохраните резервную копию, которая потенциально может быть использована для выполнения вручную инициируемого восстановления в будущем.

Хотя пользовательский интерфейс поддерживает экспорт / импорт данных рабочего элемента в / из CSV, мне не удалось найти соответствующий API.


person successhawk    schedule 09.11.2020    source источник


Ответы (1)


Основываясь на вашем описании, я дополнительно проверил эту проблему. В настоящее время нет REST API для импорта рабочих элементов из файла .CSV. Пожалуйста, проверьте это голос пользователя, а затем вы можете напрямую проголосовать и добавить к нему комментарии.

Чтобы решить эту проблему, выполните следующие действия:

  1. Задача PowerShell для вызова REST API, чтобы получить результаты простого запроса рабочего элемента, мы можем получить все идентификаторы рабочих элементов из ответа тело.

  2. Используйте идентификатор рабочего элемента для вызова REST API, а затем получить подробную информацию о рабочих элементах.

  3. Сохраните тело ответа с подробностями рабочего элемента, полученными пакетным способом, в файл json, а затем используйте задачу Опубликовать артефакты конвейера, чтобы опубликовать этот файл в Artifact для достижения цели резервного копирования.

  4. Используйте задачу Загрузить артефакты конвейера для загрузки файлов артефактов.

  5. Используйте задачу PowerShell для вызова REST API ниже для достижения цели восстановления.

Например:

PATCH https://{organization}.visualstudio.com/_apis/wit/$batch?api-version=4.1

Тело:

[{
        
        "method": "PATCH",
        
        "uri": "/{project}/_apis/wit/workitems/${work item type}?api-version=4.1",
        "headers": {
            "Content-Type": "application/json-patch+json"
        },
        "body": [{
                "op": "add",
                "path": "/id",
                "value": "-1"
            },
            {
                "op": "add",
                "path": "/fields/System.Title",
                "from": null,
                "value": "Sample 1"
            }
        ]
    },
    {
        "method": "PATCH",
        "uri": "/{project}/_apis/wit/workitems/${work item type}?api-version=4.1",
        "headers": {
            "Content-Type": "application/json-patch+json"
        },
        "body": [{
                "op": "add",
                "path": "/id",
                "value": "-2"
            },
            {
                "op": "add",
                "path": "/fields/System.Title",
                "from": null,
                "value": "Sample 2"
            }
        ]
    }]

Чтобы настроить запланированное триггер для конвейера, выполните следующие действия:

  1. Перейдите на вкладку Триггеры, нажмите кнопку Добавить под надписью «Запланировано», чтобы добавить расписание.

  2. Выберите дни и время, когда вы хотите запустить сборку. введите описание изображения здесь

person Alina Wang-MSFT    schedule 10.11.2020
comment
Спасибо за подробный ответ. Проголосовал по uservoice. Мне нравится вариант артефакта конвейера, но другой альтернативой было бы сохранение в репозитории git (может быть полезно различать). - person successhawk; 10.11.2020
comment
Я также добавил новый запрос функции и отредактировал свой вопрос, чтобы связать с ним: developercommunity.visualstudio.com/idea/1249654/. - person successhawk; 10.11.2020