我正在尝试使用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)
请帮助澄清第三个参数应该是什么
答案 0 :(得分:1)
如果第一个参数是URL模板,则第三个参数是定义替换参数的对象。由于您使用的是完全格式化的URL,因此可以传入null。
使用替代(C#)的示例:
client.Post(client.RootDocument.Links["Projects"], project, new { clone=originalPrj.Id })
如果您使用Visual Studio并在C#中试用它,它将显示intellisense中的文档,并且第三个参数是可选的。我猜PS不支持这些可选参数。