AI-powered GitHub Actions workflow failure analyzer built with TypeScript, Express, BullMQ, PostgreSQL, Prisma, Ollama, and React.
LogIQ automatically detects completed GitHub Actions workflow runs, downloads workflow logs, analyzes failures using a local Large Language Model (Llama 3.2 via Ollama), stores AI-generated insights in PostgreSQL, and presents the results through a modern React dashboard.
- Project Overview
- Features
- Project Structure
- Installation
- Running the Application
- Configuration
- API Endpoints
- Application Workflow
- Architecture
- Screenshots
- Future Improvements
- Contributing
- License
Debugging failed GitHub Actions workflows often requires manually inspecting hundreds or thousands of log lines before identifying the actual failure.
LogIQ automates this workflow by processing GitHub Actions logs immediately after a workflow completes.
The application:
- Receives GitHub webhook events
- Downloads workflow logs using the GitHub Actions API
- Extracts and merges workflow log files
- Sends merged logs to Ollama (Llama 3.2)
- Generates AI-powered failure explanations
- Stores analyses in PostgreSQL
- Displays workflow history and AI insights through a React dashboard
The objective is to reduce the time required to diagnose CI/CD failures by transforming raw workflow logs into structured, readable analyses.
- GitHub Webhook listener
- GitHub Actions REST API integration
- Automatic workflow log download
- Workflow status tracking
- Ollama integration
- Llama 3.2 local language model
- Root cause identification
- Failure explanation
- Suggested fixes
- Express.js REST API
- TypeScript
- BullMQ background workers
- Redis job queue
- Prisma ORM
- PostgreSQL
- React
- TypeScript
- Vite
- React Router
- Tailwind CSS
- Responsive dashboard
- Workflow search and filtering
LogIQ
│
├── frontend/
│ ├── src/
│ │ ├── api/
│ │ ├── components/
│ │ ├── hooks/
│ │ ├── layout/
│ │ ├── pages/
│ │ ├── types/
│ │ └── utils/
│
├── prisma/
│ ├── migrations/
│ └── schema.prisma
│
├── src/
│ ├── config/
│ ├── controllers/
│ ├── lib/
│ ├── middleware/
│ ├── queues/
│ ├── routes/
│ ├── services/
│ ├── utils/
│ └── workers/
│
├── docker-compose.yml
├── package.json
└── README.md
- Node.js 20+
- Docker & Docker Compose
- PostgreSQL
- Redis
- Ollama
- GitHub Personal Access Token
git clone https://github.com/chethanac15/LogIQ.git
cd LogIQnpm installcd frontend
npm installCreate a .env file in the project root.
DATABASE_URL=postgresql://postgres:postgres@localhost:5433/logiq
GITHUB_TOKEN=your_github_personal_access_token
WEBHOOK_SECRET=your_webhook_secret
OLLAMA_URL=http://localhost:11434
REDIS_HOST=127.0.0.1
REDIS_PORT=6379docker compose up -dollama servePull the required model if it has not already been installed.
ollama pull llama3.2npm run devnpm run workercd frontend
npm run devThe dashboard will be available at:
http://localhost:5173
GET /healthReturns the backend and database status.
GET /analysisReturns every stored workflow analysis ordered by creation date.
GET /analysis/:runIdReturns the analysis associated with a specific workflow run.
POST /webhookReceives GitHub Actions webhook events and queues workflow processing.
GitHub Actions Workflow
│
▼
GitHub Webhook
│
▼
Express Backend
│
▼
BullMQ Queue
│
▼
Redis
│
▼
Background Worker
│
▼
Download Workflow Logs
│
▼
Extract ZIP Archive
│
▼
Merge Log Files
│
▼
Ollama (Llama 3.2)
│
▼
AI Workflow Analysis
│
▼
PostgreSQL
│
▼
React Dashboard
The application consists of four primary components.
Receives webhook events, exposes REST APIs, and manages workflow processing.
Processes queued jobs, downloads workflow logs, performs AI analysis, and stores results.
Persists workflow metadata and AI-generated analyses using PostgreSQL and Prisma.
Provides a dashboard for viewing workflow history, searching repositories, filtering workflow runs, and inspecting detailed AI analyses.
Watch the application in action https://youtu.be/U8s0xir8pLc
Contributions are welcome.
- Fork the repository.
- Create a new feature branch.
git checkout -b feature/new-feature- Commit your changes.
git commit -m "Add new feature"- Push the branch.
git push origin feature/new-feature- Open a Pull Request.
This project is licensed under the MIT License.