Skip to content

Configuration Overview

The GitHub Cookstyle Runner is configured primarily through environment variables, making it easy to deploy across different environments.

Configuration Methods

Environment Variables

The primary configuration method. Set environment variables in your deployment:

  • Docker Compose: Use .env files or environment section
  • Kubernetes: Use ConfigMaps and Secrets
  • Local: Export in your shell or use .envrc

Configuration File (Optional)

For local development, you can use config/settings/local.yml:

github:
  app_id: "123456"
  app_installation_id: "789012"
  app_private_key: "-----BEGIN RSA PRIVATE KEY-----\n..."

destination:
  repo_owner: "your-org"
  repo_topics: ["chef-cookbook"]

git:
  email: "bot@example.com"
  name: "Cookstyle Bot"

Configuration Categories

Required Settings

These must be configured for the application to run:

Optional Settings

Customize behavior with these optional settings:

Quick Reference

Category Variables Purpose
Authentication GITHUB_APP_* GitHub API access
Repository GCR_DESTINATION_REPO_* Target repositories
Git GCR_GIT_* Commit author info
Pull Requests GCR_PULL_REQUEST_* PR customization
Cache GCR_CACHE_*, GCR_USE_CACHE Performance optimization
Performance GCR_THREAD_COUNT, GCR_RETRY_COUNT Execution tuning
Filtering GCR_FILTER_REPOS Repository selection

Configuration Examples

Minimal Configuration

GITHUB_APP_ID=123456
GITHUB_APP_INSTALLATION_ID=789012
GITHUB_APP_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----..."
GCR_DESTINATION_REPO_OWNER=my-org
GCR_DESTINATION_REPO_TOPICS=chef-cookbook
GCR_GIT_EMAIL=bot@example.com
GCR_GIT_NAME=Cookstyle Bot

Production Configuration

# Authentication
GITHUB_APP_ID=123456
GITHUB_APP_INSTALLATION_ID=789012
GITHUB_APP_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----..."

# Repository
GCR_DESTINATION_REPO_OWNER=my-org
GCR_DESTINATION_REPO_TOPICS=chef-cookbook,chef

# Git
GCR_GIT_EMAIL=cookstyle-bot@example.com
GCR_GIT_NAME=Cookstyle Bot

# Pull Requests
GCR_PULL_REQUEST_TITLE=Automated Cookstyle Fixes
GCR_PULL_REQUEST_LABELS=tech-debt,automated,cookstyle
GCR_CREATE_MANUAL_FIX_PRS=1

# Performance
GCR_THREAD_COUNT=8
GCR_RETRY_COUNT=3
GCR_USE_CACHE=1
GCR_CACHE_MAX_AGE=7

Validation

The application validates configuration on startup and will exit with clear error messages if:

  • Required variables are missing
  • Values are invalid (e.g., non-numeric for numeric fields)
  • Conflicting options are set

Next Steps