-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy path.env.example
More file actions
95 lines (82 loc) · 4.34 KB
/
.env.example
File metadata and controls
95 lines (82 loc) · 4.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# Claudev — environment variables
# Copy to .env and fill in your values:
# cp .env.example .env
#
# On Railway: set these in the Variables tab (never commit .env)
# ── Server ────────────────────────────────────────────────────────────────────
# Railway sets PORT automatically — leave commented out there
# PORT=8090
WEBHOOK_SECRET=change-me-to-random-string
# ── Claude Code (AI worker — does all the coding) ────────────────────────────
# Uses Max subscription auth — NO Anthropic API key needed.
#
# For Railway / any cloud server: base64-encode your credentials file:
# base64 -w0 ~/.claude/.credentials.json
# Paste the result here:
CLAUDE_AUTH_JSON=
#
# For local Docker: leave CLAUDE_AUTH_JSON empty — docker-compose.yml
# mounts ~/.claude:/root/.claude:ro directly.
# ── Orchestrator LLM (classification, labeling, summarization) ───────────────
# Any OpenAI-compatible API. The orchestrator only does lightweight tasks
# (parsing Jira descriptions, classifying issues, suggesting labels),
# so a cheap model works great here.
#
# Examples:
# DeepSeek: LLM_BASE_URL=https://api.deepseek.com LLM_MODEL=deepseek-chat
# OpenAI: LLM_BASE_URL=https://api.openai.com LLM_MODEL=gpt-4o-mini
# Groq: LLM_BASE_URL=https://api.groq.com/openai LLM_MODEL=llama-3.1-70b-versatile
# Ollama: LLM_BASE_URL=http://localhost:11434 LLM_MODEL=llama3.1
# Together: LLM_BASE_URL=https://api.together.xyz LLM_MODEL=meta-llama/Llama-3-70b-chat-hf
#
LLM_API_KEY=sk-...
LLM_BASE_URL=https://api.deepseek.com
LLM_MODEL=deepseek-chat
# Backward compat: DEEPSEEK_API_KEY / DEEPSEEK_BASE_URL still work if LLM_* not set
# ── Jira Cloud ────────────────────────────────────────────────────────────────
# JIRA_DOMAIN: subdomain only, e.g. "mycompany" for mycompany.atlassian.net
JIRA_DOMAIN=mycompany
JIRA_EMAIL=you@company.com
JIRA_API_TOKEN=...
JIRA_PROJECT_KEY=MYPROJECT
# ── GitHub (the repo Claude Code will work on) ────────────────────────────────
# Token needs: Contents (read+write), Pull requests (read+write)
GITHUB_TOKEN=ghp_...
GITHUB_TOKEN_TARGET=ghp_...
GITHUB_REPO=your-org/your-repo
# ── GitHub — secondary repo (optional, route by label repo:bridge) ────────────
# GITHUB_REPO_BRIDGE=your-org/other-repo
# GITHUB_TOKEN_BRIDGE=ghp_...
# ── Telegram notifications + bot commands (optional) ──────────────────────────
# Create a bot via @BotFather, get the token.
# Set webhook: https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://your-app.up.railway.app/webhook/telegram
TELEGRAM_BOT_TOKEN=
TELEGRAM_CHAT_ID=
# ── Pipeline behaviour ────────────────────────────────────────────────────────
TRIGGER_STATUS=In Progress
STAGE_BRANCH=stage
MAX_CONCURRENT_JOBS=3
MAX_CONCURRENT_PIPELINES=1
JOB_TIMEOUT_MINUTES=60
MAX_RETRIES=3
RETRY_DELAY_MINUTES=10
# Auto-transition parent task when all pipeline subtasks complete.
# Set to the target status name, e.g. "In Review" or "Ready for Test".
# Leave empty to disable (you'll move it manually).
AUTO_TRANSITION_ON_COMPLETE=In Review
# Planning pipeline: tasks with this prefix are broken into epics/tasks
# instead of going through the dev pipeline. Change to customize.
PLAN_PREFIX=PLAN:
# Directory for analysis/architecture artifacts (relative to repo root)
ARTIFACTS_DIR=docs/decisions
# ── Jira status names (must match your workflow exactly) ──────────────────────
# These are the DEFAULT English names. Change them if your Jira uses different names.
# The pipeline also understands Russian equivalents automatically.
STATUS_TODO=To Do
STATUS_IN_PROGRESS=In Progress
STATUS_DONE=Done
STATUS_CANCELLED=Cancelled
STATUS_READY_FOR_TEST=Ready for Test
STATUS_IN_REVIEW=In Review
STATUS_IN_TESTING=In Testing
STATUS_MERGE=Ready to Merge