Использование клиентской библиотеки AzureDevOps Rest для удаления среды из определения выпуска - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь определить, как удалить среду из определения выпуска, используя клиентскую библиотеку. Есть ли способ удалить среду, не обновляя полностью определение выпуска?

Фрагмент кода ниже иллюстрирует то, что я пытаюсь сделать.

Вызовы UpdateReleaseDefinitionAsync() завершаются неудачно, поскольку объект ReleaseDefinition, возвращаемый из вызова GetReleaseDefinitionsAsync(), не содержит предварительных условий для сред. Я не вижу возможности развернуть эту информацию в моем вызове на GetReleaseDefintionsAsync().

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

Любое руководство будет с благодарностью.

Мой код:

var expandedDefinitions = _releaseClient.GetReleaseDefinitionsAsync(_projectName, _targetReleaseDefinition.Name, expand: ReleaseDefinitionExpands.Environments | ReleaseDefinitionExpands.Artifacts | ReleaseDefinitionExpands.Triggers | ReleaseDefinitionExpands.Variables).Result;
var targetDefinition = expandedDefinitions.Where(d => d.Name == "TheDefinitionIWantToUpdate").First();

var targetEnvironment = targetDefinition.Environments.Where(e => e.Name == "TheEnvironmentIWantToRemove").First();

bool success = targetDefinition.Environments.Remove(targetEnvironment);

_targetReleaseDefinition = _releaseClient.UpdateReleaseDefinitionAsync(targetDefinition, _projectName).Result;

1 Ответ

0 голосов
/ 01 ноября 2018

Есть ли способ удалить среду, не обновляя полностью определение выпуска?

Нет. API-интерфейсы для определений версий работают со всем определением версии Не существует API для манипулирования только одной средой в определении выпуска.

...