release: promove develop pra produção (Quality Intelligence, Analytics Builder, Painel Executivo, identidade via Authentik, datasets, Storybook, CI e docs) #69

Merged
jhony75 merged 23 commits from develop into main 2026-09-11 05:19:36 -03:00
Owner

O que é

Promove pra produção tudo que já está validado em develop — o dev estava adiantado em ~9 PRs de features/CI/docs em relação ao main, desde que a PR #67 (Authentik forward-auth + rede do Ollama) foi mergeada direto em main, pulando o fluxo normal. A PR #68 já reconciliou essa divergência de infra; esta PR traz o restante.

Principais mudanças

  • Item 14 do roadmap — identidade via Authentik (forward-auth) e audit log (#66): o backend passa a consumir os headers do Authentik (X-authentik-username, X-authentik-email, etc.) pra identificar o usuário autenticado e registrar log de auditoria das ações. Complementa a infra da PR #67/#68 (que já habilita o forward-auth no Traefik).
  • Painel Executivo e análise de impacto — itens 12 e 13 do roadmap (#65).
  • Construtor de Analytics customizado — item 11 do roadmap (#62).
  • Quality Intelligence — item 10 do roadmap (#60).
  • Datasets de cenário (linhas de dado por cenário) — item 9 do roadmap (#58).
  • Storybook exposto em /storybook no ambiente de dev (#61).
  • fix: evita cache heurístico do navegador em GETs com Last-Modified (#59).
  • ci: build das 3 imagens em paralelo + cache do binário do Trivy (#64).
  • docs: fluxo completo de uso ponta a ponta no USER_GUIDE (#63).

Pendências conhecidas (não bloqueiam esta PR)

  • AI_BASE_URL/AI_MODEL continuam vazios em produção (já eram antes) — a conectividade com o Ollama via ollama_net está pronta desde a PR #67, falta só popular essas variáveis quando o modelo a usar for decidido.

Verificação

  • git merge-tree entre develop e main: sem conflitos.
  • Após o merge da PR #68, develop..main está vazio — ou seja, este merge é estritamente aditivo, nada de produção é perdido ou sobrescrito de forma inesperada.
## O que é Promove pra produção tudo que já está validado em `develop` — o dev estava adiantado em ~9 PRs de features/CI/docs em relação ao `main`, desde que a PR #67 (Authentik forward-auth + rede do Ollama) foi mergeada direto em `main`, pulando o fluxo normal. A PR #68 já reconciliou essa divergência de infra; esta PR traz o restante. ## Principais mudanças - **Item 14 do roadmap — identidade via Authentik (forward-auth) e audit log** (#66): o backend passa a consumir os headers do Authentik (`X-authentik-username`, `X-authentik-email`, etc.) pra identificar o usuário autenticado e registrar log de auditoria das ações. Complementa a infra da PR #67/#68 (que já habilita o forward-auth no Traefik). - **Painel Executivo e análise de impacto** — itens 12 e 13 do roadmap (#65). - **Construtor de Analytics customizado** — item 11 do roadmap (#62). - **Quality Intelligence** — item 10 do roadmap (#60). - **Datasets de cenário** (linhas de dado por cenário) — item 9 do roadmap (#58). - **Storybook exposto em `/storybook`** no ambiente de dev (#61). - **fix:** evita cache heurístico do navegador em GETs com `Last-Modified` (#59). - **ci:** build das 3 imagens em paralelo + cache do binário do Trivy (#64). - **docs:** fluxo completo de uso ponta a ponta no `USER_GUIDE` (#63). ## Pendências conhecidas (não bloqueiam esta PR) - `AI_BASE_URL`/`AI_MODEL` continuam vazios em produção (já eram antes) — a conectividade com o Ollama via `ollama_net` está pronta desde a PR #67, falta só popular essas variáveis quando o modelo a usar for decidido. ## Verificação - `git merge-tree` entre `develop` e `main`: sem conflitos. - Após o merge da PR #68, `develop..main` está vazio — ou seja, este merge é estritamente aditivo, nada de produção é perdido ou sobrescrito de forma inesperada.
feat: item 9 do roadmap -- datasets (linhas de dado por cenario)
All checks were successful
EEG QA CI / Detectar o que mudou (pull_request) Successful in 12s
EEG QA CI / Backend (pull_request) Successful in 2m8s
EEG QA CI / Frontend (pull_request) Successful in 2m24s
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 1m58s
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
56e6f5f8cc
Cada cenario da biblioteca ganha linhas de dado opcionais (rotulo +
pares chave/valor de metadado, sem templating no texto dos passos --
decisao explicita do usuario). Ao adicionar um cenario com dataset a um
Run, um checklist deixa escolher quais linhas viram execucoes
separadas (POST /api/runs/{id}/scenarios/from-dataset), cada uma
rastreavel por dataset_row_id e com o rotulo no nome -- sem alterar o
endpoint/comportamento existente de adicionar cenario avulso.
fix: evita cache heuristico do navegador em GETs com Last-Modified
All checks were successful
EEG QA CI / Detectar o que mudou (pull_request) Successful in 14s
EEG QA CI / Backend (pull_request) Successful in 1m16s
EEG QA CI / Frontend (pull_request) Has been skipped
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 53s
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
b47c463d5e
Last-Modified em GET/PUT so existe pra alimentar If-Unmodified-Since
(concorrencia otimista) e nao e bumpado quando uma colecao filha
embutida na resposta muda (ex.: cenarios de um Run) -- de proposito,
pra nao gerar 412 espurio num PUT que so toca campos do pai. Sem
Cache-Control, porem, o navegador aplica cache heuristico (RFC 7234)
sobre esse header e pode servir um GET desatualizado por horas depois
de uma mudanca na colecao filha. Cache-Control: no-store no helper
compartilhado cobre os 5 routers que usam esse padrao (runs, reports,
issues, requirements, technical-validations) sem tocar na semantica
de concorrencia.
feat: item 10 do roadmap -- Quality Intelligence
All checks were successful
EEG QA CI / Backend (pull_request) Successful in 1m18s
EEG QA CI / Detectar o que mudou (pull_request) Successful in 22s
EEG QA CI / Frontend (pull_request) Successful in 2m2s
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 1m21s
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
0e26aa39ad
Agregacoes read-only sobre execucao real de testes (TestRun/
TestRunScenario/TestRunStep), sem tabela nova. Cada endpoint responde
uma pergunta concreta, decisoes de escopo confirmadas com o usuario:

- Taxa de aprovacao por build, ao longo do tempo.
- Cenarios instaveis (flaky), falha persistente (recorrencia = 2+
  falhas seguidas do mesmo cenario, nao achado reaberto -- isso fica
  pro item 14 quando tiver log de auditoria) e hotspots, todos
  derivados de uma unica lista de saude por cenario.
- Falhas por classificacao (produto/automacao/ambiente/etc).
- Cobertura e taxa de aprovacao por tag (area = tag, decisao
  confirmada).
- Regressoes (passou no build anterior, falhou no atual) e um resumo
  de saude geral (taxa de aprovacao + regressoes + flaky + falhas
  persistentes lado a lado, sem compor um score unico).
- Duracao media por build, so quando ha amostra de automacao.

Nova pagina /qualidade (Quality Intelligence) no frontend, reaproveita
recharts/Tabs/StatCard/CoverageStatus ja existentes. Corrige lacuna de
teste pre-existente: jsdom nao tem ResizeObserver, usado pelo
ResponsiveContainer do recharts -- adiciona um stub minimo no setup
global de teste (nenhum componente com grafico tinha teste antes).
chore: expoe o Storybook em /storybook (mesmo container do frontend)
All checks were successful
EEG QA CI / Backend (pull_request) Successful in 1m23s
EEG QA CI / Frontend (pull_request) Successful in 2m42s
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 2m34s
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
EEG QA CI / Detectar o que mudou (pull_request) Successful in 12s
2e042837bc
npm run build-storybook passa a rodar junto do build do frontend
(Dockerfile) e o resultado e servido em /storybook pelo mesmo nginx --
mesmo dominio/auth do app, sem rota nova no Traefik nem env var nova.
Link "Abrir Storybook" adicionado em Dev Tools, ao lado do link de
Swagger ja existente. CI ganha um step "build-storybook" explicito no
job de Frontend (antes so rodava, sem gate, no docker build do job de
publicacao) -- assim um Storybook quebrado falha rapido, nao so tarde
no build da imagem de deploy.
feat: item 11 do roadmap -- construtor de analytics customizado
All checks were successful
EEG QA CI / Frontend (pull_request) Successful in 2m6s
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Detectar o que mudou (pull_request) Successful in 8s
EEG QA CI / Backend (pull_request) Successful in 1m32s
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 1m25s
EEG QA CI / Deploy development (pull_request) Has been skipped
55df2beed1
GET /api/analytics/custom deixa o usuario escolher assunto (Report ou
Achado), metrica (contagem, e nota media so pra Report), quebra
(status/fabricante/build/tipo/ambiente/tag/mes pra Report; status/
categoria/severidade/tag/mes pra Achado) e os mesmos filtros que as
listagens ja usam -- em vez de um grafico fixo pre-definido.

Decisoes de escopo confirmadas com o usuario: so Report+Achado por ora
(reaproveita apply_report_filters ja existente); category/severidade
so valem como quebra de Achado, nunca de Report (um report pode ter
achados de categorias diferentes, quebra por report ficaria ambigua --
seguem valendo como FILTRO de Report, comportamento ja existente);
graficos sao efemeros, nada persiste no backend -- a ultima
configuracao escolhida fica so no localStorage do navegador.

Nova pagina /analytics-customizado, reaproveita recharts/CATEGORIES/
SEVERITIES/STATUSES ja existentes. Adiciona htmlFor/id nos campos do
formulario (ganho real de acessibilidade, gap pre-existente no padrao
`.field` usado no resto do app).
Merge pull request 'feat: item 9 do roadmap -- datasets (linhas de dado por cenario)' (#58) from feature/scenario-datasets into develop
Some checks failed
EEG QA CI / Backend (push) Has been cancelled
EEG QA CI / Frontend (push) Has been cancelled
EEG QA CI / Build e publicação de imagens (push) Has been cancelled
EEG QA CI / Deploy production (push) Has been cancelled
EEG QA CI / Deploy development (push) Has been cancelled
EEG QA CI / Detectar o que mudou (push) Has been cancelled
529de88260
Reviewed-on: #58
Merge pull request 'fix: evita cache heuristico do navegador em GETs com Last-Modified' (#59) from fix/stale-get-cache into develop
Some checks failed
EEG QA CI / Detectar o que mudou (push) Has been cancelled
EEG QA CI / Backend (push) Has been cancelled
EEG QA CI / Frontend (push) Has been cancelled
EEG QA CI / Build e publicação de imagens (push) Has been cancelled
EEG QA CI / Deploy production (push) Has been cancelled
EEG QA CI / Deploy development (push) Has been cancelled
592e6ccc53
Reviewed-on: #59
Merge pull request 'feat: item 10 do roadmap -- Quality Intelligence' (#60) from feature/quality-intelligence into develop
Some checks failed
EEG QA CI / Detectar o que mudou (push) Has been cancelled
EEG QA CI / Backend (push) Has been cancelled
EEG QA CI / Frontend (push) Has been cancelled
EEG QA CI / Build e publicação de imagens (push) Has been cancelled
EEG QA CI / Deploy production (push) Has been cancelled
EEG QA CI / Deploy development (push) Has been cancelled
b844830397
Reviewed-on: #60
Merge pull request 'chore: expoe o Storybook em /storybook em dev' (#61) from chore/storybook-dev-access into develop
All checks were successful
EEG QA CI / Detectar o que mudou (push) Successful in 7s
EEG QA CI / Backend (push) Successful in 1m37s
EEG QA CI / Frontend (push) Successful in 4m20s
EEG QA CI / Build e publicação de imagens (push) Successful in 2m59s
EEG QA CI / Deploy production (push) Has been skipped
EEG QA CI / Deploy development (push) Successful in 38s
0570598827
Reviewed-on: #61
Merge remote-tracking branch 'origin/develop' into feature/custom-analytics-builder
Some checks failed
EEG QA CI / Detectar o que mudou (pull_request) Successful in 10s
EEG QA CI / Backend (pull_request) Successful in 1m29s
EEG QA CI / Frontend (pull_request) Successful in 3m4s
EEG QA CI / Build e publicação de imagens (pull_request) Failing after 14m27s
EEG QA CI / Deploy production (pull_request) Has been cancelled
EEG QA CI / Deploy development (pull_request) Has been cancelled
5bb61a33cb
# Conflicts:
#	frontend/src/test/setup.ts
#	frontend/src/types/models.ts
docs: adiciona fluxo completo de uso, do cenario ao relatorio
All checks were successful
EEG QA CI / Detectar o que mudou (pull_request) Successful in 6s
EEG QA CI / Frontend (pull_request) Has been skipped
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 51s
EEG QA CI / Deploy development (pull_request) Has been skipped
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Backend (pull_request) Has been skipped
7073c3874e
USER_GUIDE.md ate agora era só por tarefa isolada -- faltava um fio
condutor mostrando como as pecas se encaixam de ponta a ponta (Library
-> Requirements -> Run -> Issues -> Traceability -> Report -> Quality
Intelligence -> Custom Analytics). Texto usa os rotulos exatos da UI
atual, verificados direto no codigo dos componentes.
ci: re-trigger apos reinicio do runner (job anterior morreu no restart)
All checks were successful
EEG QA CI / Detectar o que mudou (pull_request) Successful in 6s
EEG QA CI / Backend (pull_request) Successful in 1m34s
EEG QA CI / Frontend (pull_request) Successful in 3m32s
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 1m19s
EEG QA CI / Deploy development (pull_request) Has been skipped
EEG QA CI / Deploy production (pull_request) Has been skipped
73249aae03
ci: builda as 3 imagens em paralelo e cacheia o binario do Trivy
All checks were successful
EEG QA CI / Detectar o que mudou (pull_request) Successful in 9s
EEG QA CI / Backend (pull_request) Successful in 1m38s
EEG QA CI / Frontend (pull_request) Successful in 3m20s
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 1m16s
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
d3fb5ee3b5
"Build application images" buildava backend/frontend/docs em
sequencia, apesar de nenhuma depender da outra -- agora rodam em
paralelo (subshells + wait), log de cada uma capturado e impresso em
grupo separado no final, step falha se qualquer uma falhar.

O binario do Trivy era reinstalado via curl a cada push, todo dia,
mesmo sem mudanca nenhuma -- agora cacheado por data (mesma cadencia
ja usada pro banco de vulnerabilidade), so reinstala se o cache nao
tiver o binario.

Nao inclui: cache de camada docker entre execucoes -- confirmado ao
investigar que ja funciona por conta propria (pip install/npm ci
aparecem como CACHED no log real de um build), nada a fazer ali.
Merge pull request 'feat: item 11 do roadmap -- construtor de analytics customizado' (#62) from feature/custom-analytics-builder into develop
Some checks failed
EEG QA CI / Backend (push) Has been cancelled
EEG QA CI / Frontend (push) Has been cancelled
EEG QA CI / Build e publicação de imagens (push) Has been cancelled
EEG QA CI / Deploy production (push) Has been cancelled
EEG QA CI / Deploy development (push) Has been cancelled
EEG QA CI / Detectar o que mudou (push) Has been cancelled
17037e5462
Reviewed-on: #62
Merge pull request 'docs: adiciona fluxo completo de uso no USER_GUIDE' (#63) from docs/end-to-end-usage-flow into develop
Some checks failed
EEG QA CI / Backend (push) Has been cancelled
EEG QA CI / Frontend (push) Has been cancelled
EEG QA CI / Build e publicação de imagens (push) Has been cancelled
EEG QA CI / Deploy production (push) Has been cancelled
EEG QA CI / Deploy development (push) Has been cancelled
EEG QA CI / Detectar o que mudou (push) Has been cancelled
8c4a6c01a2
Reviewed-on: #63
Merge pull request 'ci: builda as 3 imagens em paralelo e cacheia o binario do Trivy' (#64) from ci-parallel-image-builds-and-trivy-cache into develop
All checks were successful
EEG QA CI / Detectar o que mudou (push) Successful in 25s
EEG QA CI / Backend (push) Successful in 4m13s
EEG QA CI / Frontend (push) Successful in 6m7s
EEG QA CI / Build e publicação de imagens (push) Successful in 2m14s
EEG QA CI / Deploy production (push) Has been skipped
EEG QA CI / Deploy development (push) Successful in 37s
ebd0d4fb47
Reviewed-on: #64
feat: itens 12 e 13 do roadmap -- painel executivo e analise de impacto
All checks were successful
EEG QA CI / Detectar o que mudou (pull_request) Successful in 15s
EEG QA CI / Backend (pull_request) Successful in 3m24s
EEG QA CI / Frontend (pull_request) Successful in 4m31s
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 2m24s
EEG QA CI / Deploy development (pull_request) Has been skipped
EEG QA CI / Deploy production (pull_request) Has been skipped
990f9a9721
Reaproveita quase tudo do item 10 (build_groups/scenario_health_rows/
regressions ja existentes), sem tabela nova. Decisoes de escopo
confirmadas com o usuario:

- "Area degradando" (item 12) = tendencia de aprovacao por build
  quebrada por tag (area = tag, mesma decisao do item 10), comparando
  os 2 ultimos builds com dado.
- "Regressao recorrente" (item 12) = cenario que regrediu (PASS ->
  FAIL) em 2+ transicoes de build diferentes ao longo de todo o
  historico, nao so a comparacao build atual vs. anterior que
  regressions() ja faz.
- "Critico" (item 12) = falha persistente (2+ execucoes seguidas) E
  vinculado a pelo menos um Requirement ativo -- cruza "ta quebrado"
  com "importa pro negocio".
- "Hotspot por area" = soma de falhas por tag, serve tanto o item 12
  ("onde esta o risco") quanto o item 13 ("onde estao os hotspots").

Audit confirmou que o item 13 (analise de impacto/grafo conceitual)
praticamente nao precisa de backend novo: a matriz de rastreabilidade
(/api/traceability/matrix) e a listagem de achados (/api/issues, que
ja expoe tags) ja tem tudo que "requisitos com cenario falhando" e
"achados cruzando multiplas areas" precisam -- so filtro/agrupamento
no frontend, sem endpoint novo.

5 funcoes novas em services/quality_intelligence.py + 5 endpoints em
modules/quality_intelligence/. Nova pagina /painel-executivo com 2
abas (Visao executiva / Analise de impacto). Nome/rota deliberadamente
longe de "Resumo executivo (PDF)" ja existente em Metrics.tsx -- esse
e sobre Reports/Issues (documentacao manual de QA), dominio
completamente diferente do painel novo (saude de execucao de testes).
Merge pull request 'feat: itens 12 e 13 do roadmap -- painel executivo e an�lise de impacto' (#65) from feature/executive-panel-impact-analysis into develop
All checks were successful
EEG QA CI / Detectar o que mudou (push) Successful in 7s
EEG QA CI / Backend (push) Successful in 1m33s
EEG QA CI / Frontend (push) Successful in 2m57s
EEG QA CI / Build e publicação de imagens (push) Successful in 56s
EEG QA CI / Deploy production (push) Has been skipped
EEG QA CI / Deploy development (push) Successful in 32s
4ab29cdea8
Reviewed-on: #65
feat: item 14 do roadmap -- identidade via Authentik (forward-auth) e audit log
Some checks failed
EEG QA CI / Detectar o que mudou (pull_request) Successful in 12s
EEG QA CI / Frontend (pull_request) Successful in 2m56s
EEG QA CI / Build e publicação de imagens (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Backend (pull_request) Failing after 1m30s
5f12bba72b
Backend le identidade via headers X-authentik-* (forward-auth no Traefik,
services/identity.py), com fallback de dev (DEV_FAKE_USER) que se recusa a
funcionar se ENVIRONMENT=production por engano. Report.reviewer/approved_by e
TestRun.executed_by deixam de aceitar texto livre e passam a ser
auto-preenchidos a partir da identidade capturada. Novo modules/audit_log/
registra historico de mudanca de Report.status, Issue.status/severity e
TestRun.status (GET /api/audit-log). Infra do lado do Authentik/Traefik ainda
depende de um passo fora deste repo -- ver ADR-0014.

Corrige tambem uma imprecisao de nomenclatura que já existia em varios docs
("Authelia" em vez de "Authentik" como mecanismo de auth planejado).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
fix: atualiza expect-alembic do restore drill para a migration da auditoria
All checks were successful
EEG QA CI / Detectar o que mudou (pull_request) Successful in 9s
EEG QA CI / Backend (pull_request) Successful in 1m43s
EEG QA CI / Frontend (pull_request) Successful in 3m18s
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 2m7s
EEG QA CI / Deploy development (pull_request) Has been skipped
EEG QA CI / Deploy production (pull_request) Has been skipped
b79f4434ea
O drill de restore do CI trava a versao esperada do Alembic head num
argumento hardcoded -- esqueci de atualizar ao adicionar a migration
d09a77ddaa17 (audit_log_entries), o que quebrou o job Backend na PR #66.
Confirmado localmente que o drill passa (37 tabelas) com o valor corrigido.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Merge pull request 'feat: item 14 do roadmap -- identidade via Authentik (forward-auth) e audit log' (#66) from feature/audit-log-authentik into develop
Some checks failed
EEG QA CI / Detectar o que mudou (push) Successful in 15s
EEG QA CI / Backend (push) Successful in 3m43s
EEG QA CI / Frontend (push) Failing after 3m55s
EEG QA CI / Build e publicação de imagens (push) Has been skipped
EEG QA CI / Deploy development (push) Has been skipped
EEG QA CI / Deploy production (push) Has been skipped
361bb6260a
Reviewed-on: #66
ci: re-trigger apos timeout de teste sob carga no job Frontend
All checks were successful
EEG QA CI / Detectar o que mudou (push) Successful in 11s
EEG QA CI / Backend (push) Has been skipped
EEG QA CI / Frontend (push) Has been skipped
EEG QA CI / Build e publicação de imagens (push) Successful in 1m3s
EEG QA CI / Deploy production (push) Has been skipped
EEG QA CI / Deploy development (push) Successful in 39s
1d1d689bf7
Job Frontend do merge commit anterior (361bb62, PR #66) falhou por timeout
de 5s em 3 testes (ReportForm, TechnicalValidationForm, Sidebar) que não
têm relação entre si nem com as mudanças do item 14 -- rodaram certinho
localmente e na propria CI da PR minutos antes. Flakiness de runner sob
carga, mesmo padrao ja visto nesta sessao. Re-disparando pra confirmar.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Merge pull request 'chore: leva a mudança de infra do main (Authentik forward-auth + ollama_net) pro develop' (#68) from main into develop
All checks were successful
EEG QA CI / Backend (push) Has been skipped
EEG QA CI / Detectar o que mudou (push) Successful in 7s
EEG QA CI / Frontend (push) Has been skipped
EEG QA CI / Build e publicação de imagens (push) Successful in 1m13s
EEG QA CI / Deploy production (push) Has been skipped
EEG QA CI / Deploy development (push) Successful in 25s
EEG QA CI / Detectar o que mudou (pull_request) Successful in 15s
EEG QA CI / Backend (pull_request) Successful in 1m49s
EEG QA CI / Frontend (pull_request) Successful in 3m58s
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 1m12s
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
e5e52b69ec
Reviewed-on: #68
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jhony75/eeg-qa!69
No description provided.