Aggiunge guida setup triage per repository
This commit is contained in:
90
SETUP_TRIAGE.md
Normal file
90
SETUP_TRIAGE.md
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
# Setup triage automatico su un repository
|
||||||
|
|
||||||
|
## Prerequisiti
|
||||||
|
|
||||||
|
- Gitea Actions abilitate sul repository
|
||||||
|
- Issues abilitate sul repository
|
||||||
|
- Runner disponibile con label `linux_amd64` (o label equivalente)
|
||||||
|
- Accesso admin al repository per creare secrets e labels
|
||||||
|
|
||||||
|
## Passaggi
|
||||||
|
|
||||||
|
### 1. Secrets
|
||||||
|
|
||||||
|
Crea i seguenti secrets nel repository (`Settings → Actions → Secrets`):
|
||||||
|
|
||||||
|
| Secret | Valore | Descrizione |
|
||||||
|
|---|---|---|
|
||||||
|
| `TOKEN` | Token API Gitea | Permette all'action di applicare label e commentare |
|
||||||
|
| `OPENCODE_API_KEY` | API key OpenCode | Autenticazione per il provider AI |
|
||||||
|
|
||||||
|
### 2. Labels
|
||||||
|
|
||||||
|
Crea le label `bug` e `richiesta` (o verifica che esistano):
|
||||||
|
|
||||||
|
```
|
||||||
|
bug #ee0701 Malfunzionamento, errore, crash o anomalia
|
||||||
|
richiesta #007bff Nuova funzionalità, miglioramento o ottimizzazione
|
||||||
|
```
|
||||||
|
|
||||||
|
Se il repo ha già label simili con nomi diversi, unificarle sulla versione minuscola per evitare ambiguità col triage.
|
||||||
|
|
||||||
|
### 3. Workflow
|
||||||
|
|
||||||
|
Crea il file `.gitea/workflows/triage-issue.yml`:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
name: Triage Issue
|
||||||
|
|
||||||
|
on:
|
||||||
|
issues:
|
||||||
|
types: [opened]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
triage:
|
||||||
|
runs-on: linux_amd64
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: https://git.incloud.ovh/anuti/Actions/install-opencode@main
|
||||||
|
|
||||||
|
- uses: https://git.incloud.ovh/anuti/Actions/triage-issue@main
|
||||||
|
with:
|
||||||
|
issue-title: ${{ github.event.issue.title }}
|
||||||
|
issue-body: ${{ github.event.issue.body }}
|
||||||
|
issue-number: ${{ github.event.issue.number }}
|
||||||
|
repository: ${{ github.repository }}
|
||||||
|
api-token: ${{ secrets.TOKEN }}
|
||||||
|
api-key: ${{ secrets.OPENCODE_API_KEY }}
|
||||||
|
```
|
||||||
|
|
||||||
|
Se il runner ha una label diversa da `linux_amd64`, modificare `runs-on` di conseguenza.
|
||||||
|
|
||||||
|
### 4. Commit e push
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git add .gitea/workflows/triage-issue.yml
|
||||||
|
git commit -m "Aggiunge workflow triage automatico"
|
||||||
|
git push
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Test
|
||||||
|
|
||||||
|
Aprire una nuova issue sul repository. Entro pochi secondi il runner dovrebbe:
|
||||||
|
|
||||||
|
1. Classificare l'issue come `bug` o `richiesta`
|
||||||
|
2. Applicare la label corrispondente
|
||||||
|
3. Pubblicare un commento con riassunto, gap analisi e domande aperte
|
||||||
|
4. Caricare un file `.md` con l'analisi tecnica completa come asset dell'issue
|
||||||
|
|
||||||
|
### Troubleshooting
|
||||||
|
|
||||||
|
**Il workflow non parte**
|
||||||
|
- Verificare che `has_actions: true` sul repository (API: `PATCH /repos/{owner}/{repo}` con body `{"has_actions":true}`)
|
||||||
|
- Verificare che il runner sia online e abbia la label corretta
|
||||||
|
|
||||||
|
**Errore "secret not found"**
|
||||||
|
- Verificare che i secrets `TOKEN` e `OPENCODE_API_KEY` siano configurati
|
||||||
|
|
||||||
|
**Label non trovata**
|
||||||
|
- Il triage cerca label con nome esattamente `bug` e `richiesta`. Crearle se mancanti.
|
||||||
Reference in New Issue
Block a user