Sniff out issue dependencies β Interactive dependency graph visualizer for Gitea
Implements Gitea Feature Request #20838 β Issue dependency graph as an external tool
π ζ₯ζ¬θͺ | δΈζ | νκ΅μ΄
Gitea lets you set dependencies between issues, but there's no way to see the big picture.
IssueHound turns dependency data into an interactive graph:
- π΄ Find bottlenecks β High-dependency nodes glow red
- π Trace chains β See what blocks what at a glance
- ποΈ Spot orphans β Unconnected issues separated automatically
- π’ Org-wide view β Cross-repository dependency map
| Feature | Description |
|---|---|
| π Dependency graph | D3.js force-directed + DAG hierarchical layout |
| π Filters | ALL / OPEN / CLOSED state toggle |
| π’ Cross-repo | Visualize dependencies across all org repositories |
| π Detail panel | Click a node to preview body, labels, assignees |
| π΄ Priority coloring | Nodes colored by inbound dependency count |
| ποΈ Orphan separation | Unconnected issues aligned on the right |
| β¨οΈ Keyboard shortcuts | R, F, 1-3, Q/W, Esc |
| π 8 languages | EN, JA, ZH, KO, DE, FR, ES, RU |
| π Security | CSP, rate limiting, token protection |
| π³ Docker | One-command setup |
git clone https://github.com/Resolver-TNG/gitea-issuehound.git
cd gitea-issuehound
cp .env.example .env
# Edit .env β set GITEA_URL and GITEA_TOKEN
docker compose up -dnpm install
GITEA_URL=http://your-gitea:3000 GITEA_TOKEN=your_token node server.js| Variable | Required | Default | Description |
|---|---|---|---|
GITEA_URL |
β | β | Gitea instance URL |
GITEA_TOKEN |
β | β | API token ( |
PORT |
β | 3100 |
Server port |
CACHE_TTL |
β | 300 |
Cache TTL in seconds |
ADMIN_TOKEN |
β | β | Auth token for cache clear API |
DAG hierarchical layout β 10 issues, 5-layer dependency chain from Database β Release
| Key | Action |
|---|---|
R |
Refresh data (bypass cache) |
F |
Fit graph to view |
1 / 2 / 3 |
Filter: ALL / OPEN / CLOSED |
Q / W |
Layout: Force / DAG |
Esc |
Close detail panel |
| Method | Path | Description |
|---|---|---|
GET |
/api/health |
Health check |
GET |
/api/repos |
Repository list |
GET |
/api/repos/:owner/:repo/graph |
Dependency graph |
GET |
/api/orgs/:org/graph |
Org-wide dependency graph |
DELETE |
/api/cache |
Clear cache (ADMIN_TOKEN auth) |
Query params: ?state=open|closed|all ?refresh=true
| Layer | Technology |
|---|---|
| Backend | Node.js 22+ / Express 5 |
| Graph | D3.js v7 + dagre |
| Frontend | Vanilla ES Modules |
| Container | Docker (node:22-alpine) |
| Design | Industrial HUD Design System |
- Gitea 1.20+ (dependency API support)
- Node.js 22+ or Docker
npm install
GITEA_URL=http://your-gitea:3000 GITEA_TOKEN=your_token node server.js
# Docker dev mode (live reload via volume mount)
docker compose -f docker-compose.dev.yml up -d
# Deploy to NAS
./deploy.sh # sync only (instant)
./deploy.sh --rebuild # rebuild imageSee SECURITY.md. GITEA_TOKEN should have read-only permissions only.
MIT β Resolver-TNG
Built by 404-squad π¦