π Transform GitHub activity into DORA-aligned insights directly in Slack βοΈ Powered by LangGraph agents and Python 3.10+
- Overview
- Features
- Architecture
- Setup
- Usage
- Agents
- Data Flow
- Visualization
- Prompt Logging
- Tech Stack
- Contributing
- License
CommitIQ is an agent-based engineering intelligence bot that integrates GitHub with Slack, providing real-time DORA metrics and performance summaries.
- π₯ GitHub ingest (live or static)
- π§ LangGraph-based agent pipeline
- π§Ύ Slack slash commands with narrative + charts
- π Auditable prompt logging
- β‘ Docker-first, one-command deploy
start_node
β
harvester_orchestrator
ββοΈβοΈβοΈ (parallel)
harvester_i β diff_analyst_i
βοΈβοΈβοΈ
batch_collector
β
aggregator
β
narrator
β
slack_reporter
Each harvester_i
and corresponding diff_analyst_i
node runs in parallel, managed by harvester_orchestrator
. All analysis results are merged via batch_collector
before aggregation and insight narration.
pip install -r requirements.txt
python main.py
docker-compose up --build # First time
docker-compose up # Subsequent runs
Fill in your keys:
# GitHub
GITHUB_TOKEN=ghp_xxx # GitHub personal access token with repo read access
#only in v1 (not used though but good to have this)
USE_FAKE_DATA=False
# Slack
SLACK_BOT_TOKEN=xoxb-xxx # Slack bot token
SLACK_APP_TOKEN=xapp-xxx # Slack app-level token (for Socket Mode)
SLACK_SIGNING_SECRET=xxxx # Slack signing secret
# OpenAI (or other LLM)
OPENAI_API_KEY=sk-xxx # Required if you're using OpenAI
# LangSmith Configuration (Optional)
LANGSMITH_TRACING=true # Enable LangSmith tracing
LANGSMITH_API_KEY=ls_xxx # LangSmith API key
LANGSMITH_PROJECT=commitiq-productivity # Project name in LangSmith
LANGSMITH_ENDPOINT=https://api.smith.langchain.com # LangSmith endpoint
Generates AI-powered GitHub report with:
- DORA metrics
- PNG chart
- Narrative summary
Examples:
/dev-report hashicorp terraform
/dev-report hashicorp terraform --monthly
/dev-report hashicorp terraform --from 2024-06-01 --to 2024-06-30
Optional Flags:
Flag | Description |
---|---|
--weekly |
Past 7 days (default) |
--monthly |
Past 30 days |
--from DATE |
Start date |
--to DATE |
End date |
--yesterday |
Report for yesterday only |
--today |
Report for today only |
--no-graph |
Text summary only |
- start_node β Initializes the state
- harvester_orchestrator β Launches parallel data collectors
- data_collector_i β Fetches GitHub commits in segments
- code_reviewer_i β Reviews code changes per segment
- batch_collector β Merges results from all reviewers
- aggregator β Computes DORA and code metrics
- narrator β Generates summaries and insights
- slack_reporter β Sends results to Slack
- GitHub data collected in shards
- Each shard is analyzed for diffs and churn
- All results collected, aggregated, and summarized
- Report posted to Slack with chart and narrative
- Charts rendered using
matplotlib
- Sent as PNG in Slack threads
- Inputs, prompts, and responses are logged
- Optional file-based logging support
- LangSmith Integration: Automatic tracing of LLM interactions when configured
- LangChain
0.3.26
- LangGraph OSS
0.5.0
- **Slack Bolt (Python)`
- matplotlib, Docker, Python 3.10+
PRs welcome β this repository follows formal open-source standards:
Please review them before contributing or reporting issues.