Skip to content

Environment Variables

PACE never stores credentials in pace.config.yaml. All secrets are read from environment variables at runtime.

LLM providers

VariableRequired forDescription
ANTHROPIC_API_KEYllm.provider: anthropicAnthropic API key. Get one at console.anthropic.com.
LLM_API_KEYllm.provider: litellmAPI key for the configured LiteLLM provider.
AWS_ACCESS_KEY_IDLiteLLM + BedrockAWS access key for Bedrock.
AWS_SECRET_ACCESS_KEYLiteLLM + BedrockAWS secret key for Bedrock.
AWS_REGION_NAMELiteLLM + BedrockAWS region (e.g. us-east-1).
AZURE_API_BASELiteLLM + AzureAzure OpenAI endpoint URL.
AZURE_API_VERSIONLiteLLM + AzureAzure API version (e.g. 2024-02-01).

Platforms

GitHub

VariableRequiredDescription
GITHUB_TOKENYesPersonal access token or Actions GITHUB_TOKEN. Needs repo scope (or public_repo for public repos).
GITHUB_REPOSITORYYesRepository in owner/repo format (e.g. acme-corp/acme-api). Auto-set in GitHub Actions.

GitLab

VariableRequiredDescription
GITLAB_TOKENYesProject or Group access token with api scope.
GITLAB_PROJECTYesProject ID (integer) or namespace path (group/project). Auto-set as $CI_PROJECT_ID in GitLab CI.
GITLAB_URLNoGitLab instance URL. Defaults to https://gitlab.com. Set for self-hosted instances.

Bitbucket

VariableRequiredDescription
BITBUCKET_USERYesBitbucket username.
BITBUCKET_APP_PASSWORDYesApp password with pullrequests:write and issues:write permissions.
BITBUCKET_WORKSPACEYesBitbucket workspace slug (formerly “team”).
BITBUCKET_REPO_SLUGYesRepository slug.

Jenkins

VariableRequiredDescription
JENKINS_URLYesBase URL of your Jenkins instance (e.g. https://ci.example.com).
JENKINS_USERYesJenkins username.
JENKINS_TOKENYesJenkins API token (not password). Generate in Jenkins → User → Configure → API Token.
JENKINS_JOB_NAMEYesJob or pipeline name to poll (e.g. my-app/main).

Jira

VariableRequiredDescription
JIRA_URLYesBase URL of your Jira Cloud instance — e.g. https://mycompany.atlassian.net. No trailing slash.
JIRA_EMAILYesAtlassian account email used for Basic auth.
JIRA_TOKENYesAPI token. Create at id.atlassian.com → Security → API tokens.
JIRA_PROJECT_KEYYesJira project key (e.g. ENG, PAY). Shown next to the project name in Jira.
JIRA_HOLD_ISSUE_TYPENoIssue type for HOLD escalation tickets. Default: Bug.
JIRA_HOLD_PRIORITYNoPriority for HOLD tickets. Default: High.
JIRA_ADVISORY_ISSUE_TYPENoIssue type for advisory finding tickets. Default: Task.
JIRA_ADVISORY_PRIORITYNoPriority for advisory tickets. Default: Medium.
JIRA_REVIEW_ISSUE_TYPENoIssue type for review gate tickets. Default: Task.

Local

No environment variables required.


GitHub Actions integration

When running PACE inside a GitHub Actions workflow, most variables are provided automatically:

.github/workflows/pace.yml
jobs:
pace:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- run: pip install -r pace/requirements.txt
- name: Run PACE Day ${{ inputs.day }}
run: python pace/orchestrator.py --day ${{ inputs.day }}
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # auto-provided
# GITHUB_REPOSITORY is auto-provided by Actions

Setting variables locally

Terminal window
# Minimum for local development with Anthropic + local platform:
export ANTHROPIC_API_KEY="sk-ant-..."
# GitHub platform:
export GITHUB_TOKEN="ghp_..."
export GITHUB_REPOSITORY="my-org/my-repo"
# Verify all required vars are set:
python pace/pace/config.py --check-env

Variable precedence

PACE reads variables in this order:

  1. Process environment (export VAR=... or CI-injected)
  2. .env file in the pace/ directory (if python-dotenv is installed)

Never commit .env files or put credentials in pace.config.yaml.