Azure SDK for .NET是否有属性判断Azure DevOps流水线类型(经典/YAML)?
判断Azure DevOps流水线类型(经典/YAML)的Azure SDK for .NET属性
是的,借助Azure SDK for .NET里的BuildDefinition类(归属Microsoft.TeamFoundation.Build.WebApi命名空间),可以通过以下属性判断流水线的配置类型:
Process.Type:这是最直接的判断依据,对应ProcessType枚举:- 枚举值
ProcessType.Classic(数值为1):代表经典流水线 - 枚举值
ProcessType.Yaml(数值为2):代表YAML流水线
- 枚举值
- 辅助验证属性(可选,用于交叉确认):
YamlFilename:仅YAML流水线会填充该属性,存储对应的YAML文件路径;经典流水线此属性为null或空字符串Process.ProcessParameters:经典流水线会包含结构化的流程参数JSON,YAML流水线该字段通常为空或仅含基础配置
代码示例
using Microsoft.TeamFoundation.Build.WebApi; using Microsoft.VisualStudio.Services.WebApi; // 初始化Azure DevOps连接 var connection = new VssConnection(new Uri("https://dev.azure.com/你的组织名"), new VssBasicCredential(string.Empty, "你的个人访问令牌")); var buildClient = connection.GetClient<BuildHttpClient>(); // 获取指定流水线定义 var buildDefinition = await buildClient.GetDefinitionAsync("你的项目名", definitionId: 123); // 判断流水线类型 if (buildDefinition.Process.Type == ProcessType.Yaml) { Console.WriteLine("这是YAML配置的流水线"); Console.WriteLine($"关联YAML文件路径:{buildDefinition.YamlFilename}"); } else if (buildDefinition.Process.Type == ProcessType.Classic) { Console.WriteLine("这是经典架构的流水线"); }
注意:请确保使用最新版本的Microsoft.TeamFoundationServer.Client NuGet包,旧版本的属性或枚举可能存在差异。
内容的提问来源于stack exchange,提问作者Mudit Balooja
相关产品推荐
相关产品推荐

