Skip to content

Environment variables

Non-secret configuration lives in RUSTY_* env vars rather than action inputs, so the same values can be reused between the GitHub Action, the webhook server, and the Azure DevOps task without duplication.

VariableDefaultDescription
RUSTY_LLM_MODELanthropic/claude-sonnet-4-20250514LLM model in provider/model format
RUSTY_REVIEW_STYLEbalancedOne of strict, balanced, lenient, roast, thorough
RUSTY_FOCUS_AREASall enabledComma-separated: security,performance,bugs,style,tests,docs
RUSTY_IGNORE_PATTERNSComma-separated globs to skip (e.g. *.lock,dist/**)
RUSTY_DB_URLfile:./rusty.dblibSQL database URL
RUSTY_MODESet to pipeline in Azure Pipelines container
RUSTY_FAIL_ON_CRITICALtrueExit with code 1 when critical findings are produced
RUSTY_REVIEW_DRAFTSfalseReview draft PRs (skipped by default)
RUSTY_INCREMENTAL_REVIEWtrueReview only the diff since the previously-reviewed commit (GitHub Action) or PR iteration (Azure DevOps). Set to false to always review the full PR diff

LLM provider — Anthropic / OpenAI / Google

Section titled “LLM provider — Anthropic / OpenAI / Google”
VariableDescription
ANTHROPIC_API_KEYAnthropic API key
OPENAI_API_KEYOpenAI API key
GOOGLE_GENERATIVE_AI_API_KEYGoogle AI API key
VariableDescription
AZURE_OPENAI_API_KEYAzure OpenAI API key (also accepted as AZURE_API_KEY)
AZURE_OPENAI_RESOURCE_NAMEAzure OpenAI resource name (API key path)
RUSTY_AZURE_RESOURCE_NAMEAzure OpenAI resource name (managed identity path)
RUSTY_AZURE_DEPLOYMENTAzure OpenAI deployment name (managed identity path)

The managed identity vars (RUSTY_AZURE_*) take priority over the API-key vars when both are set. See LLM providers for details.

VariableDescription
RUSTY_LLM_BASE_URLBase URL of an OpenAI-compatible endpoint (LiteLLM, vLLM, Ollama, …)
RUSTY_LLM_API_KEYAPI key for the custom endpoint (optional for unauthenticated local instances)
VariableDefaultDescription
RUSTY_LLM_MAX_RETRIES2Max additional retries after a transient LLM error. Capped at the length of the built-in backoff schedule (2 entries today — values higher than that are silently lowered). Set to 0 to disable retries entirely.
VariableDefaultDescription
RUSTY_LLM_TEMPERATUREprovider defaultGlobal temperature for all agents
RUSTY_LLM_TOP_Pprovider defaultGlobal top-p for all agents
RUSTY_REVIEW_TEMPERATURERUSTY_LLM_TEMPERATURETemperature override for the review agent
RUSTY_REVIEW_MODELSRUSTY_LLM_MODELComma-separated per-pass review models for consensus, e.g. anthropic/claude-sonnet,openai/gpt-5-mini
RUSTY_REVIEW_TEMPERATURESRUSTY_REVIEW_TEMPERATUREComma-separated per-pass review temperatures
RUSTY_REVIEW_TOP_PSRUSTY_REVIEW_TOP_PComma-separated per-pass review top-p values
RUSTY_REVIEW_ADAPTIVE_PASSEStrueOrdinary deep-review chunks use fewer consensus passes (2) while large or security-sensitive chunks keep up to 3. Set to false to force every chunk through the full pass count.
RUSTY_TRIAGE_TEMPERATURERUSTY_LLM_TEMPERATURETemperature override for the triage agent
RUSTY_JUDGE_TEMPERATURERUSTY_LLM_TEMPERATURETemperature override for the judge agent
RUSTY_DESCRIPTION_TEMPERATURERUSTY_LLM_TEMPERATURETemperature override for the description agent
RUSTY_TITLE_TEMPERATURERUSTY_LLM_TEMPERATURETemperature override for the title-rename agent

Per-agent values override the global setting; omitting any value falls back to the provider default.

VariableDefaultDescription
RUSTY_JUDGE_ENABLEDfalseEnable the post-generation judge / filter pass
RUSTY_JUDGE_THRESHOLD6Minimum confidence score (0–10) to keep a finding
RUSTY_JUDGE_MODELsame as RUSTY_LLM_MODELModel for the judge (can be a cheaper model)

See Judge / filter pass.

VariableDefaultDescription
RUSTY_LLM_TRIAGE_MODELLLM model for triage classification; setting this enables cascading
RUSTY_CASCADE_ENABLEDautoExplicitly enable (true) or disable (false) cascading; default is auto (enabled when triage model is set)

See Cascading review.

VariableDefaultDescription
RUSTY_GRAPH_CONTEXTfalseEnable GraphSift-style ranked context selection for deep-review prompts
RUSTY_GRAPH_CONTEXT_TOKEN_BUDGET2000Hard token budget for selected dependency context
RUSTY_GRAPH_CONTEXT_MAX_CANDIDATES8Maximum directly related files to consider after ranking

See Graph-ranked context.

VariableDefaultDescription
RUSTY_OPENGREP_RULESautoOpenGrep config string — ruleset ID (e.g. p/security-audit) or path to a rule file (e.g. .semgrep.yml)

See OpenGrep pre-scan.

VariableDefaultDescription
RUSTY_GENERATE_DESCRIPTIONfalseGenerate a PR description when it’s empty or a placeholder

See PR description generation.

VariableDefaultDescription
RUSTY_RENAME_TITLE_TO_CONVENTIONALfalseRewrite non-conventional PR titles into Conventional Commits format

See PR title rewriting.

VariableDefaultDescription
RUSTY_MCP_CONFIG./mcp-servers.jsonPath to a JSON file declaring MCP servers (stdio or HTTP). Missing file disables MCP silently.

See MCP tools.

VariableDefaultDescription
RUSTY_DASHBOARDfalseServe the embedded dashboard from the GitHub App webhook server when set to true.
RUSTY_DASHBOARD_DIRbundledOverride the directory served when the dashboard is enabled. Used for development.
VariableDescription
RUSTY_JIRA_BASE_URLJira instance URL
RUSTY_JIRA_EMAILJira auth email
RUSTY_JIRA_API_TOKENJira API token (also exposed as the jira-api-token action input)
RUSTY_LINEAR_API_KEYLinear API key (also exposed as the linear-api-key action input)
RUSTY_ADO_PATAzure DevOps PAT for non-container / server mode usage

See Ticket integration.

VariableDescription
GITHUB_APP_IDGitHub App ID
GITHUB_PRIVATE_KEY_PATHPath to the GitHub App private key PEM file
GITHUB_PRIVATE_KEYInline PEM string (alternative to GITHUB_PRIVATE_KEY_PATH)
GITHUB_WEBHOOK_SECRETGitHub webhook secret

See GitHub App (self-hosted).


For the canonical list, see action.yml and .env.example in the repo.