Back to skills
SKILL.md
Coderabbit Multi Env Setup
ASecurityConfigure CodeRabbit across development, staging, and production environments. Use when setting up multi-environment deployments, configuring per-environment secrets, or implementing environment-specific CodeRabbit configurations. Trigger with phrases like "coderabbit environments", "coderabbit staging", "coderabbit dev prod", "coderabbit environment setup", "coderabbit config by env".
- 4 stars
- 0 votes
- 0 copies
- 2 views
- Added September 10, 2026
Works with
Security analysis
100/100npx -y skills add micsapp/micstec-skills --skill coderabbit-multi-env-setup --agent claude-codeAre you the author of Coderabbit Multi Env Setup?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/micsapp-coderabbit-multi-env-setup)---
name: coderabbit-multi-env-setup
description: |
Configure CodeRabbit across development, staging, and production environments.
Use when setting up multi-environment deployments, configuring per-environment secrets,
or implementing environment-specific CodeRabbit configurations.
Trigger with phrases like "coderabbit environments", "coderabbit staging",
"coderabbit dev prod", "coderabbit environment setup", "coderabbit config by env".
allowed-tools: Read, Write, Edit, Bash(aws:*), Bash(gcloud:*), Bash(vault:*)
version: 1.0.0
license: MIT
author: Jeremy Longshore <jeremy@intentsolutions.io>
compatible-with: claude-code, codex, openclaw
---
# CodeRabbit Multi-Environment Setup
## Overview
Configure CodeRabbit across development, staging, and production environments with isolated API keys, environment-specific settings, and proper secret management. Each environment gets its own credentials and configuration to prevent cross-environment data leakage.
## Prerequisites
- Separate CodeRabbit API keys per environment
- Secret management solution (environment variables, Vault, or cloud secrets)
- CI/CD pipeline with environment-aware deployment
- Application with environment detection logic
## Environment Strategy
| Environment | Purpose | API Key Source | Settings |
|-------------|---------|---------------|----------|
| Development | Local development | `.env.local` | Debug enabled, relaxed limits |
| Staging | Pre-production testing | CI/CD secrets | Production-like settings |
| Production | Live traffic | Secret manager | Optimized, hardened |
## Instructions
### Step 1: Configuration Structure
```
config/
coderabbit/
base.ts # Shared defaults
development.ts # Dev overrides
staging.ts # Staging overrides
production.ts # Prod overrides
index.ts # Environment resolver
```
### Step 2: Base Configuration
```typescript
// config/coderabbit/base.ts
export const baseConfig = {
timeout: 30000, # 30000: 30 seconds in ms
maxRetries: 3,
cache: {
enabled: true,
ttlSeconds: 300, # 300: timeout: 5 minutes
},
};
```
### Step 3: Environment-Specific Configs
```typescript
// config/coderabbit/development.ts
import { baseConfig } from "./base";
export const developmentConfig = {
...baseConfig,
apiKey: process.env.GITHUB_TOKEN_DEV,
debug: true,
cache: { enabled: false, ttlSeconds: 60 },
};
// config/coderabbit/staging.ts
import { baseConfig } from "./base";
export const stagingConfig = {
...baseConfig,
apiKey: process.env.GITHUB_TOKEN_STAGING,
debug: false,
};
// config/coderabbit/production.ts
import { baseConfig } from "./base";
export const productionConfig = {
...baseConfig,
apiKey: process.env.GITHUB_TOKEN_PROD,
debug: false,
timeout: 60000, # 60000: 1 minute in ms
maxRetries: 5,
cache: { enabled: true, ttlSeconds: 600 }, # 600: timeout: 10 minutes
};
```
### Step 4: Environment Resolver
```typescript
// config/coderabbit/index.ts
import { developmentConfig } from "./development";
import { stagingConfig } from "./staging";
import { productionConfig } from "./production";
type Environment = "development" | "staging" | "production";
const configs = {
development: developmentConfig,
staging: stagingConfig,
production: productionConfig,
};
export function detectEnvironment(): Environment {
const env = process.env.NODE_ENV || "development";
if (env === "production") return "production";
if (env === "staging" || process.env.VERCEL_ENV === "preview") return "staging";
return "development";
}
export function getCodeRabbitConfig() {
const env = detectEnvironment();
const config = configs[env];
if (!config.apiKey) {
throw new Error(`GITHUB_TOKEN not set for environment: ${env}`);
}
return { ...config, environment: env };
}
```
### Step 5: Secret Management
```bash
# Local development (.env.local - git-ignored)
GITHUB_TOKEN_DEV=your-dev-key
# GitHub Actions
# Settings > Environments > staging/production > Secrets
# Add GITHUB_TOKEN_STAGING and GITHUB_TOKEN_PROD
# AWS Secrets Manager
aws secretsmanager create-secret \
--name coderabbit/production/api-key \
--secret-string "your-prod-key"
# GCP Secret Manager
echo -n "your-prod-key" | gcloud secrets create coderabbit-api-key-prod --data-file=-
```
```yaml
# .github/workflows/deploy.yml
jobs:
deploy-staging:
environment: staging
env:
GITHUB_TOKEN_STAGING: ${{ secrets.GITHUB_TOKEN_STAGING }}
deploy-production:
environment: production
env:
GITHUB_TOKEN_PROD: ${{ secrets.GITHUB_TOKEN_PROD }}
```
## Error Handling
| Issue | Cause | Solution |
|-------|-------|----------|
| Wrong environment | Missing NODE_ENV | Set environment variable in deployment |
| Secret not found | Wrong secret path | Verify secret manager configuration |
| Cross-env data leak | Shared API key | Use separate keys per environment |
| Config validation fail | Missing field | Add startup validation with Zod schema |
## Examples
### Quick Environment Check
```typescript
const config = getCodeRabbitConfig();
console.log(`Running in ${config.environment}`);
console.log(`Cache enabled: ${config.cache.enabled}`);
```
### Startup Validation
```typescript
import { z } from "zod";
const configSchema = z.object({
apiKey: z.string().min(1, "GITHUB_TOKEN is required"),
environment: z.enum(["development", "staging", "production"]),
timeout: z.number().positive(),
});
const config = configSchema.parse(getCodeRabbitConfig());
```
## Resources
- [CodeRabbit Configuration](https://docs.coderabbit.ai/configuration)
- [GitHub Environments](https://docs.github.com/en/actions/deployment/targeting-different-environments)
## Next Steps
For deployment, see `coderabbit-deploy-integration`.
## Output
- Configuration files or code changes applied to the project
- Validation report confirming correct implementation
- Summary of changes made and their rationaleAttribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.