2016-04-12 3 views
0

Я пытаюсь клонировать проект осьминога, используя Octopus.Client. Это код, я использую:Клон Octopus Project

$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) 

И это ошибка я получаю

Не удается найти перегрузку «пост» и количеством аргументов: «2».

Это определение метода: после

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

По мере того как он принимает и объектирует, и я не думаю, что вам нужно поставлять что-либо еще дальше, чем то, что вы включили в свой пример, - это должно стоить для нулевого значения для pathParameters. – Fenton

ответ

0

Третий параметр является объектом определения параметров замещения, если первая Параметр - это шаблон URL. Поскольку вы используете полностью сформированный URL-адрес, вы можете передать значение null.

Пример использования подстановки (C#):

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

Если вы используете Visual Studio и попробовать его в C#, он покажет вам документацию в IntelliSense и что третий параметр является необязательным. Думаю, PS не поддерживает эти необязательные параметры.