Sobre o projeto
O GitHub Trending Reporter é um pequeno projeto de automação que transforma a página diária do GitHub Trending em um site de relatórios navegáveis e anotados por IA. Em uma execução agendada, ele coleta a lista de repositórios em alta, busca detalhes adicionais através da GitHub API, solicita que um modelo de linguagem grande (LLM) produza resumos concisos e observações de tendências, grava os resultados como relatórios Markdown e dados JSON, e então constrói e implanta um site Docusaurus no GitHub Pages. Toda a sequência é impulsionada por um fluxo de trabalho do GitHub Actions, portanto, nenhum passo manual é necessário após a configuração dos secrets.
Principais capacidades descritas no README:
- Raspagem automática do GitHub Trending, com opções para filtrar por linguagem de programação e escolher intervalos de tempo diários, semanais ou mensais.
- Análise opcional baseada em LLM que adiciona um resumo escrito por IA (aproximadamente 15-25 caracteres) a cada entrada de repositório.
- Apresentação visual através de um front-end Docusaurus, com relatórios armazenados como arquivos Markdown e dados brutos armazenados como JSON.
- Automação de ponta a ponta via GitHub Actions, abrangendo a coleta, enriquecimento, análise, geração de relatórios e implantação do site.
- Um endpoint de dados publicado, para que a mesma saída JSON possa ser consumida por agentes ou aplicações externas, em vez de ser apenas lida no website.
O repositório está organizado em um lado Python (main.py, trending_scraper.py, llm_analyzer.py, data_pusher.py, config.py, requirements.txt) e um lado Docusaurus/Node (src, docusaurus.config.js, package.json), com as pastas reports/ e data/ contendo a saída gerada e .github/workflows/daily_report.yml contendo o trabalho agendado.
Executá-lo localmente para a geração de relatórios requer a instalação das dependências Python, a cópia de .env.example para .env e o fornecimento de uma chave de API, invocando então o main.py com as flags --local e --no-push. A prévia do website utiliza o fluxo padrão npm install e npm start. A configuração é feita através de variáveis de ambiente para a chave do LLM, URL base e nome do modelo, além de tokens do GitHub usados para buscar informações detalhadas do repositório e para enviar os dados gerados. Os mesmos valores são esperados como secrets do GitHub Actions.
As opções de linha de comando incluem um filtro de linguagem, uma opção since para a janela de tendências, flags para pular o envio ou salvar localmente, um parâmetro de data explícito no formato AAAA-MM-DD e uma chave para pular a análise detalhada por projeto.
Para integrações, o projeto documenta dois padrões de URL: uma página de relatório HTML em reports/AAAA/MM/AAAA-MM-DD e um arquivo JSON bruto em data/AAAA/MM/AAAA-MM-DD.json. O payload JSON contém a data, o timestamp de geração, a contagem total de repositórios e um array de repositórios com campos como full_name, url, description, llm_summary, language, stars, stars_today, forks, topics e license. Um pequeno exemplo em Python mostra a busca desse JSON com requests e a impressão das principais entradas.
O README credita o projeto ai-git-trending como sua inspiração e afirma que sua abordagem de raspagem, fluxo de trabalho de análise LLM, esquema de geração de relatórios e arquitetura geral serviram como referências. Links relacionados apontam para o GitHub Trending, Docusaurus e o projeto de origem. A stack é descrita como Python mais Docusaurus.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.