home / skills / jeremylongshore / claude-code-plugins-plus-skills / coderabbit-security-basics
/plugins/saas-packs/coderabbit-pack/skills/coderabbit-security-basics
This skill helps secure CodeRabbit integration by managing API keys, enforcing least privilege, and auditing access across environments.
npx playbooks add skill jeremylongshore/claude-code-plugins-plus-skills --skill coderabbit-security-basicsReview the files below or copy the command above to add this skill to your agents.
---
name: coderabbit-security-basics
description: |
Apply CodeRabbit security best practices for secrets and access control.
Use when securing API keys, implementing least privilege access,
or auditing CodeRabbit security configuration.
Trigger with phrases like "coderabbit security", "coderabbit secrets",
"secure coderabbit", "coderabbit API key security".
allowed-tools: Read, Write, Grep
version: 1.0.0
license: MIT
author: Jeremy Longshore <[email protected]>
---
# CodeRabbit Security Basics
## Overview
Security best practices for CodeRabbit API keys, tokens, and access control.
## Prerequisites
- CodeRabbit SDK installed
- Understanding of environment variables
- Access to CodeRabbit dashboard
## Instructions
### Step 1: Configure Environment Variables
```bash
# .env (NEVER commit to git)
CODERABBIT_API_KEY=sk_live_***
CODERABBIT_SECRET=***
# .gitignore
.env
.env.local
.env.*.local
```
### Step 2: Implement Secret Rotation
```bash
# 1. Generate new key in CodeRabbit dashboard
# 2. Update environment variable
export CODERABBIT_API_KEY="new_key_here"
# 3. Verify new key works
curl -H "Authorization: Bearer ${CODERABBIT_API_KEY}" \
https://api.coderabbit.com/health
# 4. Revoke old key in dashboard
```
### Step 3: Apply Least Privilege
| Environment | Recommended Scopes |
|-------------|-------------------|
| Development | `read:*` |
| Staging | `read:*, write:limited` |
| Production | `Only required scopes` |
## Output
- Secure API key storage
- Environment-specific access controls
- Audit logging enabled
## Error Handling
| Security Issue | Detection | Mitigation |
|----------------|-----------|------------|
| Exposed API key | Git scanning | Rotate immediately |
| Excessive scopes | Audit logs | Reduce permissions |
| Missing rotation | Key age check | Schedule rotation |
## Examples
### Service Account Pattern
```typescript
const clients = {
reader: new CodeRabbitClient({
apiKey: process.env.CODERABBIT_READ_KEY,
}),
writer: new CodeRabbitClient({
apiKey: process.env.CODERABBIT_WRITE_KEY,
}),
};
```
### Webhook Signature Verification
```typescript
import crypto from 'crypto';
function verifyWebhookSignature(
payload: string, signature: string, secret: string
): boolean {
const expected = crypto.createHmac('sha256', secret).update(payload).digest('hex');
return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
}
```
### Security Checklist
- [ ] API keys in environment variables
- [ ] `.env` files in `.gitignore`
- [ ] Different keys for dev/staging/prod
- [ ] Minimal scopes per environment
- [ ] Webhook signatures validated
- [ ] Audit logging enabled
### Audit Logging
```typescript
interface AuditEntry {
timestamp: Date;
action: string;
userId: string;
resource: string;
result: 'success' | 'failure';
metadata?: Record<string, any>;
}
async function auditLog(entry: Omit<AuditEntry, 'timestamp'>): Promise<void> {
const log: AuditEntry = { ...entry, timestamp: new Date() };
// Log to CodeRabbit analytics
await coderabbitClient.track('audit', log);
// Also log locally for compliance
console.log('[AUDIT]', JSON.stringify(log));
}
// Usage
await auditLog({
action: 'coderabbit.api.call',
userId: currentUser.id,
resource: '/v1/resource',
result: 'success',
});
```
## Resources
- [CodeRabbit Security Guide](https://docs.coderabbit.com/security)
- [CodeRabbit API Scopes](https://docs.coderabbit.com/scopes)
## Next Steps
For production deployment, see `coderabbit-prod-checklist`.This skill applies CodeRabbit security best practices for API keys, tokens, and access control. It guides environment variable handling, secret rotation, least-privilege configuration, and basic audit logging. Use it to quickly harden integrations that call CodeRabbit services.
The skill inspects common secret storage patterns and recommends secure alternatives such as environment variables and ignored .env files. It walks through a rotation procedure, shows how to grant minimal scopes per environment, and demonstrates webhook signature verification and audit logging patterns. Practical code snippets illustrate service account usage and audit entry recording.
How often should I rotate CodeRabbit API keys?
Rotate keys on a regular schedule and immediately after any suspected exposure. Align rotation frequency with your risk profile and compliance needs.
What scopes should production keys have?
Give production keys only the scopes strictly required for the task. Avoid broad read:* or write:* scopes in production unless absolutely necessary.