TFS 2015 Экспорт коллекции всех исходных кодов проектов - PullRequest
0 голосов
/ 29 мая 2020

Мне нужна помощь в том, как клонировать сразу все проекты в моей коллекции TFS 2015 (обновление 3) (git). Я нашел этот сценарий PowerShell ниже для более новой версии и попытался перейти на версию API с 4.0 на 2.0, но затем выдает ошибку «Вызов метода завершился неудачно, потому что [System.Management.Automation.PSCustomObject] не содержит метода с именем ' ForEach '. "

Возникли проблемы с поиском примера того, как сделать это клонирование в TFS 2015 API или каким-либо другим способом.

$collection = "http://myserver:8080/tfs/DefaultCollection"

$projectsUrl = "$collection/_apis/projects?api-version=4.0"
$projects = Invoke-RestMethod -Uri $projectsUrl -Method Get -UseDefaultCredentials -ContentType application/json

$projects.value.ForEach({

  $reposUrl = "$collectionurl/$($_.name)/_apis/git/repositories?api-version=4.0"
  $repos = Invoke-RestMethod -Uri $reposUrl -Method Get -UseDefaultCredentials -ContentType application/json
  $repos.value.ForEach({
    git clone $_.remoteUrl --branch master --single-branch

  })
})

1 Ответ

0 голосов
/ 30 мая 2020

У меня все заработало. Первая проблема заключалась в том, что мне нужно было установить более новую версию PowerShell.

После этого он просто исправлял несколько проблем в скрипте, вот рабочий скрипт ниже.

$collection = "http://myserver:8080/tfs/DefaultCollection"

$projectsUrl = "$collection/_apis/projects?api-version=2.3-preview"
$projects = Invoke-RestMethod -Uri $projectsUrl -Method Get -UseDefaultCredentials -ContentType application/json -AllowUnencryptedAuthentication

$projects.value.ForEach({

  $reposUrl = "$collection/$($_.name)/_apis/git/repositories?api-version=2.3-preview"
  $repos = Invoke-RestMethod -Uri $reposUrl -Method Get -UseDefaultCredentials -ContentType application/json -AllowUnencryptedAuthentication
  $repos.value.ForEach({
    git clone $_.remoteUrl --branch master --single-branch

  })
})
...