-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path.env.example
More file actions
155 lines (129 loc) · 6.85 KB
/
.env.example
File metadata and controls
155 lines (129 loc) · 6.85 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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# ============================================================================
# Jira Configuration
# ============================================================================
# Path to the repo that uses Jira. Jira features (rr ticket lookups, jira-fzf,
# oneshot) are only active when running inside this repo. Also place a
# .claude/settings.json with Atlassian MCP permissions in this repo (not globally)
# so Claude Code's Jira tools are scoped the same way.
JIRA_REPO="/path/to/your/repo"
# Your Jira instance domain (without https://)
JIRA_DOMAIN="company.atlassian.net"
# Your Jira project key (e.g. "PROJ", "DEV", "ENG")
JIRA_PROJECT="PROJ"
# Your Jira email address
JIRA_EMAIL="your-email@company.com"
# Jira API token
# Get from: https://id.atlassian.com/manage-profile/security/api-tokens
# Required scopes: read:jira-work, write:jira-work, read:jira-user
# For sprint features: read:board:jira-software, read:sprint:jira-software, write:sprint:jira-software
JIRA_API_TOKEN="your-jira-api-token-here"
# ============================================================================
# Slack Integration
# ============================================================================
# Enables: posting ticket/MR links back to Slack threads
# Usage: oneshot https://slack.com/archives/...
# Leave empty to disable
TICKET_CREATOR_BOT_TOKEN=""
# Socket Mode app-level token (xapp-...) — required for ticket-bot
# Enable Socket Mode in your Slack app, then generate an App-Level Token
# with connections:write scope
SLACK_APP_TOKEN=""
# To set up:
# 1. Create bot at: https://api.slack.com/apps
# 2. Add bot scopes: chat:write, files:write, channels:read, channels:history,
# groups:read, groups:history, im:history, im:write,
# reactions:read, reactions:write, users:read
# 3. Enable Socket Mode, generate App-Level Token (connections:write)
# 4. Subscribe to events: message.channels, message.groups, message.im, reaction_added
# 5. Enable Interactivity (Features → Interactivity & Shortcuts); leave
# the Request URL blank for Socket Mode. Required for the
# "Create Jira ticket" button + modal on slack-thread jobs.
# 6. Install to workspace and copy the Bot User OAuth Token
# ============================================================================
# QA Branch Integration
# ============================================================================
# Enables: auto-setting QA branch field when creating MRs
# Format: {branch-name}.{domain}
# Leave empty to disable
JIRA_QA_BRANCH_DOMAIN=""
# Examples:
# Single domain:
# JIRA_QA_BRANCH_DOMAIN="https://qa.company.com"
# Multiple domains (shows menu to pick):
# JIRA_QA_BRANCH_DOMAIN="https://qa.company.com,https://qa.company.ca"
# Field ID (auto-detected if empty)
JIRA_QA_BRANCH_FIELD=""
# Custom command to open QA branch URLs (optional)
# The URL is passed as $1. Falls back to default browser if empty.
# Example: open in a specific Chromium instance via DevTools Protocol:
# JIRA_QA_BRANCH_OPEN_CMD="wmctrl -i -a $(wmctrl -lx | grep project-chromium | head -1 | awk '{print $1}') 2>/dev/null; curl -s -X PUT \"http://localhost:9222/json/new?\$1\" >/dev/null 2>&1"
JIRA_QA_BRANCH_OPEN_CMD=""
# ============================================================================
# Optional Tweaks
# ============================================================================
# Your JIRA username - used by rr.sh to highlight your assigned branches
JIRA_ME=""
# Max age (in days) of remote-only branches shown at the bottom of rr.
# Branches older than this are hidden. Set to 0 for no limit. Default: 90.
RR_REMOTE_MAX_AGE_DAYS=90
# FZF behavior: 0=exit after action, 1=stay open (for scratchpads)
FZF_PERSIST_MODE=0
# ============================================================================
# Tmux Pane Management (Optional)
# ============================================================================
# Enable pane management from rr
# When enabled, you can set worktrees as "active targets" for specific tmux panes
# and switch them between worktrees with keybindings
RR_PANE_MGMT_ENABLED=false
# Pane configuration format:
# RR_PANE_N_ID - Tmux pane ID (format: session:window.pane)
# RR_PANE_N_DIR - Subdirectory within worktree (optional, e.g., "client/web")
# RR_PANE_N_COMMAND - Command to run
# RR_PANE_N_LABEL - Short label for help/header (e.g., "dev", "tsc")
# RR_PANE_N_INDICATOR- Unicode symbol for visual indicator (e.g., "▶", "⏩")
# RR_PANE_N_KEY - Keybinding (f4, f5, f6, f7, f10, f11, f12)
# Example Pane 1 - Dev Server
RR_PANE_1_ID="tmuxa-1:0.0"
RR_PANE_1_DIR="client/web"
RR_PANE_1_COMMAND="mkdir -p ~/.config/dev-workflow && ln -sf \$PWD/.env ~/.config/dev-workflow/current.env; yarn install && yarn run-p tailwind dev"
RR_PANE_1_LABEL="dev"
RR_PANE_1_INDICATOR="▶"
RR_PANE_1_KEY="f4"
# Example Pane 2 - TSC Watch
RR_PANE_2_ID="tmuxa-1:0.1"
RR_PANE_2_DIR="client/web"
RR_PANE_2_COMMAND="yarn tsc-watch"
RR_PANE_2_LABEL="tsc"
RR_PANE_2_INDICATOR="⏩"
RR_PANE_2_KEY="f5"
# Add more panes by incrementing the number (3, 4, 5...)
# Available keys: f4-f7, f10-f12 (f1=help, f2=new wt, f3=new branch+wt, f8=delete wt, f9=internal auto-clear)
# ============================================================================
# Editor Integration (Optional)
# ============================================================================
# Auto-open/focus Cursor when navigating to a worktree via rr.
# Runs `cursor <path>` in the background — focuses an existing Cursor window
# at that path, or opens a new one (same behavior as GitLens worktree switcher).
# Tip: use `cursor --reuse-window <path>` variant by editing dev-workflow.zsh
# if you prefer to switch folders in your current window instead of per-worktree windows.
RR_CURSOR_SWITCH=false
# ============================================================================
# Worktree Customization (Optional)
# ============================================================================
# Automatically modify files in new worktrees after they're created
# VS Code workspace settings to inject (JSON format)
# These settings are merged into .vscode/settings.json in client/web
# Example: Disable Rust analyzer in all worktrees
VSCODE_WORKSPACE_SETTINGS='{"rust-analyzer.enable": false}'
# Files/directories to copy from the main repo to each new worktree
# Space-separated list of paths relative to the git root
# Default: client/web/.env client/web/ulweb/pkg client/web/.cursor client/web/.vscode
# WT_FILES_TO_COPY="client/web/.env client/web/.vscode"
# Paths to exclude when copying files (space-separated, supports wildcards)
# Useful for skipping large build artifacts like Rust's target/ directory
# Example: WORKTREE_COPY_EXCLUDE="target/ *.log build/"
WORKTREE_COPY_EXCLUDE="target/"
# Post-worktree hook script (runs after worktree creation and file copying)
# The script receives the worktree path as $1
# Example: POST_WORKTREE_HOOK="$HOME/bin/my-worktree-setup.sh"
POST_WORKTREE_HOOK=""