Configurare le autorizzazioni nel repository del controllo del codice sorgente usando GitHub
L'implementazione ottimale delle autorizzazioni del repository GitHub comporta la ricerca di un giusto equilibrio tra la facilitazione della collaborazione e la protezione delle codebase da abusi e uso improprio. GitHub supporta controlli di accesso con granularità fine che consentono ai team di interagire in modo efficiente tra loro, mantenendo al tempo stesso i principi di privacy, sicurezza e integrità dei dati.
Il modello di autorizzazione varia a seconda del tipo di account GitHub. Esistono cinque tipi di account che possono essere creati da singoli utenti e organizzazioni:
- GitHub Free per gli account personali: gratuito per uso individuale, include collaboratori illimitati su repository pubblici senza limiti con un set di funzionalità completo e su repository privati senza limiti con un set di funzionalità limitato, ad esempio
problemi e richieste pull. - GitHub Pro: per sviluppatori professionisti, include repository pubblici e privati illimitati, collaboratori senza limiti e strumenti avanzati di revisione del codice.
- GitHub Free per le organizzazioni: gratuito per le organizzazioni, include collaboratori illimitati su repository pubblici illimitati con un set di funzionalità completo e in repository privati illimitati con un set di funzionalità limitato. Oltre alle funzionalità disponibili con GitHub Free per gli account personali, GitHub Free per le organizzazioni offre limiti più elevati dei minuti mensili di GitHub Actions, nonché una maggiore archiviazione di GitHub Packages.
- GitHub Team: per i team, include tutte le funzionalità di GitHub Pro, nonché le autorizzazioni di team e utente, gli strumenti di revisione del codice e le funzionalità avanzate nei repository privati.
- GitHub Enterprise: per le organizzazioni a livello aziendale, include tutte le funzionalità di GitHub Team, nonché le funzionalità di sicurezza a livello aziendale, ad esempio Single Sign-On, log di controllo e controlli di conformità. Questo piano è self-hosted e può essere eseguito in locale o in un ambiente cloud (GitHub Enterprise Cloud).
Autorizzazioni di repository in GitHub Free per account personali
GitHub Free per account personali: Per i repository pubblici, chiunque può visualizzare e creare una copia tramite fork del repository. Per i repository privati, il proprietario del repository dispone del controllo completo su chi può accedere e contribuire al repository, con un massimo di tre collaboratori consentiti. Può esistere un solo proprietario, in modo che le autorizzazioni di proprietà non possano essere condivise con un altro account personale. Inoltre, in un repository privato, i proprietari di repository possono concedere solo l'accesso in scrittura ai collaboratori. In altre parole, i collaboratori non possono avere accesso in sola lettura ai repository di proprietà di un account personale.
Autorizzazioni di repository in GitHub Pro
GitHub Pro include tutti gli stessi livelli di autorizzazione del repository di GitHub Free per account personali, ma con funzionalità di collaborazione più avanzate, ad esempio rami protetti e proprietari di codice.
Autorizzazioni di repository in GitHub Free per le organizzazioni
GitHub Free per le organizzazioni include la possibilità di creare team, a cui è possibile concedere l'accesso a repository specifici con vari livelli di autorizzazione. Ai team è possibile concedere l'accesso in scrittura o l'accesso amministratore e si possono creare ruoli personalizzati per fornire autorizzazioni specifiche a utenti o gruppi diversi.
Il ruolo predefinito non amministrativo per gli utenti di un'organizzazione è quello del membro dell'organizzazione. Per impostazione predefinita, i membri dell'organizzazione hanno alcune autorizzazioni, inclusa la possibilità di creare repository.
Altri ruoli dell'organizzazione dispongono di autorizzazioni elevate per i repository, ad esempio:
- Moderatori dell'organizzazione: possono nascondere i commenti nei repository pubblici di proprietà dell'organizzazione.
- Responsabili della sicurezza: possono leggere tutti i repository nell'organizzazione.
- Proprietari: dispongono di tutte le autorizzazioni correlate al repository, tra cui l'aggiunta di collaboratori, nonché la scrittura e l'eliminazione di repository.
I proprietari dell'organizzazione possono impostare le autorizzazioni di base applicabili a tutti i membri di un'organizzazione, quando accedono a uno dei relativi repository. Le autorizzazioni di base non si applicano ai collaboratori esterni. La concessione di un livello di accesso superiore per singoli repository esegue l'override dell'autorizzazione di base.
L'accesso personalizzato ai repository può essere implementato assegnando ruoli del repository predefiniti ai membri dell'organizzazione e ai collaboratori esterni. Questi ruoli includono:
- Lettura: Consigliato per i collaboratori non di codice che vogliono essere in grado di esaminare il contenuto del repository.
- Valutazione: Consigliata per i collaboratori che devono gestire in modo proattivo i problemi, le discussioni e le richieste pull senza accesso in scrittura.
- Scrittura: Consigliato per i collaboratori che eseguono attivamente il push nel repository.
- Gestione: Consigliata per i project manager che devono gestire il repository senza accedere ad azioni sensibili o distruttive.
- Amministrazione: Consigliato per gli utenti che necessitano di privilegi completi, tra cui azioni sensibili e distruttive, ad esempio la gestione della sicurezza o l'eliminazione del repository.
Autorizzazioni del repository in GitHub Team
GitHub Team include tutti gli stessi livelli di autorizzazione del repository di GitHub Free per le organizzazioni, con l'aggiunta del supporto per i team e funzionalità di sicurezza più avanzate, ad esempio intervalli IP autorizzati e autenticazione di livello aziendale. I team sono i gruppi di membri dell'organizzazione. I proprietari dell'organizzazione e i gestori del team possono concedere ai team l'autorizzazione ai repository.
Autorizzazioni del repository in GitHub Enterprise Cloud
GitHub Enterprise Cloud è progettato per le organizzazioni a livello aziendale e include tutte le funzionalità di GitHub Team, nonché funzionalità di sicurezza
di livello aziendale, ad esempio Single Sign-On, log di controllo e controlli di conformità. GitHub Enterprise Cloud supporta un controllo molto granulare sulle autorizzazioni del repository, includendo la possibilità di gestire le autorizzazioni a livello di ramo. I proprietari dell'organizzazione possono anche creare ruoli personalizzati per concedere autorizzazioni più granulari a utenti o team diversi rispetto a quelli disponibili con i ruoli predefiniti di lettura, valutazione, scrittura, gestione e amministrazione.