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
Applicare un filtro per recuperare alcune issue di GitHub
Gestione degli eventi nei Web component HTML
Supportare la sessione affinity di Azure App Service con Application Gateway
Ottenere un token di accesso per una GitHub App
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Creare un webhook in Azure DevOps
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Configurare e gestire sidecar container in Azure App Service
Evitare (o ridurre) il repo-jacking sulle GitHub Actions