feat: initial commit — Billo Release Agent (LangGraph)

LangGraph-based release automation agent with:
- PR discovery (webhook + polling)
- AI code review via Claude Code CLI (subscription-based)
- Auto-create Jira tickets for PRs without ticket ID
- Jira ticket lifecycle management (code review -> staging -> done)
- CI/CD pipeline trigger, polling, and approval gates
- Slack interactive messages with approval buttons
- Per-repo semantic versioning
- PostgreSQL persistence (threads, staging, releases)
- FastAPI API (webhooks, approvals, status, manual triggers)
- Docker Compose deployment

1069 tests, 95%+ coverage.
This commit is contained in:
Yaojia Wang
2026-03-24 17:38:23 +01:00
commit f5c2733cfb
104 changed files with 19721 additions and 0 deletions

32
Dockerfile Normal file
View File

@@ -0,0 +1,32 @@
FROM python:3.12-slim
WORKDIR /app
# Install system dependencies required for psycopg binary
RUN apt-get update && apt-get install -y --no-install-recommends \
libpq5 \
&& rm -rf /var/lib/apt/lists/*
# Copy dependency files first for layer caching
COPY pyproject.toml uv.lock ./
# Install uv for fast dependency management
RUN pip install --no-cache-dir uv
# Install runtime dependencies (no dev extras)
RUN uv pip install --system --no-cache-dir -e .
# Copy application source
COPY src/ ./src/
# Create data directory for staging store
RUN mkdir -p data/staging
# Non-root user for security
RUN adduser --disabled-password --gecos "" appuser && \
chown -R appuser:appuser /app
USER appuser
EXPOSE 8000
CMD ["uvicorn", "release_agent.main:app", "--host", "0.0.0.0", "--port", "8000"]