Configure Git-Iris using environment variables for CI/CD, Docker, or temporary overrides.
Each provider has a corresponding environment variable:
| Provider | Environment Variable | Example |
|---|---|---|
| OpenAI | OPENAI_API_KEY |
sk-... |
| Anthropic | ANTHROPIC_API_KEY |
sk-ant-... |
GOOGLE_API_KEY |
AIza... |
# Set API key
export ANTHROPIC_API_KEY="sk-ant-..."
# Git-Iris will use it automatically
git-iris genWhen running in Docker containers, use these variables:
| Variable | Description | Example |
|---|---|---|
GITIRIS_PROVIDER |
Default provider | anthropic |
GITIRIS_API_KEY |
API key for default provider | sk-ant-... |
docker run --rm \
-v "$(pwd):/git-repo" \
-e GITIRIS_PROVIDER="anthropic" \
-e GITIRIS_API_KEY="$ANTHROPIC_API_KEY" \
hyperb1iss/git-iris gen --printEnvironment variables take precedence over config files:
Config File < Environment Variable < CLI Flag
Config file:
[providers.anthropic]
api_key = "sk-ant-config-key"Environment:
export ANTHROPIC_API_KEY="sk-ant-env-key"Result: Git-Iris uses sk-ant-env-key
# .envrc (direnv)
export ANTHROPIC_API_KEY="sk-ant-..."
export OPENAI_API_KEY="sk-..."# GitHub Actions
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
steps:
- name: Generate commit message
run: |
git add .
git-iris gen --print > commit_msg.txt# docker-compose.yml
services:
git-iris:
image: hyperb1iss/git-iris
environment:
GITIRIS_PROVIDER: anthropic
GITIRIS_API_KEY: ${ANTHROPIC_API_KEY}
volumes:
- .:/git-repo# ~/.bashrc or ~/.zshrc
export ANTHROPIC_API_KEY="sk-ant-..."
export OPENAI_API_KEY="sk-..."
export GOOGLE_API_KEY="..."# ~/.config/fish/config.fish
set -gx ANTHROPIC_API_KEY "sk-ant-..."
set -gx OPENAI_API_KEY "sk-..."
set -gx GOOGLE_API_KEY "..."# Use different API key just for this command
ANTHROPIC_API_KEY="sk-ant-temp-key" git-iris gen# Override for this shell session
export ANTHROPIC_API_KEY="sk-ant-session-key"
git-iris gen
git-iris review
# ... more commands# .gitignore
.env
.envrc
*.env.local# Load from 1Password
export ANTHROPIC_API_KEY="$(op read op://vault/item/field)"
# Load from AWS Secrets Manager
export ANTHROPIC_API_KEY="$(aws secretsmanager get-secret-value \
--secret-id git-iris/anthropic-key --query SecretString --output text)"chmod 600 .env
chmod 600 .envrcname: Git-Iris Commit Check
on: [pull_request]
jobs:
check-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Git-Iris
run: |
wget https://github.com/hyperb1iss/git-iris/releases/latest/download/git-iris-linux-amd64
chmod +x git-iris-linux-amd64
sudo mv git-iris-linux-amd64 /usr/local/bin/git-iris
- name: Generate commit message
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
git-iris gen --print# .gitlab-ci.yml
commit-check:
stage: test
image: hyperb1iss/git-iris
variables:
GITIRIS_PROVIDER: 'anthropic'
script:
- git-iris gen --print
only:
- merge_requestspipeline {
agent any
environment {
ANTHROPIC_API_KEY = credentials('anthropic-api-key')
}
stages {
stage('Generate Commit') {
steps {
sh 'git-iris gen --print'
}
}
}
}# Enable debug logging
git-iris gen --log --log-file debug.log
# Check which API key source is used
cat debug.log | grep "API key"# This should work if ANTHROPIC_API_KEY is set
git-iris gen --provider anthropic --print
# If it fails, check:
echo $ANTHROPIC_API_KEY # Should output key (or empty if not set)Error: API key required for anthropic.
Set ANTHROPIC_API_KEY or configure in ~/.config/git-iris/config.toml
Solution:
export ANTHROPIC_API_KEY="sk-ant-..."# Check current provider
git-iris config --print | grep default_provider
# Override with environment
export GITIRIS_PROVIDER="anthropic"# Verify it's exported
env | grep API_KEY
# If not, export it
export ANTHROPIC_API_KEY="sk-ant-..."
# Test immediately
git-iris gen --print| Variable | Purpose | Example |
|---|---|---|
OPENAI_API_KEY |
OpenAI authentication | sk-proj-... |
ANTHROPIC_API_KEY |
Anthropic authentication | sk-ant-... |
GOOGLE_API_KEY |
Google authentication | AIza... |
GITIRIS_PROVIDER |
Default provider (Docker) | anthropic |
GITIRIS_API_KEY |
Generic API key (Docker) | sk-ant-... |
RUST_LOG |
Logging level | debug, info |
# Personal development
export ANTHROPIC_API_KEY="sk-ant-personal-dev-key"
export OPENAI_API_KEY="sk-personal-dev-key"
# Project-specific
export GITIRIS_PROVIDER="anthropic"
# Debug logging
export RUST_LOG="debug"# Set environment variable
$env:ANTHROPIC_API_KEY = "sk-ant-..."
# Permanent (user scope)
[Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "sk-ant-...", "User")set ANTHROPIC_API_KEY=sk-ant-...# Temporary
export ANTHROPIC_API_KEY="sk-ant-..."
# Permanent (add to ~/.bashrc or ~/.zshrc)
echo 'export ANTHROPIC_API_KEY="sk-ant-..."' >> ~/.bashrc