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.
56 lines
2.8 KiB
Plaintext
56 lines
2.8 KiB
Plaintext
# Billo Release Agent - Environment Variables
|
|
# Copy this file to .env and fill in your values.
|
|
# Never commit .env to source control.
|
|
|
|
# ===========================================================================
|
|
# REQUIRED
|
|
# ===========================================================================
|
|
|
|
# --- Azure DevOps ----------------------------------------------------------
|
|
AZDO_ORGANIZATION=billodev
|
|
AZDO_PROJECT=Billo App Platform
|
|
AZDO_PAT= # Personal access token (Code read/write, Build read/execute)
|
|
|
|
# --- PostgreSQL ------------------------------------------------------------
|
|
POSTGRES_PASSWORD= # Used by docker-compose db service
|
|
POSTGRES_DSN=postgresql://agent:${POSTGRES_PASSWORD}@localhost:5432/agent
|
|
|
|
# --- Jira ------------------------------------------------------------------
|
|
JIRA_EMAIL= # Jira account email
|
|
JIRA_API_TOKEN= # Jira API token
|
|
|
|
# --- Slack -----------------------------------------------------------------
|
|
SLACK_WEBHOOK_URL= # Incoming webhook URL (for release notifications)
|
|
|
|
# --- Webhook Security ------------------------------------------------------
|
|
WEBHOOK_SECRET= # HMAC secret for Azure DevOps webhook validation
|
|
|
|
# ===========================================================================
|
|
# OPTIONAL (have defaults)
|
|
# ===========================================================================
|
|
|
|
# --- Slack App (for interactive buttons) -----------------------------------
|
|
SLACK_BOT_TOKEN= # xoxb-... Bot token (needed for Slack buttons)
|
|
SLACK_SIGNING_SECRET= # Slack app signing secret (needed for /slack/interactions)
|
|
SLACK_CHANNEL_ID= # Channel ID to post messages (e.g., C0123456789)
|
|
|
|
# --- CI/CD Polling ---------------------------------------------------------
|
|
CI_POLL_INTERVAL_SECONDS=30 # Seconds between CI status polls
|
|
CI_POLL_MAX_WAIT_SECONDS=1800 # Max wait for CI completion (30 min)
|
|
|
|
# --- Claude Code Review ----------------------------------------------------
|
|
# ANTHROPIC_API_KEY= # Not needed — uses Claude Code CLI subscription
|
|
# CLAUDE_REVIEW_MODEL=claude-sonnet-4-20250514
|
|
|
|
# --- Local Repo Path -------------------------------------------------------
|
|
REPOS_BASE_DIR= # Base dir containing Billo repos (e.g., /c/Users/yaoji/git/Billo)
|
|
|
|
# --- Jira ------------------------------------------------------------------
|
|
JIRA_BASE_URL=https://billolife.atlassian.net
|
|
|
|
# --- Operator API ----------------------------------------------------------
|
|
OPERATOR_TOKEN= # When set, protects POST /approvals/* and POST /manual/*
|
|
|
|
# --- Server ----------------------------------------------------------------
|
|
PORT=8000
|