# 🛠️ Guida per il Maintainer / Owner del Progetto

Questa guida serve per organizzare e mantenere ordinato il flusso di lavoro Git in un progetto condiviso.

---

## 📁 Struttura base del repository

- `master`: codice stabile, **protetto**.
- `feature/...`: branch per nuove funzionalità.
- `bugfix/...`, `hotfix/...`: per correzioni.

---

## 🧑‍💼 Compiti principali del maintainer

### ✅ 1. Impostazioni del repo

- Aggiungi i collaboratori.
- Imposta le protezioni sul branch `master`:
  - Solo Merge Request (MR).
  - Almeno una review richiesta.
  - Blocca il push diretto a `master`.
  - (Opzionale) Check automatici (lint/test).

---

### 🔀 2. Revisione delle Merge Request

- Leggi il codice, lascia commenti.
- Richiedi modifiche se necessario.
- Approva e fai il merge.

```bash
# facoltativo: merge da terminale
git checkout master
git pull
git merge feature/xyz
git push origin master
```
- Elimina i branch obsoleti (dopo merge).

---

### 📈 3. Organizza e guida il team
- Spiega il flusso ai nuovi sviluppatori.
- Mantieni una documentazione aggiornata.
- Eventualmente: crea delle issue da assegnare.

---

### 🧱 4. Convenzioni consigliate

| Tipo di branch | Prefisso      | Esempio                   |
|----------------|---------------|---------------------------|
| Feature        | `feature/`    | `feature/nuova-api`       |
| Bugfix         | `bugfix/`     | `bugfix/errore-login`     |
| Hotfix         | `hotfix/`     | `hotfix/build-fallita`    |

---

### 🧠 Suggerimenti

- Evita MR troppo grandi.
- Richiedi descrizioni dettagliate.
- Non fare merge se i test falliscono.
- Fai da esempio: anche tu lavora su branch separati.

---

### 📌 In caso di domande

Coinvolgi il team o aggiorna la documentazione man mano che emergono dubbi o problemi comuni.