# GitHub Issue Tracker Lab

## Creazione di un account in GitHub

- Accedere a GitHub

- Premere il link Sign up in alto a destra e completare il form di registrazione presente nella pagina

  - in caso si abbia già un account si può entrare direttamente con il link Sign in

## Creazione di un Progetto

- Una volta effettuato il login in GitHub, creare un nuovo repository premendo il bottone Start a project o tramite il seguente URL:

  - https://github.com/new

- Creare un repository pubblico inserendo i dati richiesti

## Creare una nuova Issue

- Una volta creato il nuovo repository, accedere alla tab Issues

- Creare una nuova Issue utilizzando il tasto New Issue

  - Inserire un titolo

  - Inserire una descrizione

  - Utilizzare le Labels per definire la tipologia Bug

  - Verificare che non è presente un Progetto

  - Verificare che non è presente una Milestone

- Verificare le caratteristiche della Issue appena creata

  - Codice e URL

  - Stato

  - Commenti

  - Tipo

  - Assegnatario

  - Notifiche

Warning | Notare che non sono presenti tutti i campi descritti nel corso!

## Tipi di issue

In GitHub non è possibile definire dei campi personalizzati. È però possibile definire un template da utilizzare per la compilazione della issue : Issue Template.

## Work Flow

In GitHub non è possibile definire un Work Flow personalizzato.

Il Work Flow è lo stesso per ogni "tipologia" di Issue.

Il Work Flow è composto dai seguenti stati:

- Open → Closed

- Closed → Reopen

- Reopen → Closed

Tip | per maggiori informazioni vedi qui.

## Notifiche

- Aggiungere un collaboratore al Progetto

  - Cliccare la Tab Settings

  - Cliccare la voce collaborators

- Invitare un compagno di corso al Progetto (che dovrà accettare l’invito)

- Assegnare la Issue precedentemente creata al collaboratore che ricverà una notifica

Note | Le notifiche vengono inviate alla casella mail associata all’utente e segnalate all’interno di GitHub (icona a forma di campanella vicina al avatar dell’utente)

## Filtri

È possibile ricercare le Issue all’interno del progetto

- Cliccare la Tab Issue o il link https://github.com/MYUSERNAME/MYPROJECT/issues

- Provare ad utilizzare le funzionalità di ricerca (p.es. utilizzare i filtri predefiniti)

Warning | Non è possibile salvare un filtro per un utilizzo futuro! Per maggiori informazioni

Per una guida completa sulle ricerche possibili visitare il seguente collegamento

https://help.github.com/articles/searching-issues-and-pull-requests/

## Bacheche (Project Board)

Per creare una nuova Project Board è necessario creare un progetto.

- Accedere alla tab Projects e cliccare il bottone Create a project

- Aggiungere i campi richiesti

  - Project Name: il nome della board per il progetto

  - Project Template a Board

- cliccare il bottone Create

A questo punto comparirà la Project Board creata

- Cliccare in + Add item su una delle colonne, ad esempio nella colonna Todo

- Cliccare nel simbolo + all’inizio della riga di ricerca

- Cliccare in Add item from repository

- Selezionare le issue da aggiungere nella colonna

- Aprire il dettaglio della Issue e verificare che il campo Projects sia stato valorizzato

- Modificare lo stato della Issue a "Closed"

- Verificare che nella Project Board la Issue è stata spostata nella colonna DONE e che lo stato di avanzamento del progetto è cambiato

Per una guida completa sulle Project Board visitare il seguente collegamento

https://help.github.com/articles/about-project-boards/

## Iterazioni o Milestone

E' possibile definire delle Milestone.

Le Milestone permettono di definire un tempo limite per le Issue (Release).

Per creare una Milestone:

- Accedere a Tab Issues

- Cliccare il bottone milestones

- Cliccare il bottone New milestone

- Definire il titolo della milestone, la data di scadenza e la descrizione

- Creare una nuova Issue assegnando la Milestone appena creata

Per maggiori informazioni sulle Milestone visitare il seguente collegamento:

https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/about-milestones