Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BoardSync

Sincronizza elementi tra board diverse: GitHub Projects (v2), Jira, Azure DevOps e file CSV.

  • Frontend: Angular 20 (componenti standalone, signals)
  • Backend: .NET 10 Web API
  • GitHub Projects è integrato tramite GitHub CLI (gh); Jira e Azure DevOps tramite REST API; CSV su file locale.

Avvio

# Backend (porta 5093)
dotnet run --project backend/BoardSync.Api

# Frontend (porta 4200, proxy /api -> 5093)
cd frontend && npx ng serve

Poi apri http://localhost:4200.

Prerequisiti

  • .NET 10 SDK, Node.js ≥ 22
  • Per GitHub Projects: GitHub CLI installata e autenticata con lo scope project:
    gh auth login
    gh auth refresh -s project

Concetti

Connessioni

Una connessione è una board concreta. Impostazioni per provider:

Provider Impostazioni
GitHub Project owner, projectNumber
Jira baseUrl, email, apiToken, projectKey, issueType (opz.)
Azure DevOps organizationUrl, project, pat, workItemType (opz.)
CSV filePath, delimiter (opz., default ,)

Template

Un template definisce il mapping tra i campi nativi del provider e i campi canonici di BoardSync (title, description, status, assignee, priority, dueDate, labels), più il mapping degli stati e i default in scrittura (es. issueType: Bug). La direzione (Input / Output / Entrambi) stabilisce dove il template è selezionabile. Per ogni provider esiste un template predefinito, duplicabile e personalizzabile.

Sincronizzazione

Nella pagina Sincronizzazione si selezionano: connessione di origine + template di input, connessione di destinazione + template di output. È disponibile l'anteprima degli elementi letti, la simulazione (dry run) e l'opzione per saltare gli elementi già presenti nella destinazione (confronto per titolo, che rende la sincronizzazione rieseguibile senza duplicati).

API principali

Endpoint Descrizione
GET/POST/PUT/DELETE /api/connections CRUD connessioni
GET/POST/PUT/DELETE /api/templates CRUD template (?provider=, ?direction=)
GET /api/providers Metadati provider (guida il form dinamico)
GET /api/sync/preview?connectionId=&templateId= Anteprima elementi dall'origine
POST /api/sync/run Esegue la sincronizzazione (supporta dryRun)

I dati (connessioni e template) sono persistiti come JSON in backend/BoardSync.Api/data/.

Nota: i token (Jira apiToken, Azure DevOps pat) sono salvati in chiaro nei file JSON locali. L'app è pensata per uso locale/single-user; non esporla così com'è su una rete condivisa.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages