improved script per rimuovere protezione branch su nembro/azzano
This commit is contained in:
@@ -15,7 +15,7 @@ $mainStopWatch = [system.diagnostics.stopwatch]::StartNew()
|
||||
#contatore ciclo do while
|
||||
$projectCount = 1
|
||||
#numero massimo di progetti da analizzare
|
||||
$projectNumber = 250
|
||||
$projectNumber = 300
|
||||
#conteggio progetti trovati
|
||||
$projectsFound = 0
|
||||
#conteggio progetti con commit negli ultimi giorni
|
||||
|
||||
@@ -15,7 +15,7 @@ $mainStopWatch = [system.diagnostics.stopwatch]::StartNew()
|
||||
#contatore ciclo do while
|
||||
$projectCount = 1
|
||||
#numero massimo di progetti da analizzare
|
||||
$projectNumber = 300
|
||||
$projectNumber = 250
|
||||
#conteggio progetti trovati
|
||||
$existingProjects = 0
|
||||
#conteggio mirroring in errore
|
||||
@@ -58,12 +58,12 @@ do {
|
||||
$parsedResponse = $Response.Content | ConvertFrom-Json
|
||||
#scrivo il numero del progetto nel terminale e su file
|
||||
foreach ($item in $parsedResponse) {
|
||||
#verifico se i mirroring trovati per il progetto corrente hanno status "finished"
|
||||
#verifico se i mirroring trovati per il progetto corrente hanno status "finished" e scrivo log
|
||||
if ($item.update_status.Equals("finished")) {
|
||||
WriteLogOutput $logFile 2 "Mirror: $($item.url) - Status: $($item.update_status) - Last Success: $($item.last_successful_update_at)"
|
||||
$mirrorSuccessCount = $mirrorSuccessCount + 1
|
||||
}
|
||||
#i mirroring che non hanno status "finished" vengono loggati con relativo errore
|
||||
#per i mirroring che non hanno status "finished" scrivo log con relativo errore
|
||||
else {
|
||||
WriteLogOutput $logFile 1 "Mirror: $($item.url) - Status: $($item.update_status) - Last Success: $($item.last_successful_update_at) - Last Attempt: $($item.last_update_started_at)"
|
||||
WriteLogOutput $logFile 1 "Error: $($item.last_error)"
|
||||
|
||||
@@ -17,7 +17,7 @@ $projectCount = 200
|
||||
#numero massimo di progetti da analizzare
|
||||
$projectNumber = 250
|
||||
#nome file di log
|
||||
$logFile = "GiteaNewMirrors.log"
|
||||
$logFile = "NewMirrorsCreation.log"
|
||||
|
||||
#creazione folder di Log se non già esistente
|
||||
if (Test-Path $logFolder) {
|
||||
|
||||
@@ -13,7 +13,7 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss")
|
||||
# avvio stopwatch
|
||||
$mainStopWatch = [system.diagnostics.stopwatch]::StartNew()
|
||||
#contatore ciclo do while
|
||||
$projectCount = 200
|
||||
$projectCount = 1
|
||||
#numero massimo di progetti da analizzare
|
||||
$projectNumber = 300
|
||||
#conteggio progetti trovati
|
||||
@@ -25,19 +25,6 @@ $deleteProtection = 1
|
||||
#nome file di log
|
||||
$logFile = "GitlabProtectedBranches.log"
|
||||
|
||||
#specifica quale installazione di gitlab va controllata
|
||||
$remote = "Nembro"
|
||||
#$remote = "Azzano"
|
||||
|
||||
if ($remote -eq "Nembro"){
|
||||
$gitlabIstance = $destinationNembro
|
||||
$head = $nembroHead
|
||||
}
|
||||
if ($remote -eq "Azzano"){
|
||||
$gitlabIstance = $destinationAzzano
|
||||
$head = $azzanoHead
|
||||
}
|
||||
|
||||
#creazione folder di Log se non già esistente
|
||||
if (Test-Path $logFolder) {
|
||||
}
|
||||
@@ -60,42 +47,62 @@ 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 {
|
||||
#chiamata api che restituisce informazioni sullo stato dei mirror
|
||||
$callUrl = "https://" + $gitlabIstance + "/api/v4/projects/" + $projectCount + "/protected_branches"
|
||||
try {
|
||||
#parsing della risposta api convertita da json
|
||||
$Response = Invoke-WebRequest -URI $callUrl -Headers $head -ContentType "application/json" -UseBasicParsing
|
||||
$parsedResponse = $Response.Content | ConvertFrom-Json
|
||||
#scrivo il numero del progetto
|
||||
WriteLogOutput $logFile 1 ""
|
||||
WriteLogOutput $logFile 1 "--------------------"
|
||||
WriteLogOutput $logFile 1 "**PROGETTO $projectCount**"
|
||||
foreach ($item in $parsedResponse) {
|
||||
WriteLogOutput $logFile 1 "Protected Branch Name: $($item.name) - Allow Force Push: $($item.allow_force_push)"
|
||||
$protectedProjects = $protectedProjects + 1
|
||||
if ($deleteProtection -eq 1) {
|
||||
#nuovo URL x delete
|
||||
$callUrlDelete = "https://" + $gitlabIstance + "/api/v4/projects/" + $projectCount + "/protected_branches/" + $item.name
|
||||
#chiamo method DELETE
|
||||
Invoke-WebRequest -Method Delete -URI $callUrlDelete -Headers $head -ContentType "application/json" -UseBasicParsing
|
||||
#specifica quale installazione di gitlab va controllata
|
||||
#$remote = "Nembro"
|
||||
#$remote = "Azzano"
|
||||
|
||||
$locations = @('Nembro','Azzano')
|
||||
|
||||
#ciclo for per lavorare su gitlab nembro e poi su gitlab azzano
|
||||
for ( $i = 0; $i -le 1; $i++)
|
||||
{
|
||||
$projectCount = 1
|
||||
$remote = $locations[$i]
|
||||
if ($remote -eq "Nembro"){
|
||||
$gitlabIstance = $destinationNembro
|
||||
$head = $nembroHead
|
||||
}
|
||||
if ($remote -eq "Azzano"){
|
||||
$gitlabIstance = $destinationAzzano
|
||||
$head = $azzanoHead
|
||||
}
|
||||
#ciclo principale do/while che cicla da 1 a N projectNumber
|
||||
do {
|
||||
#chiamata api che restituisce informazioni sullo stato dei mirror
|
||||
$callUrl = "https://" + $gitlabIstance + "/api/v4/projects/" + $projectCount + "/protected_branches"
|
||||
try {
|
||||
#parsing della risposta api convertita da json
|
||||
$Response = Invoke-WebRequest -URI $callUrl -Headers $head -ContentType "application/json" -UseBasicParsing
|
||||
$parsedResponse = $Response.Content | ConvertFrom-Json
|
||||
#scrivo il numero del progetto
|
||||
WriteLogOutput $logFile 1 ""
|
||||
WriteLogOutput $logFile 1 "--------------------"
|
||||
WriteLogOutput $logFile 1 "**PROGETTO $projectCount**"
|
||||
foreach ($item in $parsedResponse) {
|
||||
WriteLogOutput $logFile 1 "Protected Branch Name: $($item.name) - Allow Force Push: $($item.allow_force_push)"
|
||||
$protectedProjects = $protectedProjects + 1
|
||||
if ($deleteProtection -eq 1) {
|
||||
#nuovo URL x delete
|
||||
$callUrlDelete = "https://" + $gitlabIstance + "/api/v4/projects/" + $projectCount + "/protected_branches/" + $item.name
|
||||
#chiamo method DELETE
|
||||
Invoke-WebRequest -Method Delete -URI $callUrlDelete -Headers $head -ContentType "application/json" -UseBasicParsing
|
||||
}
|
||||
}
|
||||
$existingProjects = $existingProjects + 1
|
||||
}
|
||||
$existingProjects = $existingProjects + 1
|
||||
#scrivo se trovo un errore durante il try/catch
|
||||
catch {
|
||||
$parsedError = $_ | ConvertFrom-Json
|
||||
WriteLogOutput $logFile 3 ""
|
||||
WriteLogOutput $logFile 3 "--------------------"
|
||||
WriteLogOutput $logFile 3 "**ERRORE NEL PROGETTO $projectCount**"
|
||||
WriteLogOutput $logFile 3 $($parsedError.message)
|
||||
}
|
||||
$projectCount = $projectCount + 1
|
||||
}
|
||||
#scrivo se trovo un errore durante il try/catch
|
||||
catch {
|
||||
$parsedError = $_ | ConvertFrom-Json
|
||||
WriteLogOutput $logFile 3 ""
|
||||
WriteLogOutput $logFile 3 "--------------------"
|
||||
WriteLogOutput $logFile 3 "**ERRORE NEL PROGETTO $projectCount**"
|
||||
WriteLogOutput $logFile 3 $($parsedError.message)
|
||||
}
|
||||
$projectCount = $projectCount + 1
|
||||
#fine ciclo principale
|
||||
while ($projectCount -le $projectNumber)
|
||||
}
|
||||
#fine ciclo principale
|
||||
while ($projectCount -le $projectNumber)
|
||||
|
||||
# fermo stopwatch e calcolo durata script
|
||||
$mainStopWatch.Stop()
|
||||
|
||||
@@ -15,13 +15,13 @@ $mainStopWatch = [system.diagnostics.stopwatch]::StartNew()
|
||||
#contatore ciclo do while
|
||||
$projectCount = 200
|
||||
#numero massimo di progetti da analizzare (messo a 1 per "sicura inserita" siccome questo script è potenzialmente pericoloso)
|
||||
$projectNumber = 300
|
||||
$projectNumber = 250
|
||||
#nome file di log
|
||||
$logFile = "AzzanoNembroReposCreation.log"
|
||||
|
||||
#specifica quale installazione di gitlab va controllata
|
||||
$remote = "Nembro"
|
||||
#$remote = "Azzano"
|
||||
#$remote = "Nembro"
|
||||
$remote = "Azzano"
|
||||
|
||||
if ($remote -eq "Nembro"){
|
||||
$gitlabIstance = $destinationNembro
|
||||
|
||||
Reference in New Issue
Block a user