diff --git a/ApiGit/CheckGitlabProtectedBranches.ps1 b/ApiGit/CheckGitlabProtectedBranches.ps1 index 9c723ca..033d07c 100644 --- a/ApiGit/CheckGitlabProtectedBranches.ps1 +++ b/ApiGit/CheckGitlabProtectedBranches.ps1 @@ -15,7 +15,7 @@ $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while $projectCount = 1 #numero massimo di progetti da analizzare -$projectNumber = 300 +$projectNumber = 400 #conteggio progetti trovati $existingProjects = 0 #conteggio progetti trovati @@ -26,10 +26,10 @@ $deleteProtection = 1 $logFile = "GitlabProtectedBranches.log" #specifica quale installazione di gitlab va controllata -#$gitlabIstance = $destinationNembro -#$head = $nembroHead -$gitlabIstance = $destinationAzzano -$head = $azzanoHead +$gitlabIstance = $destinationNembro +$head = $nembroHead +#$gitlabIstance = $destinationAzzano +#$head = $azzanoHead #creazione folder di Log se non già esistente if (Test-Path $logFolder) { @@ -50,6 +50,8 @@ WriteLogOutput $logFile 0 "" WriteLogOutput $logFile 0 "Percorso log: $logFolder" WriteLogOutput $logFile 0 "" WriteLogOutput $logFile 0 "Inizio Esecuzione Script: $startTime" +WriteLogOutput $logFile 0 "" +WriteLogOutput $logFile 0 "Gitlab di Destinazione: $gitlabIstance" #ciclo principale do/while che cicla da 1 a N projectNumber do { diff --git a/ApiGit/GitlabCreateDevelopBranch.ps1 b/ApiGit/GitlabCreateDevelopBranch.ps1 index 19642a0..99aa00c 100644 --- a/ApiGit/GitlabCreateDevelopBranch.ps1 +++ b/ApiGit/GitlabCreateDevelopBranch.ps1 @@ -15,7 +15,7 @@ $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while $projectCount = 1 #numero massimo di progetti da analizzare -$projectNumber = 200 +$projectNumber = 300 #nome file di log $logFile = "GitlabDevelopCreation.log" diff --git a/ApiGit/GitlabCreateTags.ps1 b/ApiGit/GitlabCreateTags.ps1 index 00e99c6..b529b78 100644 --- a/ApiGit/GitlabCreateTags.ps1 +++ b/ApiGit/GitlabCreateTags.ps1 @@ -16,7 +16,7 @@ $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while $projectCount = 1 #numero massimo di progetti da analizzare -$projectNumber = 200 +$projectNumber = 300 #nome file di log $logFile = "GitlabTagCreation.log" diff --git a/ApiGit/Mirrors/CheckGitlabMirroring.ps1 b/ApiGit/Mirrors/CheckGitlabMirroring.ps1 index ef5eb08..5fe8dfd 100644 --- a/ApiGit/Mirrors/CheckGitlabMirroring.ps1 +++ b/ApiGit/Mirrors/CheckGitlabMirroring.ps1 @@ -15,7 +15,7 @@ $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while $projectCount = 1 #numero massimo di progetti da analizzare -$projectNumber = 200 +$projectNumber = 1 #conteggio progetti trovati $existingProjects = 0 #conteggio mirroring in errore diff --git a/ApiGit/Mirrors/GitlabForcePushMirrorUpdate.ps1 b/ApiGit/Mirrors/GitlabForcePushMirrorUpdate.ps1 new file mode 100644 index 0000000..f26f98d --- /dev/null +++ b/ApiGit/Mirrors/GitlabForcePushMirrorUpdate.ps1 @@ -0,0 +1,91 @@ +###Gitlab: forzo push verso i mirror dei singoli progetti### + +#Questo script passa in rassegna tutti i progetti esistenti sul gitlab aziendale e per ognuno verifica lo stato dei mirror, poi forza il push di tutti. + +#importo file contenente configurazioni +. .\ApiGit\ApiGitResources\ApiScriptsConfig.ps1 +#importo file contenente funzioni +. .\ApiGit\ApiGitResources\ApiScriptsFunctions.ps1 + +#rilevo time per log inizio analisi +$startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") +# avvio stopwatch +$mainStopWatch = [system.diagnostics.stopwatch]::StartNew() +#contatore mirror trovati +$mirrorCount = 0 +#contatore ciclo do while +$projectCount = 1 +#numero massimo di progetti +$projectNumber = 2 +#conteggio progetti trovati +$existingProjects = 0 +#nome file di log +$logFile = "GitlabForcePushMirror.log" + +#creazione folder di Log se non già esistente +if (Test-Path $logFolder) { +} +else { + New-Item $logFolder -ItemType Directory +} + +#scrivo intestazione e inizio analisi +WriteLogOutput $logFile 0 "--------------------" +Switch ($logLevel) { + 0 { WriteLogOutput $logFile 0 "LOG SINTETICO GITLAB FORCE PUSH MIRROR" } + 1 { WriteLogOutput $logFile 0 "LOG ERRORI GITLAB FORCE PUSH MIRROR" } + 2 { WriteLogOutput $logFile 0 "LOG FULL GITLAB FORCE PUSH MIRROR" } + 3 { WriteLogOutput $logFile 0 "LOG AMPOLLOSO GITLAB FORCE PUSH MIRROR" } +} +WriteLogOutput $logFile 0 "" +WriteLogOutput $logFile 0 "Percorso log: $logFolder" +WriteLogOutput $logFile 0 "" +WriteLogOutput $logFile 0 "Inizio Esecuzione Script: $startTime" + +#ciclo principale do/while che cicla da 1 a N projectNumber +do { + #chiamata api che restituisce informazioni sullo stato dei mirror + $callUrl = "https://gitlab.steamware.net/api/v4/projects/" + $projectCount + "/remote_mirrors" + WriteLogOutput $logFile 1 "" + WriteLogOutput $logFile 1 "--------------------" + WriteLogOutput $logFile 1 "**PROGETTO $projectCount**" + try { + #parsing della risposta api convertita da json + $Response = Invoke-WebRequest -URI $callUrl -Headers $gitlabHead -ContentType "application/json" -UseBasicParsing + $parsedResponse = $Response.Content | ConvertFrom-Json + #per ogni mirror forzo il push + foreach ($item in $parsedResponse) { + #compongo URL per chiamata POST per forzare PUSH + $callUrlForcePush = "https://gitlab.steamware.net/api/v4/projects/" + $projectCount + "/remote_mirrors/" + $item.id + "/sync" + $PushResponse = Invoke-WebRequest -URI $callUrlForcePush -Method POST -Headers $gitlabHead -ContentType "application/json" -UseBasicParsing + WriteLogOutput $logFile 0 $("Status: " + $PushResponse.StatusCode + " - " + $item.url) + $mirrorCount = $mirrorCount + 1 + } + $existingProjects = $existingProjects + 1 + } + #scrivo se trovo un errore durante il try/catch + catch { + $parsedError = $_ | ConvertFrom-Json + WriteLogOutput $logFile 3 $($parsedError.message) + } + $projectCount = $projectCount + 1 +} +#fine ciclo principale +while ($projectCount -le $projectNumber) + +# fermo stopwatch e calcolo durata script +$mainStopWatch.Stop() +$durataScript = $mainStopWatch.Elapsed.TotalSeconds + +#rilevo time per log fine analisi +$endTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") + +#scrivo a video le statistiche +WriteLogOutput $logFile 0 "" +WriteLogOutput $logFile 0 "PROGETTI ANALIZZATI: $existingProjects" +WriteLogOutput $logFile 0 "MIRRORING TOTALI: $mirrorCount" +WriteLogOutput $logFile 0 "" +WriteLogOutput $logFile 0 "Fine Esecuzione Script: $endTime" +WriteLogOutput $logFile 0 "" +WriteLogOutput $logFile 0 "Durata Esecuzione Script: $durataScript secondi" +WriteLogOutput $logFile 0 "" \ No newline at end of file