首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >章鱼客户端,从C#中的项目名称中获取版本

章鱼客户端,从C#中的项目名称中获取版本
EN

Stack Overflow用户
提问于 2016-06-29 11:51:07
回答 2查看 1.9K关注 0票数 1

首先,我是全新的章鱼客户端,使用它是第一次就在发布之前。

因此,我已经完成了这个项目,以更新网页上的版本号,监控我们部署的一些章鱼项目。我一直在寻找章鱼的客户,但没有得到真正的任何地方。到目前为止,我所掌握的最好的是:

代码语言:javascript
运行
复制
OctopusServerEndpoint endPoint = new OctopusServerEndpoint(server, apiKey);
OctopusRepository repo = new OctopusRepository(endPoint);
var releases = repo.Releases.FindAll();

从这些版本中我可以得到ProjectId,甚至Version,问题是releases是600强,我只需要其中的15个。

我必须使用的现有代码用来解析本地文件中的版本,所以这一切都在窗口之外。另外,现有代码只处理项目的实际名称,比如"AWOBridge",而不是它们的ProjectId,即" projects -27“。

现在,我唯一的选择是手动编写一个keyList或映射,将我所拥有的名称与octopus客户机中的it关联起来,当然我不这么认为,因为在我看来,它不是非常可扩展或良好的代码实践。

因此,如果有人知道如何直接与octopus客户端一起使用这些名称,并从中获得版本号,我将非常仔细地研究它。

我等着去找章鱼客户。让我来看看我是不是比你快!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-01 07:07:20

我想我比你快!

如果有人有同样的问题,我会在这里留下一个答案。

最后,我使用了dashboard来获得我需要的东西:

代码语言:javascript
运行
复制
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);

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

希望这对将来的人有帮助!

票数 6
EN

Stack Overflow用户

发布于 2019-02-07 11:34:28

我正在使用LINQPad来运行C#片段,以便使用Octopus客户端库实现章鱼自动化,并且我已经想出了以下方法来获得使用正则表达式模式的项目的任何版本。如果使用预释放语义版本控制,它会运行得很好。

例如,要获得项目的最新版本:

代码语言:javascript
运行
复制
var project = Repo.Projects.FindByName("MyProjectName");
var release = GetReleaseForProject(project);

要获得特定的发行版,请使用版本中包含“rc1”的版本(如果在发布给八达通的版本中使用源代码分支名称,也很有用:

代码语言:javascript
运行
复制
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();;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38098719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档