Atenção: Este conteúdo foi traduzido automaticamente. Enviar feedback

Changelog ao Vivo

Uma página de changelog que se atualiza automaticamente após cada commit via GitHub Actions. Analisa commits convencionais e exibe o histórico de desenvolvimento.

Role: Desenvolvedordez. de 2025

Uma linha do tempo detalhada do desenvolvimento, extraída do histórico de commits do Git. Esta página se atualiza automaticamente após cada push para a branch main.

Carregando changelog...

Como Funciona

O changelog utiliza um workflow do GitHub Actions que:

  1. Dispara no push — Cada push para main executa o workflow
  2. Analisa o histórico git — Extrai hash do commit, autor, data e mensagem
  3. Categoriza commits — Detecta tipos de commits convencionais (feat, fix, chore, etc.)
  4. Atualiza dados JSON — Grava em data/changelog.json
  5. Faz commit das mudanças — Usa [skip ci] para evitar loops infinitos

Tech Stack

ComponenteTecnologiaPropósito
AutomaçãoGitHub ActionsDisparar no push para main
ScriptTypeScript + tsxAnalisar git log e gerar JSON
DadosJSONArmazenar dados de commits
RenderizaçãoNext.js Server ComponentPágina dinâmica com suporte a idiomas
i18nnext-intlFormatação de data por idioma

Análise de Commits Convencionais

O script reconhece prefixos padrão de commits convencionais:

  • feat: — Novas funcionalidades
  • fix: — Correções de bugs
  • chore: — Tarefas de manutenção
  • docs: — Atualizações de documentação
  • refactor: — Refatoração de código
  • style: — Mudanças de estilo
  • test: — Atualizações de testes
  • perf: — Melhorias de performance

Os commits são categorizados automaticamente e estatísticas são calculadas.

Prevenção de Loops

O GitHub Action evita loops infinitos através de:

  1. Adicionando [skip ci] à mensagem do commit
  2. Verificando if: "!contains(github.event.head_commit.message, '[skip ci]')" no workflow

Arquivos

.github/workflows/update-changelog.yml  # GitHub Action
scripts/generate-changelog.ts           # Script de geração
data/changelog.json                     # Dados gerados
lib/types/changelog.ts                  # Tipos TypeScript
app/[locale]/changelog/page.tsx         # Componente da página
components/changelog-stats.tsx          # Componente de estatísticas
components/changelog-table.tsx          # Componente de tabela

Outcomes

  • Workflow do GitHub Actions dispara em cada push para main
  • Análise de commits convencionais (feat, fix, chore, etc.)
  • Commits agrupados por data com formatação de acordo com o idioma
  • Suporte completo a i18n em 5 idiomas

Links