Skip to content

chore(git): padroniza contribuição e verificações de pull requests - #33

Merged
Victorzinn704 merged 5 commits into
mainfrom
chore/32-padronizar-fluxo-git
Oct 11, 2026
Merged

Victorzinn704 merged 5 commits into
mainfrom
chore/32-padronizar-fluxo-git

Conversation

@Victorzinn704

@Victorzinn704 Victorzinn704 commented Oct 11, 2026 •

Copy link
Copy Markdown
Owner

Padroniza o fluxo individual de contribuição com issue, branch de trabalho, commits convencionais, PR e verificações obrigatórias. A main exige PR, resolução das conversas e checks aprovados, com zero aprovadores adicionais; force push e exclusão permanecem bloqueados.

Inclui templates de issue/PR, documentação do fluxo e validação dos metadados do PR. A validação de referência à issue verifica o formato; não certifica a existência da issue. Os checks técnicos existentes são preservados e o workflow de governança usa permissões somente de leitura.

O reparo de dependências #35 já foi integrado e incorporado nesta branch. A decisão temporária sobre braces, suas evidências e prazo de manutenção estão documentados nesse reparo. Este PR repete as verificações sobre o novo HEAD antes da integração.

Closes #32

@github-actions

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

Victorzinn704 added a commit that referenced this pull request Oct 11, 2026
…es (#35)

Corrige dependências vulneráveis e incompatibilidades dos consumidores,
e acrescenta uma mitigação temporária verificável para `braces@3.0.3`. A
auditoria bruta permanece em **37 achados: 20 moderados e 17 altos**; a
auditoria de produção permanece em **zero**. Os 17 altos da cadeia de
desenvolvimento só recebem `PASS_WITH_VERIFIED_BACKPORT` quando todas as
provas passam. O advisory do GitHub continua visível; nome e versão do
pacote não são falsificados.

Closes #34
Relacionado a #32 e #33. A remoção/revisão do backport é acompanhada em
#36, que deve permanecer aberta.

### Dependências e compatibilidade

- Atualiza o lock sem `--force`/`--legacy-peer-deps`, preservando Prisma
6.19.3 e as ferramentas de análise. A auditoria anterior tinha 92
achados, incluindo 38 altos e 5 críticos.
- Atualiza OpenTelemetry 0.223/2.12 e adapta o processor de logs,
coberto por exportação HTTP real para coletor local. Convenções HTTP
estáveis podem exigir ajustes em dashboards externos que dependam dos
nomes antigos.
- Atualiza Sharp/PostCSS/Vite/protobufjs e restringe overrides de major
a `@prisma/config -> deepmerge-ts 8.0.2` e `@nestjs/swagger -> js-yaml
5.4.3`, com consumidores reais revisados. Remove `@swc/cli` sem uso pelo
build TSC.
- Corrige compatibilidade de tipos e três transições de estado React,
com cinco regressões incluindo SSR e NaN. Dez arquivos receberam apenas
ajustes do novo Prettier; o JavaScript emitido dos nove TS/TSX foi
comparado sem diferenças.
- Declara Node 22 em engines e `.nvmrc`; eleva os pisos diretos de Next
16.4.0, Vitest/coverage-v8 4.1.11 e PostCSS 8.5.29 às versões já
resolvidas, sem trocar entradas instaladas, tarballs ou SRI.

### Backport e controles

- Aplica somente cinco arquivos do delta de segurança do [PR upstream
#87](micromatch/braces#87), sobre o tarball
oficial 3.0.3. Não incorpora outras mudanças posteriores à release. A
licença MIT é preservada.
- Inventaria lock, workspaces, aliases e cópias físicas; confere os dez
arquivos originais, arquivos extras, integridades e árvores completas.
Recusa adulteração, patch parcial, cópia extra e escape por symlink.
Aplicação é idempotente; o gate verifica sem reparar.
- Preserva resultados brutos full/runtime, exit codes e stderr como
artefatos com upload `always()`. Confere advisory oficial, versão latest
do registry, lock revisado e regressões reais por cópia. Erro de rede,
mudança de advisory/fonte/lock, novo high/critical, runtime
high/critical, ausência de prova ou regressão falham.
- Mantém o nome obrigatório **Security Checks**, adicionando testes
adversariais e o wrapper. Mantém scanners consultivos;
`security:audit-runtime` executa audit estrito, substituindo a allowlist
histórica ampla.
- Instalação `--omit=dev` permite zero cópias exclusivamente dev; isso
não conta como prova do gate full. Prepare mantém Husky em
desenvolvimento e o dispensa quando omitido.
- Revisão técnica automatizada por Codex nesta sessão, dentro da
manutenção autorizada, sem alegar aprovação humana específica. Expira ao
fim de **10/11/2026 em Brasília: 11/11 às 00:00 BRT, 03:00 UTC**. Sem
renovação automática; instalação também falha após o prazo. Ver [decisão
e
limites](https://github.com/Victorzinn704/Desk-Imperial-Open-Source/blob/6379d8b4cdfbc50d21434519e4b829ab36a34608/docs/security/braces-backport-2026-10-11.md).

### Validação desta integração

Windows, **Node 22.23.3**:

- `npm ci`: 1.713 pacotes, cerca de 2 minutos; postinstall aplicou e
verificou a cópia. Após alinhamento dos pisos, aplicação idempotente
passou no lock revisado.
- `npm ci --omit=dev`, em exportação isolada do índice: 708 pacotes,
140,66 s, zero cópias de braces; prepare passou com HUSKY não definido.
- Prisma Client 6.19.3 gerado; 149/149 testes de
integridade/política/runner passaram. O experimento isolado do backport
passou 778 testes e comparou 383 casos, com 108 padrões ordinários
idênticos antes/depois.
- Gate real, com GitHub e registry consultados: passou em 20,37 s; raw
37, mitigados 17, runtime 0; 104 assertivas reais na cópia instalada,
com verificação antes/depois e relatórios originais preservados.
- API completa: 84 suítes, 904 testes passaram e 1 skipped; inclui o
coletor OTLP real. A primeira execução concorrente teve timeout OTLP e
duas falhas de espera na interface; a API completa e os 10 testes do
arquivo de interface passaram isolados, sem mudar timeouts ou código de
produto.
- Web completa com `--maxWorkers=2`: 128 arquivos, 896 testes passaram.
A repetição com workers padrão teve 895/896; o mesmo arquivo passou
10/10 isolado. O comando original da CI foi preservado, sem aumentar
timeouts ou alterar testes.
- Gulp real leu e filtrou uma fixture com glob de chaves, comparando
nomes e conteúdos. Knip passou; jscpd analisou 602 arquivos, com 1,79%
de linhas duplicadas abaixo do limite de 3%. Para contornar a resolução
de separadores do jscpd no Windows, os mesmos seis caminhos da
configuração foram passados como argumentos relativos.
- Scan público passou para 1.674 arquivos. Prettier passou na exportação
do índice com LF; o checkout Windows com CRLF mantém diferenças locais
de fim de linha. Hooks normais de commit passaram: Gitleaks e Prettier
executaram; Biome/ESLint não tiveram TS/TSX nestes commits.
- O helper de bindings nativos deixou de executar `npm install
--no-save`, que reorganizava a árvore fora do lock. Agora confere
caminhos reais, entradas/versões do lock e resolução pelo parent antes
de carregar o binding; ausência ou incompatibilidade falham. Nove testes
externos de fixtures passaram, incluindo versão nested vs raiz, falta,
identidade, lock divergente e escapes; o carregamento dos binários GNU
reais depende do CI Linux desta revisão.
- Build API (`build:verify`, incluindo validação Prisma) e build de
produção Next 16.4.0 passaram com Node 22.23.3. Foram usadas URLs locais
de teste para DATABASE/DIRECT/API; nenhum deploy foi executado. O
arquivo `next-env.d.ts` regenerado foi restaurado, preservando o diff
revisado.

No [CI Linux do head
`486507678f8702bc646250426dd6e5c6dda13779`](https://github.com/Victorzinn704/Desk-Imperial-Open-Source/actions/runs/38160165833),
**Frontend Unit Tests, Backend Tests, Quality (Lint + Typecheck) e
Security Checks passaram**; os demais checks ainda precisam concluir. O
teste web da CI usou seu comando original. Na rodada imediatamente
anterior (`6379d8b`), Security Checks passou, mas sete jobs consumidores
foram bloqueados pela verificação que detectou o helper antigo movendo
uma binding para um caminho não registrado no lock. Esse helper foi
corrigido no novo head; não foi relaxado o guard. O PR permanece
**draft**, sem merge ou deployment.

Limites: o patch limita profundidade de padrões/ASTs do parser e ciclos
percorridos; não promete resolver expansão cartesiana nem objetos
JavaScript arbitrários. O inventário prova pacotes npm identificáveis,
não código copiado e renomeado como aplicação. Requer instalação
exclusiva, sem escritores concorrentes. [Advisory ainda
aberto](GHSA-vfj7-8cjw-p6xm).
@Victorzinn704
Victorzinn704 merged commit 0edbb32 into main Oct 11, 2026
24 checks passed
@Victorzinn704
Victorzinn704 deleted the chore/32-padronizar-fluxo-git branch October 11, 2026 17:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore(git): padronizar contribuição e proteger a main

1 participant