Introduzione a GitHub
GitHub è la più grande community open source a livello globale e di proprietà Microsoft. GitHub è una piattaforma di sviluppo ispirata alle attività degli utenti.
Consente di ospitare ed esaminare il codice, gestire i progetti e creare software insieme a 40 milioni di sviluppatori dall'ambiente open source a quello aziendale.
GitHub è un servizio di hosting del repository Git, ma aggiunge molte funzionalità specifiche.
Mentre Git è uno strumento da riga di comando, GitHub fornisce un'interfaccia grafica basata sul Web.
Fornisce anche il controllo di accesso e diverse funzionalità di collaborazione, ad esempio wiki e strumenti di gestione delle attività essenziali per ogni progetto.
Quali sono i principali vantaggi dell'uso di GitHub? Per la gestione di quasi tutti i progetti open source viene usato GitHub.
L'uso di GitHub è gratuito se il progetto è open source e include uno wiki e uno strumento di gestione dei problemi che consente di avere a disposizione una documentazione più approfondita e di ottenere commenti e suggerimenti sul progetto.
Quali sono alcune delle funzionalità offerte da GitHub?
Automatizzazione delle attività dal codice al cloud: creare cicli del codice di produzione più velocemente e semplificare il flusso di lavoro con pacchetti GitHub e attività di CI/CD predefinite usando GitHub Actions.
- Automatizzazione dei flussi di lavoro: compilare, testare, distribuire ed eseguire attività di CI/CD in base alle esigenze nella stessa posizione in cui si gestisce il codice. Attivare Actions da qualsiasi evento GitHub a qualsiasi API disponibile. Creare istanze di Actions nel linguaggio desiderato o scegliere tra migliaia di flussi di lavoro e istanze di Actions creati dalla community.
- Integrazione di Packages con il codice: usare Actions per pubblicare automaticamente nuove versioni del pacchetto in GitHub Packages. Installare pacchetti e immagini ospitati in GitHub Packages o nel registro pacchetti preferito nei flussi di lavoro CI/CD. È sempre gratuito per gli utenti open source e il trasferimento dei dati all'interno di Actions è illimitato per qualsiasi tipo di utente.
Protezione combinata del software: GitHub svolge un ruolo importante nella protezione del codice a livello globale, grazie a sviluppatori, gestori, ricercatori e team di sicurezza. In GitHub, i team di sviluppo possono collaborare da qualsiasi luogo per proteggere la catena di approvvigionamento del software mondiale, dall'inizio alla fine.
- Avvisi sulle vulnerabilità nel codice: GitHub analizza continuamente gli avvisi di sicurezza per i linguaggi più diffusi. Invia inoltre avvisi di sicurezza dettagliati ai gestori di repository interessati, in modo che possano correggere i rischi.
- Aggiornamento automatico delle vulnerabilità: GitHub monitora le dipendenze del progetto e apre automaticamente le richieste pull per aggiornare le dipendenze alla versione minima che risolve le vulnerabilità note.
- Aggiornamento sugli elenchi CVE: rimanere aggiornati sugli elenchi più recenti di vulnerabilità ed esposizioni comuni (CVE, Common Vulnerabilities and Exposures) e scoprirne l'impatto sull'utente con GitHub Advisory Database.
- Individuazione delle vulnerabilità non rilevate da altri strumenti: CodeQL è il motore di analisi del codice semantico leader del settore. L'approccio rivoluzionario di GitHub considera il codice come insieme di dati per identificare più rapidamente le vulnerabilità di sicurezza.
- Eliminazione delle varianti: non ripetere mai lo stesso errore due volte. L'analisi proattiva delle vulnerabilità impedisce che le vulnerabilità raggiungano la fase di produzione.
- Garanzia di sicurezza per i token: se è stato eseguito il commit accidentale di un token in un repository pubblico? GitHub ha la soluzione. Con il supporto di 20 provider di servizi, GitHub offre procedure per proteggere l'utente.
Revisione del codice semplificata: la revisione del codice è il percorso più sicuro per migliorare il codice ed è fondamentale per il funzionamento di GitHub. Gli strumenti di revisione predefiniti rendono la revisione del codice una parte essenziale del processo del team.
- Proposta di modifiche: il codice ottimale inizia con una richiesta pull, una conversazione reale sulle modifiche in cui è possibile esprimere idee, assegnare attività, discutere dettagli e condurre revisioni.
- Richiesta di revisioni: se si è dall'altro lato di una revisione, è possibile richiedere revisioni dai colleghi per ottenere il feedback dettagliato necessario.
- Analisi dei cambiamenti: le revisioni vengono condotte più velocemente quando si conoscono con precisione le modifiche apportate. Diff confronta le versioni del codice sorgente affiancandole ed evidenziando le parti nuove, modificate o eliminate.
- Commento nel contesto: le discussioni si verificano nei thread di commento all'interno del codice: raggruppare i commenti in una sola recensione o rispondere a un altro utente in linea per avviare una conversazione.
- Feedback chiaro: i membri del team non devono perdere tempo a pensare al significato dell'emoji con il pollice in su. Specificare se i commenti prevedono modifiche necessarie o forniscono solo alcuni suggerimenti.
- Protezione dei rami: unire solo il codice di alta qualità. È possibile configurare i repository per richiedere controlli di stato, riducendo sia l'errore umano che il sovraccarico amministrativo.
Tutto il codice e la documentazione in un'unica posizione: ci sono centinaia di milioni di repository privati, pubblici e open source ospitati in GitHub. Ogni repository include strumenti che consentono di ospitare e rilasciare codice e documentazione, nonché definirne la versione.
- Unica postazione di creazione e collaborazione: i repository mantengono il codice in un'unica posizione e aiutano i team a collaborare con gli strumenti che preferiscono, anche se si utilizzano file di grandi dimensioni usando Git LFS. È possibile creare o importare il maggior numero possibile di progetti con repository privati illimitati per utenti singoli e gruppi.
- Integrazione di documentazione e codice: ospitare la documentazione direttamente dai repository con GitHub Pages. Usare Jekyll come generatore di siti statici e pubblicare le pagine dalla cartella /docs nel ramo master.
Gestione delle idee: coordinare in anticipo, rimanere allineati e aumentare la produttività con gli strumenti di gestione progetti di GitHub.
- Visione complessiva del progetto: avere un quadro completo del progetto e scegliere dove concentrare le attività del team con Projects, bacheche delle attività integrate nel codice.
- Tracciabilità e assegnazione delle attività: i problemi consentono di identificare, assegnare e tenere traccia delle attività all'interno del team. È possibile aprire un problema per tenere traccia di un bug, discutere un'idea con @mention o iniziare a distribuire il lavoro.
Il lato umano del software: la creazione di software riguarda la gestione di team e community rispetto alla codifica. Che si tratti di un gruppo di due o 2000, GitHub ha il supporto necessario per gli utenti.
- Gestione e crescita dei team: aiutare gli utenti a organizzarsi con i team GitHub, passare al livello successivo per accedere ai ruoli amministrativi e ottimizzare le autorizzazioni con i team annidati.
- Mantenere le conversazioni: gli strumenti di moderazione, ad esempio il blocco delle richieste pull e dei problemi, aiutano il team a rimanere concentrato sul codice. Se si mantiene un progetto open source, il blocco degli utenti riduce le segnalazioni non significative e garantisce che le conversazioni siano produttive.
- Impostazione di linee guida per la community: impostare ruoli e aspettative senza iniziare da zero. Personalizzare i codici di comportamento standard per creare quello perfetto per il progetto. Scegliere quindi una licenza pre-scritta appositamente dal repository.
GitHub offre ottime risorse di apprendimento appositamente progettate per la piattaforma. È possibile trovare qualsiasi tipo di informazione, dalle esercitazioni introduttive per Git all'approfondimento sulla pubblicazione di pagine statiche in GitHub e su come eseguire DevOps in GitHub, qui.