Добавить / удалить конвейерные проверки с помощью REST API - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть требование динамически добавлять / удалять или включать отключение утверждения и проверок в azure Среда конвейера DevOps. Есть ли API для отдыха?

enter image description here

Ответы [ 2 ]

0 голосов
/ 29 апреля 2020

Есть ли API для отдыха?

Да, есть. НО, как сказал @Krysztof, мы не предоставили такие API-документы для публикации c на сегодняшний день. Это потому, что вам нужна одна функция (настройка Check and approval из environments) , которая поддерживает только конвейер YAML, и до сих пор мы разрабатываем, но не публикуем sh соответствующую остальные api (для YAML) документы.

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

Здесь я приведу вам сводку.

API, который использовался для добавления / удаления утверждения и проверка для среды:

https://dev.azure.com/{org name}/{project name}/_apis/pipelines/checks/configurations

Соответствующий метод API для add or delete равен Post и DELETE.


Во-первых, доля Вы образцы тела запроса, которые для approval and check добавил .

1) Добавить утверждение в эту среду:

{
  "type": {
    "id": "8C6F20A7-A545-4486-9777-F762FAFE0D4D", // The fixed value for Approval 
    "name": "Approval"
  },
  "settings": {
    "approvers": [
      {
        "id": "f3c88b9a-b49f-4126-a4fe-3c99ecbf6303" // User Id 
      }
    ],
    "executionOrder": 1, 
    "instructions": "",
    "blockedApprovers": [],
    "minRequiredApprovers": 0,  
    "requesterCannotBeApprover": false // The pipeline requester allow to approve it.
  },
  "resource": {
    "type": "environment",
    "id": "1",           // Environment id
    "name": "Deployment" //Environment name
  },
  "timeout": 43200 // Set the available time(30d) of this approval pending. The measure unit is seconds.
}

2) Добавить проверка задачи , Azure function, Invoke rest api задача и т. Д. c:

{
  "type": {
    "id": "fe1de3ee-a436-41b4-bb20-f6eb4cb879a7", // Fixed value if you want to add task check
    "name": "Task Check" //Fixed value
  },
  "settings": {
    "definitionRef": {
      "id": "537fdb7a-a601-4537-aa70-92645a2b5ce4", //task Id 
      "name": "AzureFunction", //task name
      "version": "1.0.10" //task version
    },
    "displayName": "Invoke Azure Function", //task display name configured
    "inputs": {
      "method": "POST",  
      "waitForCompletion": "false",
      "function": "csdgsdgsa",
      "key": "436467543756"  // These are all task inputs
    },
    "retryInterval": 5, // The re-try time specified.
    "linkedVariableGroup": "AzKeyGroup"// The variable group name this task linked with
  },
  "resource": {
    "type": "environment",
    "id": "2",
    "name": "Development"
  },
  "timeout": 43200
}

В этом теле запроса вы Вы можете найти соответствующий task id из нашего publi c исходного кода . Просто проверьте файл task.json соответствующей задачи.

3) Добавить шаблон проверки :

{
  "type": {
    "id": "4020E66E-B0F3-47E1-BC88-48F3CC59B5F3", // Fixed value for template check added.
    "name": "ExtendsCheck" //Fixed value
  },
  "settings": {
    "extendsChecks": [
      {
        "repositoryType": "git", // github for Github source, bitbucket for Bitbucket source
        "repositoryName": "MonnoPro", 
        "repositoryRef": "refs/heads/master",
        "templatePath": "tem.yml"
      }
    ]
  },
  "resource": {
    "type": "environment",
    "id": "6",
    "name": "development"
  }
}

В этом теле, если источником шаблона является github или bitbucket , значение repositoryName должно быть равно {org name}/{repos name}.

Надеюсь, это поможет.

0 голосов
/ 28 апреля 2020

В данный момент это не поддерживается. Вы можете подать запрос на добавление функции, чтобы показать ваш интерес здесь .

...