Implementazione gestione gitea-nembro

This commit is contained in:
marco.locatelli@steamware.net
2025-12-04 17:10:01 +01:00
parent 9c59909908
commit 6233c981ae
4 changed files with 52 additions and 20 deletions
+7 -7
View File
@@ -98,13 +98,13 @@ $endTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss")
#invio a zabbix le metriche rilevate tramite zabbix_sender.exe
WriteLogOutput $logFile 0 ""
& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.Projects -o $existingProjects
& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.TotalMirror -o $mirrorCount
& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.SuccessMirror -o $mirrorSuccessCount
& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.ErrorsMirror -o $mirrorErrorsCount
& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.SuccessMirrorPercent -o $mirrorSuccessPercentage
& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.ErrorsMirrorPercent -o $mirrorErrorsPercentage
& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.CheckMirrorDuration -o $durataScript
& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabbix.egalware -s "IIS04" -k Gitlab.Projects -o $existingProjects
& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabbix.egalware -s "IIS04" -k Gitlab.TotalMirror -o $mirrorCount
& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabbix.egalware -s "IIS04" -k Gitlab.SuccessMirror -o $mirrorSuccessCount
& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabbix.egalware -s "IIS04" -k Gitlab.ErrorsMirror -o $mirrorErrorsCount
& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabbix.egalware -s "IIS04" -k Gitlab.SuccessMirrorPercent -o $mirrorSuccessPercentage
& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabbix.egalware -s "IIS04" -k Gitlab.ErrorsMirrorPercent -o $mirrorErrorsPercentage
& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabbix.egalware -s "IIS04" -k Gitlab.CheckMirrorDuration -o $durataScript
#scrivo a video le statistiche
WriteLogOutput $logFile 0 ""
@@ -58,9 +58,13 @@ for ($projectCount = $startProj; $projectCount -le $endProj; $projectCount++) {
#compongo path con struttura Egalware/NomeProgetto.git
$simplePath = "Egalware/" + $($parsedNameResponse.path) + ".git"
#se la risposta non contiene "gitea" procedo a creare mirror relativo
if ($gitlabResponse.Content -inotmatch "gitea") {
#chiamo funzione per creare mirror verso gitea
FreshMirrorCreation $projectCount $giteaUser $giteaPass $giteaDestination $simplePath
if ($gitlabResponse.Content -inotmatch "gitea.steamware.net") {
#chiamo funzione per creare mirror verso gitea-steamware
FreshMirrorCreation $projectCount $giteaSteamwUser $giteaSteamwPass $giteaSteamw $simplePath
}
if ($gitlabResponse.Content -inotmatch "gitea-nembro.steamware.net") {
#chiamo funzione per creare mirror verso gitea-nembro
FreshMirrorCreation $projectCount $giteaNembroUser $giteaNembroPass $giteaNembro $simplePath
}
#se la risposta non contiene "gogs" procedo a creare mirror relativo
if ($gitlabResponse.Content -inotmatch "gogs") {
+27 -3
View File
@@ -25,12 +25,37 @@ $logFile = "GitlabMirroringGitea.log"
#nome file di log old
$oldLogFile = "GitlabMirroringGitea.old"
#gitea di destinazione
#$target = "steamware"
$target = "nembro"
#creazione folder di Log se non esiste
CheckLogFolder
#rotazione vecchio logFile da .log a .old se esiste
RotateOldLog
if ($target = "steamware"){
#destinazione mirror per gitea Steamw
$giteaDestination = $giteaSteamw
#nome utente gitea Steamw che effettua i mirror push
$giteaUser = $giteaSteamwUser
#autenticazione replica gitea Steamw
$giteaPass = $giteaSteamwPass
#access token per autenticazione gitea Steamw da profilo replica
$giteaHead = $giteaSteamwHead
}
if ($target = "nembro"){
#destinazione mirror per gitea nembro
$giteaDestination = $giteaNembro
#nome utente gitea nembro che effettua i mirror push
$giteaUser = $giteaNembroUser
#autenticazione replica gitea nembro
$giteaPass = $giteaNembroPass
#access token per autenticazione gitea nembro da profilo replica
$giteaHead = $giteaNembroHead
}
#scrivo intestazione e inizio analisi
WriteLogOutput $logFile 0 "--------------------"
Switch ($logLevel) {
@@ -60,8 +85,7 @@ for ($projectCount = $startProj; $projectCount -le $endProj; $projectCount++){
$mirrorUrl = ""
$trunkedPath = ""
#controllo se l'url del mirror contiene gitea
if ($item.url.Contains("gitea")) {
$mirrorDestination = "@gitea.steamware.net"
if ($item.url.Contains($giteaDestination)) {
#salvo id mirror e url mirror
$mirrorId = $($item.id)
$mirrorUrl = $($item.url)
@@ -76,7 +100,7 @@ for ($projectCount = $startProj; $projectCount -le $endProj; $projectCount++){
#compongo url da chiamare per creazione nuovo mirror
$callUrlCreateMirror = "https://gitlab.steamware.net/api/v4/projects/" + $projectCount + "/remote_mirrors"
#creo url del nuovo mirror con username e pass relativi a gitlab
$newMirror = "https://" + $giteaUser + ":" + $giteaPass + $mirrorDestination + "/" + $trunkedPath
$newMirror = "https://" + $giteaUser + ":" + $giteaPass + "@" + $giteaDestination + "/" + $trunkedPath
#creo body da convertire in json
$body =
@{
+11 -7
View File
@@ -31,20 +31,24 @@ CheckLogFolder
RotateOldLog
if ($target = "steamware"){
#destinazione mirror per gitea
#destinazione mirror per gitea Steamw
$giteaDestination = $giteaSteamw
#nome utente gitea che effettua i mirror push
#nome utente gitea Steamw che effettua i mirror push
$giteaUser = $giteaSteamwUser
#autenticazione replica gitea
#autenticazione replica gitea Steamw
$giteaPass = $giteaSteamwPass
#access token per autenticazione gitea Steamw da profilo replica
$giteaHead = $giteaSteamwHead
}
if ($target = "nembro"){
#destinazione mirror per gitea
#destinazione mirror per gitea nembro
$giteaDestination = $giteaNembro
#nome utente gitea che effettua i mirror push
#nome utente gitea nembro che effettua i mirror push
$giteaUser = $giteaNembroUser
#autenticazione replica gitea
#autenticazione replica gitea nembro
$giteaPass = $giteaNembroPass
#access token per autenticazione gitea nembro da profilo replica
$giteaHead = $giteaNembroHead
}
#scrivo intestazione e inizio analisi
@@ -72,7 +76,7 @@ for ($projectCount = $startProj; $projectCount -le $endProj; $projectCount++){
WriteLogOutput $logFile 1 "**PROGETTO $projectCount**"
foreach ($gitlabItem in $parsedGitlabResponse) {
WriteLogOutput $logFile 1 "Gitlab Project Name: $($gitlabItem.name)"
$callGiteaUrl = "https://gitea.steamware.net/api/v1/orgs/Egalware/repos"
$callGiteaUrl = "https://" + $giteaDestination + "/api/v1/orgs/Egalware/repos"
#dichiaro un body da convertire in JSON con il nome del repo da creare (prendo path o name a seconda delle necessità)
$giteaBody =
@{