【问题标题】:C# Vsts ReleaseManagement list approvals & approveC# Vsts ReleaseManagement 列表批准和批准
【发布时间】:2019-10-30 17:55:39
【问题描述】:

我正在尝试创建一个工具来自动启动多个构建管道以及部署管道的过程。 我已经成功构建了管道,但我在部署方面遇到了问题。 我可以获得部署定义和发布,但是使用此代码我只获得待处理的批准,同时我还想获得已经完成的批准和批准/取消 该工具希望加速 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();

希望我说清楚了,谢谢!

【问题讨论】:

    标签: c# azure-pipelines-release-pipeline


    【解决方案1】:

    我找到了解决方案:使用 Deployment api

    var deps = release != null ?
                    await client.GetDeploymentsAsync(
                        Config.Project,
                        definitionId: rd.Id,
                        latestAttemptsOnly: true,
                        top: 1,
                        sourceBranch: Constants.BranchBase + branch)
                    : null;
    

    【讨论】:

    • 很高兴您解决了问题并在此分享解决方案。您可以接受这个答案,因此与您面临同样难题的其他 SO 用户可以直接知道这是一个工作解决方案:-)
    猜你喜欢
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    • 2021-11-18
    • 2022-08-20
    相关资源
    最近更新 更多