【问题标题】:Clone Octopus Project克隆八达通项目
【发布时间】:2016-05-20 06:48:37
【问题描述】:

我正在尝试使用 Octopus.Client 克隆一个章鱼项目。这是我正在使用的代码:

$OctopusURI = "http://localhost:8080"
$apikey = "API-SO7PMXWLYU6RPCUKMWK22GBKYQ"

$endpoint = new-object -TypeName Octopus.Client.OctopusClient(New-Object Octopus.Client.OctopusServerEndpoint($OctopusURI,$apikey))

$repository = new-object Octopus.Client.OctopusRepository $endpoint

$newproject = New-Object Octopus.Client.Model.ProjectResource

$OriginalProject = $repository.Projects.FindByName($projectToClone);

Write-Output $OriginalProject

$properties = [ordered]@{
    Name = $Project_Name
    Description = $Project_Description
    ProjectGroupId = $OriginalProject.ProjectGroupId
    LifecycleId = $OriginalProject.LifecycleId
}

$newproject = New-Object Octopus.Client.Model.ProjectResource -Property $properties

$endpoint.post("~/api/projects?clone=" + $OriginalProject.Id, $newproject)

这是我遇到的错误

找不到“post”的重载和参数计数:“2”。

这是方法的定义:post

void Post[TResource](string path, TResource resource, System.Object pathParameters) 
TResponse Post[TResource, TResponse](string path, TResource resource, System.Object pathParameters) 
void Post(string path), void  IOctopusClient.Post[TResource](string path, TResource resource, System.Object pathParameters) 
TResponse IOctopusClient.Post[TResource, TResponse](string path, TResource  resource, System.Object pathParameters), 
void IOctopusClient.Post(string path)

请帮助澄清第三个参数应该是什么

【问题讨论】:

  • 正如它所需要的那样,我认为您不需要提供比示例中包含的更多内容 - 必须值得为 pathParameters 提供空值。

标签: powershell octopus-deploy


【解决方案1】:

如果第一个参数是 URL 模板,则第三个参数是定义替换参数的对象。由于您使用的是完全格式的 URL,因此您可以传入 null。

使用替换的示例(C#):

client.Post(client.RootDocument.Links["Projects"], project, new { clone=originalPrj.Id })

如果您使用 Visual Studio 并在 C# 中试用,它将显示智能感知中的文档,并且第三个参数是可选的。我猜 PS 不支持那些可选参数。

【讨论】:

    猜你喜欢
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2015-08-04
    • 2016-11-30
    • 2021-06-29
    • 1970-01-01
    相关资源
    最近更新 更多