######### FUNZIONI COMUNI PER SCRIPT API GIT ######### #scrittura output & log Function WriteLogOutput { Param ($logFile, $logType, [string]$logString) #compongo path per file di log $logPath = Join-Path $logFolder $logFile #scrivo su file la stringa se il tipo di log รจ > o uguale al livello richiesto if ($logType -le $logLevel) { Add-content $logPath -value "$logString" #scrivo su terminale la stringa se $terminalOutput=1 if ($terminalOutput -eq 1) { Write-Output($logString) } } } #creazione nuovo mirror Function FreshMirrorCreation { Param ($projectNumber, $user, $auth, $destination, $path) #compongo url da chiamare per creazione nuovo mirror $callUrlCreateMirror = "https://gitlab.steamware.net/api/v4/projects/" + $projectNumber + "/remote_mirrors" #creo url del nuovo mirror con username e token relativi a gitlab $newMirror = "https://" + $user + ":" + $auth + "@" + $destination + "/" + $path #creo body da convertire in json $body = @{ url = $newMirror enabled = 1 } #converto body in json prima di passarlo alla chiamata POST $jsonBody = ConvertTo-Json -InputObject $body #chiamata api POST che crea mirror con url e body specificati $rebuildResponse = Invoke-WebRequest -Method Post -URI $callUrlCreateMirror -Headers $gitlabHead -ContentType "application/json" -Body $jsonBody -UseBasicParsing #conversione da Json della risposta alla chiamata POST $parsedRebuild = $rebuildResponse.Content | ConvertFrom-Json #rilevo ID e URL nuovo mirror per scriverli nel log foreach ($item in $parsedRebuild) { $mirrorId = $($item.id) $mirrorUrl = $($item.url) } #scrivo ID e URL nuovo mirror WriteLogOutput $logFile 1 "NEW ID: $mirrorId - URL: $mirrorUrl - Mirror creato con successo" }