Introduzione a GitHub

Completato

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.