Adding GH Valet CLI support (#1)

* Update readme.md

* Update readme.md

* Update valet-audit-lab.md

* Delete valet

* Delete valet-update

* Update devcontainer.json

* Update valet-audit-lab.md

* Update valet-dry-run-lab.md

* Update valet-migrate-custom-lab.md

* Update valet-migrate-lab.md

* Update valet-migrate-lab.md

* Update valet-audit-lab.md

* Update valet-dry-run-lab.md

* Update valet-migrate-custom-lab.md

* Update .env.local

* Update valet-migrate-lab.md

* Update valet-audit-lab.md

* Update valet-dry-run-lab.md

* Update valet-migrate-lab.md

* Update valet-migrate-custom-lab.md

* Update devcontainer.json

* Update devcontainer.json

* Create setenvars.sh

* Update readme.md

* Update readme.md

* Update valet-audit-lab.md

* Update valet-dry-run-lab.md

* Update valet-migrate-lab.md

* Update valet-migrate-custom-lab.md

* Update and rename setenvars.sh to setupcodespace.sh

* Update devcontainer.json

* Update azure_devops/readme.md

Co-authored-by: Ethan Dennis <[email protected]>

* Update readme.md

* Update azure_devops/readme.md

Co-authored-by: Ethan Dennis <[email protected]>

* Update azure_devops/valet-audit-lab.md

Co-authored-by: Ethan Dennis <[email protected]>

* Update azure_devops/valet-audit-lab.md

Co-authored-by: Ethan Dennis <[email protected]>

* Update azure_devops/valet-dry-run-lab.md

Co-authored-by: Ethan Dennis <[email protected]>

* Update azure_devops/valet-dry-run-lab.md

Co-authored-by: Ethan Dennis <[email protected]>

* Update azure_devops/valet-dry-run-lab.md

Co-authored-by: Ethan Dennis <[email protected]>

* Update azure_devops/valet-migrate-custom-lab.md

Co-authored-by: Ethan Dennis <[email protected]>

* Update azure_devops/valet-dry-run-lab.md

Co-authored-by: Ethan Dennis <[email protected]>

* Update readme.md

* Update readme.md

* Update devcontainer.json

* Update devcontainer.json

* Update readme.md

* Update devcontainer.json

* Update readme.md

* Update valetbsazdo.yml

* Create .gitignore

* Update readme.md

* Update readme.md

* Update azDevOps.ps1

* Delete updateEnvs.ps1

* Update devcontainer.json

* Update readme.md

* Update azure_devops/valet-audit-lab.md

Co-authored-by: David Hathaway <[email protected]>

* Update azure_devops/valet-audit-lab.md

Co-authored-by: David Hathaway <[email protected]>

* Update valet-audit-lab.md

* Update valet-dry-run-lab.md

* Update azure_devops/valet-dry-run-lab.md

Co-authored-by: David Hathaway <[email protected]>

* Update azure_devops/valet-migrate-lab.md

Co-authored-by: David Hathaway <[email protected]>

* Update valet-dry-run-lab.md

* Update readme.md

* Update readme.md

* Update setupcodespace.sh

* Rename .env.local to .env.local.template

* Update .gitignore

Co-authored-by: Ethan Dennis <[email protected]>
Co-authored-by: David Hathaway <[email protected]>
This commit is contained in:
dkalmin
2022-05-25 10:57:51 -07:00
committed by GitHub
co-authored by Ethan Dennis David Hathaway
parent 54108c642b
commit 03753a327f
14 changed files with 681 additions and 193 deletions
+87 -19
View File
@@ -46,11 +46,31 @@ $projectToCreate = @{
}
}
$projectResponse = Invoke-RestMethod -Method 'Post' -Uri $createtUrlToUse -Headers @{"Authorization"="Basic $BasicCreds"} -Body ($projectToCreate|ConvertTo-Json) -ContentType "application/json"
$projectResponse | ConvertTo-Json
try{
$projectResponse = Invoke-RestMethod -Method 'Post' -Uri $createtUrlToUse -Headers @{"Authorization"="Basic $BasicCreds"} -Body ($projectToCreate|ConvertTo-Json) -ContentType "application/json"
$projectResponse | ConvertTo-Json
Start-Sleep -s 5
Write-Host "Yes! Project $project was created!"
Start-Sleep -s 5
Write-Host "Yes! Project $project was created!"
} Catch {
Write-Host " "
Write-Host "##########################################################################"
Write-Host "ERROR during project creation: $project"
Write-Host "The API call was: $createtUrlToUse"
Write-Host " "
if($_.ErrorDetails.Message) {
Write-Host "See error message below:"
Write-Host $_.ErrorDetails.Message
} else {
Write-Host $_
Write-Host "It is likely that the AZURE_DEVOPS_ACCESS_TOKEN is not set correctly in the worflow OR does not have sufficent permissions"
}
Write-Host " "
Write-Host "##########################################################################"
throw "Exiting. The Project $project was NOT created in Azure DevOps"
}
##########################################################################
# IMPORT THE REPO
@@ -82,15 +102,15 @@ $addTextFile = @{
$daFullName = $codeFile.FullName
$codeBody = (Get-Content "$daFullName" -Raw)
#Write-Host "codeBody: $codeBody"
Write-Host "folder: $folder"
#Write-Host "folder: $folder"
$relath = $daFullName | Resolve-Path -Relative
Write-Host "relath: $relath"
#Write-Host "relath: $relath"
$replaceSlash = $folder.Replace("/", "\")
$repoPath = $relath.Substring($relath.lastIndexOf($replaceSlash) + $replaceSlash.Length)
$wholeRepoPath = Join-Path -Path $itemPath -ChildPath $repoPath
$wholeRepoPath = $wholeRepoPath.Replace("\", "/")
Write-Host "wholeRepoPath: $wholeRepoPath"
Write-Host "repoPath: $repoPath"
#Write-Host "wholeRepoPath: $wholeRepoPath"
#Write-Host "repoPath: $repoPath"
@{
"changeType"= "add"
"item"= @{
@@ -108,13 +128,28 @@ $addTextFile = @{
)
}
try{
$repoUrlToUse = [string]::Format("https://dev.azure.com/{0}/{2}/_apis/git/repositories/{1}/pushes?api-version=7.1-preview.2", $orgToUse, $repoName, $project)
$pushResponse = Invoke-RestMethod -Method 'Post' -Uri $repoUrlToUse -Headers @{"Authorization"="Basic $BasicCreds"} -Body ($addTextFile|ConvertTo-Json -Depth 5) -ContentType "application/json"
$repoIds = $pushResponse.repository.id
Write-Host "Yes! Repo Was was created! The repoId is $repoIds"
} Catch {
Write-Host " "
Write-Host "##########################################################################"
Write-Host "ERROR during Repo creation:"
Write-Host "The API call was: $repoUrlToUse"
Write-Host " "
$repoUrlToUse = [string]::Format("https://dev.azure.com/{0}/{2}/_apis/git/repositories/{1}/pushes?api-version=7.1-preview.2", $orgToUse, $repoName, $project)
$pushResponse = Invoke-RestMethod -Method 'Post' -Uri $repoUrlToUse -Headers @{"Authorization"="Basic $BasicCreds"} -Body ($addTextFile|ConvertTo-Json -Depth 5) -ContentType "application/json"
$repoIds = $pushResponse.repository.id
Write-Host "Yes! Repo Was was created!"
Write-Host "Yes! Repo was imported into $repoIds"
if($_.ErrorDetails.Message) {
Write-Host "See error message below:"
Write-Host $_.ErrorDetails.Message
} else {
Write-Host $_
}
Write-Host " "
Write-Host "##########################################################################"
throw "Exiting. The Repo was NOT created. It is likely the Project was created in Azure DevOps."
}
##########################################################################
##########################################################################
@@ -141,10 +176,26 @@ foreach ($f in $files)
}
}
}
#$pipelineCreateBody | ConvertTo-Json
try{
$repoResponse = Invoke-RestMethod -Method 'Post' -Uri $plUrlToUse -Headers @{"Authorization"="Basic $BasicCreds"} -Body ($pipelineCreateBody|ConvertTo-Json) -ContentType "application/json"
} Catch {
Write-Host " "
Write-Host "##########################################################################"
Write-Host "ERROR during Pipeline creation:"
Write-Host "The API call was: $plUrlToUse"
Write-Host " "
$repoResponse = Invoke-RestMethod -Method 'Post' -Uri $plUrlToUse -Headers @{"Authorization"="Basic $BasicCreds"} -Body ($pipelineCreateBody|ConvertTo-Json) -ContentType "application/json"
$repoResponse | ConvertTo-Json
if($_.ErrorDetails.Message) {
Write-Host "See error message below:"
Write-Host $_.ErrorDetails.Message
} else {
Write-Host $_
}
Write-Host " "
Write-Host "The Pipeline $nameOfPl was NOT created."
Write-Host "##########################################################################"
}
}
##########################################################################
@@ -161,7 +212,24 @@ foreach ($f in $files)
$pclassicreateBody = (Get-Content ./$pipelinesRoot/classic/$fileName).Replace("REPOTOREPLACE", "$repoName")
$repo2Response = Invoke-RestMethod -Method 'Post' -Uri $classicUrlToUse -Headers @{"Authorization"="Basic $BasicCreds"} -Body ($pclassicreateBody) -ContentType "application/json"
$repo2Response | ConvertTo-Json
try{
Invoke-RestMethod -Method 'Post' -Uri $classicUrlToUse -Headers @{"Authorization"="Basic $BasicCreds"} -Body ($pclassicreateBody) -ContentType "application/json"
} Catch {
Write-Host " "
Write-Host "##########################################################################"
Write-Host "ERROR during Pipeline creation:"
Write-Host "The API call was: $classicUrlToUse"
Write-Host " "
if($_.ErrorDetails.Message) {
Write-Host "See error message below:"
Write-Host $_.ErrorDetails.Message
} else {
Write-Host $_
}
Write-Host " "
Write-Host "The Pipeline $nameOfPl was NOT created."
Write-Host "##########################################################################"
}
}
Write-Host "End Valet Bootstrap"
-21
View File
@@ -1,21 +0,0 @@
param (
[String]$proj = "ValetBootstrapper",
[String]$org = "microsoft-bootcamp",
[String]$ghPAT = "dkalmintest",
[String]$azdoPAT = "[email protected]"
)
[String]$azdoProject = "AZURE_DEVOPS_PROJECT="
[String]$azdoOrg = "AZURE_DEVOPS_ORGANIZATION="
[String]$azdoInstance = "AZURE_DEVOPS_INSTANCE_URL="
[String]$ghAccess = "GITHUB_ACCESS_TOKEN="
[String]$azdoAccess = "AZURE_DEVOPS_ACCESS_TOKEN="
$updateEnvs = (Get-Content ./valet/.env.local)
$updateEnvs = $updateEnvs.Replace("$azdoProject", "AZURE_DEVOPS_PROJECT=$proj")
$updateEnvs = $updateEnvs.Replace("$azdoOrg", "AZURE_DEVOPS_ORGANIZATION=$org")
$updateEnvs = $updateEnvs.Replace("$azdoInstance", "AZURE_DEVOPS_INSTANCE_URL=https://dev.azure.com/$org")
$updateEnvs = $updateEnvs.Replace("$ghAccess", "GITHUB_ACCESS_TOKEN=$ghPAT")
$updateEnvs = $updateEnvs.Replace("$azdoAccess", "AZURE_DEVOPS_ACCESS_TOKEN=$azdoPAT")
Set-Content -Path ./valet/.env.local -Value $updateEnvs