克隆八达通项目

时间:2016-04-12 10:09:01

标签: powershell octopus-deploy

我正在尝试使用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)

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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