Commit graph

4 commits

Author SHA1 Message Date
Gemini
7ac1f8ac44 feat(2.0): Fase 1 — motor de templates de payload (design + engine + fallback 1.x)
- docs/DESIGN-2.0.md: decisões fechadas (tags PT, editor linha-a-linha,
  escopo global, dry-run com preview) e arquitetura Motor x Template
- PluginRedmineTemplateengine: render mustache-like ({{ var | filtro }}),
  regra de tipos (tag inteira = tipo nativo), lookup indexado
  (map.status[chamado.status]), filtros (truncar, sem_html, minusculo,
  identificador, padrao), prune de nulls, seeds 1.x-equivalentes e
  descoberta de custom fields obrigatórios
- tabela glpi_plugin_redmine_templates (operation único, is_active)
- wiring com precedência de template + fallback no render em
  create_issue, log_time e update_status
- validado: 12/12 unit + E2E (template ativo cria issue/tempo; template
  quebrado cai no motor 1.x sem perder lançamento)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 15:25:32 -03:00
Gemini
27ee6addeb docs: API.md — criação de projeto com custom_field_values e regras por instância
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 10:42:11 -03:00
Gemini
ecf175728f fix: compat GLPI 11.0.4 — troca Toolbox::logError por logInFile (1.5.2)
Toolbox::logError não existe no 11.0.4 -> erro fatal ao criar issue/lançar
tempo/garantir membership. Usa Toolbox::logInFile('redmine', ...).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 14:58:52 -03:00
Gemini
4a285f65ac docs: documentação de API para desenvolvedores (GLPI -> Redmine)
Endpoints, payloads, cabeçalhos, mapeamento de campos, impersonation,
idempotência e exemplos completos. Material de treino para a equipe.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 22:04:42 -03:00