In uno script precedente (https://www.dopsitalia.com/script/111/Disabilitare-Automaticamente-Workflow-GitHub.aspx) abbiamo visto come sia facile disabilitare automaticamente un workflow esistente. Questo, però, funziona solamente nel momento in cui il workflow è nello stato "Active", altrimenti la CLI di GitHub ci ritornerà un errore perché non abbiamo gestito opportunamente le chiamate. Di fatto, dobbiamo integrare lo script precedente con un po' di check di stato.
Non esiste un modo diretto per verificare che il workflow specifico sia in un attivo o disabilitato, perciò dobbiamo recuperare questa informazione da un'altra API (o comando della CLI):
gh workflow list --repo <org>/<repo-name> --all --json id,state --jq ".[] | select(.id == 1234) | .state"
Con una semplice query di JQ ci siamo estrapolati lo stato a partire dall'elenco completo dei workflow disponibili in un determinato repository. A questo punto, basta salvare questo valore in una variabile e controllare lo stato prima di procedere alla disabilitazione del workflow:
if [[ "$state" == "active" ]]; then echo "Disabling workflow..." gh workflow disable 1234 --repo <org>/<repo-name> else echo "Workflow 1234 is already disabled. Skipping..." fi
Per abilitarlo, invece, è sufficiente fare l'operazione contraria.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Generare la software bill of material (SBOM) in GitHub
Supportare la sessione affinity di Azure App Service con Application Gateway
Creare un webhook in Azure DevOps
Creare agenti facilmente con Azure AI Agent Service
Eseguire script pre e post esecuzione di un workflow di GitHub
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Utilizzare Azure Cosmos DB con i vettori
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
Ottenere un token di accesso per una GitHub App
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Generare velocemente pagine CRUD in Blazor con QuickGrid