Le custom property in GitHub sono uno strumento molto utile perché ci consentono di applicare dei metadati su tutti i repository dell'organizzazione, per fare in modo che questi rispettino determinati requisiti di compliance o di protezione dei dati. Per esempio, una regola generale potrebbe essere quella di bloccare il push diretto sul branch main, così che immediatamente, tramite un ruleset, leggendo la custom property saremo obbligati a creare una pull request per pubblicare dei nuovi commit all'interno del branch principale, forzandoci nel seguire delle convenzioni per tutta l'organizzazione.
Possiamo creare una nuova custom property direttamente sfruttando la CLI di GitHub:
gh api --method PATCH -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" /repos/OWNER/REPO/properties/values -f "properties[][property_name]=can-push-on-main" -f "properties[][value]=false"
A questo punto, ci sarà sufficiente creare un ruleset dove il target è "repositories", e dove includiamo una lista dinamica di property, tra cui l'appena creata can-push-on-main. Questo ci serve perchè così, eventualmente, qualche repository può richiedere l'esclusione della regola, bypassandola, impostandosi la property a "true" in autonomia (e con i permessi necessari).
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Raggruppamento degli aggiornamenti di dipendenze tra directory in un monorepo con Dependabot
Gestione dei prompt file a livello di organizzazione aziendale in GitHub
Effettuare un clone parziale di un repository di GitHub
Gestione ciclo di vita in .NET Aspire
Effettuare chiamate API tramite GitHub App
Pubblicare un MCP Server in GitHub MCP Registry
Utilizzare AbortController per cancellare operazioni asincrone in JavaScript
Gestione dei codeowners in GitHub
Abilitare automaticamente il force push di un gruppo su Azure DevOps
Controllare la velocità di spostamento su una pagina HTML
Introduzione a GitHub Copilot CLI


