C# Vsts ReleaseManagement 列出批准和批准
C# Vsts ReleaseManagement list approvals & approve
我正在尝试创建一个工具来自动启动多个构建管道以及部署管道的过程。
我在构建管道方面取得了成功,但在部署方面遇到了问题。
我可以获得部署定义和发布,但是使用此代码 我只获得待定批准 ,同时我还想获得已经完成的批准和 approve/cancel
这个工具想要加速 devops 过程,因为我们从网站触发构建和部署(我们批准和部署每个管道,我们得到了很多)
var client = Connection.GetClient<ReleaseHttpClient2>();
var releaseDefs = await client.GetReleaseDefinitionsAsync2(Config.Project);
var ret = new List<ReleasePipelineModel>();
foreach(var rd in releaseDefs)
{
var releases = await client.GetReleasesAsync2(
Config.Project,
definitionId: rd.Id,
top: 1,
sourceBranchFilter: Constants.BranchBase + branch
);
var release = releases.FirstOrDefault();
var stages = release != null ?
await client.GetApprovalsAsync2(
Config.Project,
releaseIdsFilter: new[] { release.Id }
)
: null;
ret.Add(new ReleasePipelineModel(rd)
{
LastRelease = release,
Stage = stages?.FirstOrDefault()
});
}
return ret.OrderBy(r => r.Name).ToList();
希望我说清楚了,谢谢!
我找到了解决方案:使用部署 api
var deps = release != null ?
await client.GetDeploymentsAsync(
Config.Project,
definitionId: rd.Id,
latestAttemptsOnly: true,
top: 1,
sourceBranch: Constants.BranchBase + branch)
: null;
我正在尝试创建一个工具来自动启动多个构建管道以及部署管道的过程。 我在构建管道方面取得了成功,但在部署方面遇到了问题。 我可以获得部署定义和发布,但是使用此代码 我只获得待定批准 ,同时我还想获得已经完成的批准和 approve/cancel 这个工具想要加速 devops 过程,因为我们从网站触发构建和部署(我们批准和部署每个管道,我们得到了很多)
var client = Connection.GetClient<ReleaseHttpClient2>();
var releaseDefs = await client.GetReleaseDefinitionsAsync2(Config.Project);
var ret = new List<ReleasePipelineModel>();
foreach(var rd in releaseDefs)
{
var releases = await client.GetReleasesAsync2(
Config.Project,
definitionId: rd.Id,
top: 1,
sourceBranchFilter: Constants.BranchBase + branch
);
var release = releases.FirstOrDefault();
var stages = release != null ?
await client.GetApprovalsAsync2(
Config.Project,
releaseIdsFilter: new[] { release.Id }
)
: null;
ret.Add(new ReleasePipelineModel(rd)
{
LastRelease = release,
Stage = stages?.FirstOrDefault()
});
}
return ret.OrderBy(r => r.Name).ToList();
希望我说清楚了,谢谢!
我找到了解决方案:使用部署 api
var deps = release != null ?
await client.GetDeploymentsAsync(
Config.Project,
definitionId: rd.Id,
latestAttemptsOnly: true,
top: 1,
sourceBranch: Constants.BranchBase + branch)
: null;