Issue Lens is an Azure-ready FastAPI MVP for AI-assisted GitHub issue triage. It ingests issues from public GitHub repositories, stores them in PostgreSQL with pgvector embeddings, finds similar issues, predicts triage metadata, and exposes the workflow through Swagger.
Default repositories:
fastapi/fastapidjango/django
cp .env.example .env
docker compose up --buildThen open:
- API health:
http://localhost:8000/health - Swagger UI:
http://localhost:8000/docs
Run migrations:
docker compose exec api alembic upgrade headRun tests locally:
python -m venv .venv
. .venv/bin/activate
pip install -e ".[dev]"
pytest- Register or use a default repository.
- Ingest GitHub issues.
- Generate embeddings for ingested issues with
POST /repositories/{repository_id}/embed. - Search similar issues with pgvector.
- Ask OpenAI structured outputs to classify severity, component, labels, and suggested checks.
- Store the triage run and reviewer feedback.
After ingestion, call:
POST /repositories/{repository_id}/embed
Example body:
{
"limit": 50,
"only_missing": true
}This embeds stored issues that do not yet have vectors, making them eligible for similar_issues and duplicate_candidates during triage.
The service is designed for Azure Container Apps with Azure Database for PostgreSQL Flexible Server, pgvector enabled, secrets stored in Container App secrets or Key Vault, and optional Application Insights instrumentation.