八达通客户端,在C#中的项目名称越来越版本

问题描述 投票:1回答:2

首先,我完全新的章鱼客户端,只张贴此之前使用它的第一次。

所以,我已经登陆这个项目,更新监视我们的一些章鱼部署项目的网页上的版本号。我一直在寻找周围的章鱼客户端和任何地方没有真正得到。我至今最好的是:

OctopusServerEndpoint endPoint = new OctopusServerEndpoint(server, apiKey);
OctopusRepository repo = new OctopusRepository(endPoint);
var releases = repo.Releases.FindAll();

从这些版本我可以得到ProjectId甚至Version,问题是,releases是600强的,我只是在寻找他们的15。

现有的代码,我必须工作,从用来解析从本地文件的版本,以便为所有窗外。此外,现有的代码只与项目的实际名称的交易,如“AWOBridge”,而不是他们ProjectId,这是“项目-27”。

现在我唯一的选择就是手动编写了一个列表,或映射到相关我有在章鱼客户端ID的名字,我当然不想,因为它不是在我看来很扩展或好的代码的做法。

因此,如果任何人有关于如何直接与章鱼客户端使用的名称,并从我非常它并欣赏得到的版本号的任何想法。

我会得到分解成章鱼客户在等待。让我们来看看,如果我打你吧!

c# client octopus-deploy
2个回答
4
投票

猜猜我打败你吧!

我就离开了这里的答案,如果有谁有同样的问题。

我结束了使用dashboardto得到我需要的东西:

OctopusServerEndpoint endPoint = new OctopusServerEndpoint(server, apiKey);
OctopusRepository repo = new OctopusRepository(endPoint);
DashboardResource dash = repo.Dashboards.GetDashboard();
List<DashboardItemResource> items = dash.Items;
DashboardItemResource item = new DashboardItemResource();
List<DashboardProjectResource> projs = dash.Projects;
var projID = projs.Find(x => x.Name == projectName).Id;
item = items.Find(x => x.ProjectId == projID && x.IsCurrent == true);

仪表板是伟大的,因为它包含了网络仪表盘显示的所有信息。所以,你可以使用项目,发布,部署和环境与它们包含的所有信息。

希望这可以帮助别人的未来!


0
投票

我使用LINQPad运行使用八达通客户端库八达通自动化C#代码片段,我想出了下面进入一个项目,利用正则表达式模式中的任何版本。它的工作原理相当不错,如果你使用Pre-release语义版本。

例如,要得到一个项目最新版本:

var project = Repo.Projects.FindByName("MyProjectName");
var release = GetReleaseForProject(project);

为了让已在版本,例如(如果你在发布到八达通的版本中使用的源代码分支名称也有用“RC1”具体发布使用:

var release = GetReleaseForProject(project, "rc1");

public ReleaseResource GetReleaseForProject(ProjectResource project, string versionPattern = "")
{
    // create compiled regex expression to use for search
    var regex = new Regex(versionPattern, RegexOptions.Compiled | RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
    var releases = Repo.Projects.GetReleases(project);
    if (!string.IsNullOrWhiteSpace(versionPattern) && !releases.Items.Any(r => regex.IsMatch(r.Version)))
    {
        return null;
    }
    return (!string.IsNullOrWhiteSpace(versionPattern)) ? releases.Items.Where(r => regex.IsMatch(r.Version))?.First() : releases.Items?.First();;
}
© www.soinside.com 2019 - 2024. All rights reserved.