feat(jira): issue_type config + labels_map + status_map default DATA + transition tras create
- jiraConfig: campos IssueType + LabelsMap (kanban col -> labels Jira). Default IssueType='Tarea Tecnica' (DATA project no tiene Task). - create(): usa c.IssueType y aplica labels iniciales. Despues del POST /issue ejecuta transitionToStatus para mover la card recien creada al status del status_map, asi no aterriza en el initial workflow status (CREADO o To Do) sino donde toca segun la columna kanban. - update() y transition(): aplican labels en cada sync (PUT replaces array). Card que sale de Bloqueadas pierde el label 'blocked' automaticamente. - transitionToStatus: helper compartido entre create() y transition(). - seed-jira-data: inyecta status_map por defecto para nuestras 6 columnas (HACIENDO -> In Progress, PNDNT FEEDBACK -> IMPLEMENTADO, HECHO -> Done, IDEAS -> CREADO, DEUDA TECNICA -> To Do, Bloqueadas -> In Progress) y labels_map (Bloqueadas -> ['blocked']). - modules_test: mock Jira tambien responde /transitions endpoints.
This commit is contained in:
+17
-1
@@ -57,13 +57,29 @@ func runSeedJiraData(args []string) error {
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
// Default mapping for our setup: Kanban columns → Jira `Epicas en Data` board (33)
|
||||
// statuses. Operator can edit via the Modulos UI once the row exists.
|
||||
statusMap := map[string]string{
|
||||
"HACIENDO 🚧": "In Progress",
|
||||
"PNDNT FEEDBACK ▶️": "IMPLEMENTADO",
|
||||
"HECHO ✅": "Done",
|
||||
"IDEAS 💡": "CREADO",
|
||||
"DEUDA TÉCNICA 🔄": "To Do",
|
||||
"Bloqueadas": "In Progress",
|
||||
}
|
||||
labelsMap := map[string][]string{
|
||||
"Bloqueadas": {"blocked"},
|
||||
}
|
||||
|
||||
cfg := JSONValue{
|
||||
"base_url": baseURL,
|
||||
"email": email,
|
||||
"api_token": token,
|
||||
"project_key": *project,
|
||||
"board_id": *board,
|
||||
"status_map": map[string]string{}, // operator fills via UI (column name → Jira status)
|
||||
"issue_type": "Tarea Técnica",
|
||||
"status_map": statusMap,
|
||||
"labels_map": labelsMap,
|
||||
}
|
||||
|
||||
// Upsert by name. Module name is the human-friendly identifier; we treat
|
||||
|
||||
Reference in New Issue
Block a user