Configuration
Goblin uses a combination of CLI commands and database storage for configuration.
Project Configuration
Configure pipeline behavior per project:
# View all settings
goblin pipeline config -p PROJECT_ID --show
# Set bot user for auto-assignment
goblin pipeline config -p PROJECT_ID --assignee-id USER_ID
# Docker Compose file for preview environments
goblin pipeline config -p PROJECT_ID --docker-compose docker-compose.yml
# Test URLs for QA stage
goblin pipeline config -p PROJECT_ID --test-urls "http://localhost:3000,http://localhost:8080"
# Enable Playwright for visual testing
goblin pipeline config -p PROJECT_ID --playwright
# Cloud provider for preview environments
goblin pipeline config -p PROJECT_ID --config cloud_provider=ec2
Linear Notifications
Control what gets posted to Linear:
# Enable/disable notifications
goblin pipeline config -p PROJECT_ID --config linear_notifications_enabled=true
# Stage completion updates
goblin pipeline config -p PROJECT_ID --config linear_stage_updates=true
# Error notifications
goblin pipeline config -p PROJECT_ID --config linear_error_updates=true
# Tag users on blockers
goblin pipeline config -p PROJECT_ID --config linear_blocker_tagging=true
Static Analysis
Configure code analysis in the review stage:
# Enable static analysis (default: true)
goblin pipeline config -p PROJECT_ID --config static_analysis_enabled=true
# Enable mypy type checking (default: true)
goblin pipeline config -p PROJECT_ID --config static_analysis_mypy=true
Cloud Provider Settings
For EC2 preview environments:
# AWS region
goblin pipeline config -p PROJECT_ID --config aws_region=us-east-1
# Instance type
goblin pipeline config -p PROJECT_ID --config ec2_instance_type=t3.small
# SSH key name
goblin pipeline config -p PROJECT_ID --config ec2_key_name=your-key
# Security group
goblin pipeline config -p PROJECT_ID --config ec2_security_group=sg-xxxxx
# SSH key path (local)
goblin pipeline config -p PROJECT_ID --config ssh_key_path=~/.ssh/your-key.pem
Remote Daemon Management
Configure remote deployment for cloud daemon:
goblin remote set \
--name production \
--ip 3.16.148.197 \
--ssh-key ~/.ssh/key.pem \
--instance-id i-xxxxx \
--region us-east-2
Environment Variables
Some settings can be set via environment variables:
| Variable | Description |
|---|---|
GOBLIN_WORKSPACE | Override default workspace path |
LINEAR_API_TOKEN | Linear API token (alternative to goblin auth) |
AWS_PROFILE | AWS profile for EC2 operations |
Database Schema
Configuration is stored in SQLite:
-- Per-project settings
CREATE TABLE project_config (
project_id TEXT NOT NULL,
key TEXT NOT NULL,
value TEXT NOT NULL,
updated_at TEXT NOT NULL,
PRIMARY KEY (project_id, key)
);
Configuration Priority
- CLI flags (highest priority)
- Project-specific config (
project_configtable) - Global config (
~/.goblin/config.json) - Environment variables
- Default values (lowest priority)
Full Configuration Reference
| Key | Type | Default | Description |
|---|---|---|---|
assignee_user_id | string | null | Linear user ID for auto-assignment |
docker_compose_file | string | docker-compose.yml | Docker Compose file path |
test_urls | string | null | Comma-separated test URLs |
playwright_testing | boolean | false | Enable Playwright |
cloud_provider | string | local | local, ec2, or digitalocean |
static_analysis_enabled | boolean | true | Run static analysis in review |
static_analysis_mypy | boolean | true | Include mypy in static analysis |
linear_notifications_enabled | boolean | true | Post to Linear |
linear_stage_updates | boolean | true | Post stage completion |
linear_blocker_tagging | boolean | true | Tag users on blockers |