Отслеживание действий по созданию Azure DevOps - PullRequest
0 голосов
/ 19 сентября 2019

Я настроил несколько конвейеров компоновки DevOps Azure, которые запускаются путем отправки запросов на извлечение в репозиторий GitHub.Всякий раз, когда происходит сборка, я могу перейти на страницу этой сборки и увидеть ее этапы сборки, а также определить, была ли сборка успешной.Как вытащить эту информацию программно?

Ответы [ 2 ]

0 голосов
/ 23 сентября 2019

Чтобы программно извлекать информацию из DevOps Azure, я могу использовать API Python DevOps Azure *1002*.Этот SDK предоставляет несколько клиентов для извлечения различных данных из DevOps Azure.Как подсказал ответ @Levi Lu-MSFT, нужные мне данные могут быть получены из клиента сборки.

Я установил SDK в среде conda с этим YAML:

name: DevOpsData
channels:
  - conda-forge
dependencies:
  - python=3.6
  - pip==19.2.3
  - nb_conda_kernels==2.2.1
  - papermill==1.0.1
  - pandas==0.23.4
  - scikit-learn==0.20.0
  - lightgbm==2.2.1
  - pip:
    - prompt_toolkit==2.0.9
    - azure-cli==2.0.69
    - azure-devops

Я вытащил то, что мне было нужно, используя этот скрипт:

# Copyright (C) Microsoft Corporation. All rights reserved.

from azure.devops.connection import Connection
from msrest.authentication import BasicAuthentication
import pprint
import datetime

if __name__ == "__main__":

    # Fill in with your personal access token and org URL
    personal_access_token = "MY_ACDESS_TOKEN"
    organization_url = "https://dev.azure.com/MY_ORGANIZATION"

    # 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)
    build_client = connection.clients.get_build_client()

    # Get the first page of builds
    project = "MY_PROJECT_NAME"
    get_builds_response = build_client.get_builds(project=project)
    index = 0
    while get_builds_response is not None:
        for build in get_builds_response.value:
            duration = build.finish_time - build.start_time
            seconds = duration.days*(24*60*60)+duration.seconds
            print("[{}]\t{}\t{}\t{}\t{:,} seconds".format(
                index, build.build_number, build.source_branch, build.result,
                seconds
            ))
            index += 1
        if (get_builds_response.continuation_token is not None
            and get_builds_response.continuation_token != ""):
            # Get the next page of builds
            get_builds_response = build_client.get_builds(
                continuation_token=get_builds_response.continuation_token)
        else:
            # All builds have been retrieved
            get_builds_response = None
0 голосов
/ 20 сентября 2019

Вы можете получить определенный статус сборки с помощью restful api

https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}?api-version=5.1

Но я думаю, вы, вероятно, хотите, чтобы значок статуса сборки был добавлен в ваш репозиторий git.

Сначала перейдите на страницу Трубопроводы в Devops Azure, выберите конвейер вашего git-репо.В правом верхнем углу нажмите eclipse и выберите значок состояния enter image description here

Скопируйте образец ссылки на уценку.

enter image description here

Затем перейдите в репозиторий github и вставьте ссылку на скидку с статуса в файл read.me исовершить изменение в вашем репо.Статус сборки будет показан ниже в вашем репозитории github enter image description here

А также вам нужно перейти к Настройки проекта ваших лазурных девопов.Перейдите в Настройки в Конвейеры .Убедитесь, что Разрешить анонимный доступ к значкам флажок под Общие

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...