Code Agent is an automated code generation system developed in Go that receives /code commands through GitHub Webhooks, automatically generates code for Issues, and creates Pull Requests.
GitHub Issue (/code) → Webhook → Code Agent → Temporary Repository → Claude Code Container → PR
- Listen for GitHub Issue comment events
- Detect
/codecommand triggers - Parse Issue content and context information
- Clone target repository to temporary directory
- Create new branch (e.g.,
Code-agent/issue-123) - Generate initial commit: "Code-agent has received information, preparing to implement target issue"
- Push branch and create PR
- Mount temporary directory to Claude Code container
- Pass Issue description and requirements as prompts
- Execute automated code generation and modification
- Implement functionality based on Issue requirements
- Parse Claude Code output and generated code
- Commit changes with descriptive messages
- Push to remote branch
- Update PR description with implementation details
/tmp/codeagent/
├── repos/
│ └── owner-repo-issue-123/
│ ├── .git/
│ └── [repository files]
└── sessions/
└── claude-session-123/
└── [Claude execution context]
- File:
internal/webhook/handler.go - Functionality: Process GitHub webhook events
- Trigger Detection: Parse comments for
/codecommands
- File:
internal/workspace/manager.go - Functionality: Manage temporary Git repositories
- Operations: Clone, branch creation, cleanup
- File:
internal/github/client.go - Functionality: GitHub API interactions
- Operations: PR creation, commit pushing, status updates
- File:
internal/code/claude.go - Functionality: Claude Code container management
- Operations: Container creation, prompt execution, result parsing
# GitHub Configuration
GITHUB_TOKEN=your_github_token
WEBHOOK_SECRET=your_webhook_secret
# Claude Configuration
CLAUDE_API_KEY=your_claude_api_key
# System Configuration
WORKSPACE_PATH=/tmp/codeagentgithub:
token: "${GITHUB_TOKEN}"
webhook_secret: "${WEBHOOK_SECRET}"
code:
provider: "claude"
claude:
api_key: "${CLAUDE_API_KEY}"
model: "claude-3-sonnet-20240229"
workspace:
base_path: "/tmp/codeagent"
cleanup_after_hours: 24
server:
port: 8888
host: "0.0.0.0"- Parse Issue requirements automatically
- Generate appropriate code solutions
- Create PR with implementation
- Temporary workspace isolation
- Automatic branch management
- Clean commit history
- Container-based execution
- Context-aware code generation
- Error handling and retry logic
- Real-time webhook processing
- PR status updates
- Automatic cleanup
-
GitHub API Rate Limits
- Implement exponential backoff
- Queue requests when limit exceeded
- Graceful degradation
-
Claude Code Failures
- Retry mechanism with different prompts
- Fallback to simpler implementations
- Error reporting in PR comments
-
Git Operation Failures
- Repository state validation
- Conflict resolution strategies
- Workspace cleanup on failure
-
Resource Management
- Disk space monitoring
- Process timeout handling
- Memory usage optimization
- Signature verification for all incoming requests
- IP allowlisting for GitHub webhooks
- Rate limiting to prevent abuse
- Containerized execution environment
- Resource limits (CPU, memory, disk)
- Network isolation
- Token scope limitation
- Read-only access where possible
- Audit logging for all operations
FROM golang:1.21-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o codeagent ./cmd/codeagent
FROM alpine:latest
RUN apk --no-cache add ca-certificates git
WORKDIR /root/
COPY --from=builder /app/codeagent .
CMD ["./codeagent"]apiVersion: apps/v1
kind: Deployment
metadata:
name: codeagent
spec:
replicas: 2
selector:
matchLabels:
app: codeagent
template:
metadata:
labels:
app: codeagent
spec:
containers:
- name: codeagent
image: codeagent:latest
ports:
- containerPort: 8888
env:
- name: GITHUB_TOKEN
valueFrom:
secretKeyRef:
name: github-secrets
key: token
volumeMounts:
- name: workspace
mountPath: /tmp/codeagent
volumes:
- name: workspace
emptyDir: {}- Multi-language support (Python, JavaScript, etc.)
- Advanced prompt engineering
- Code quality validation
- Integration testing automation
- Multiple AI provider support (OpenAI, Gemini)
- Custom code templates
- Advanced context understanding
- Performance optimizations
- Request processing time
- Success/failure rates
- Resource usage statistics
- GitHub API usage tracking
- DEBUG: Detailed execution flow
- INFO: Key operation milestones
- WARN: Recoverable errors
- ERROR: Critical failures requiring attention
/healthendpoint for load balancer- Database connectivity checks
- External service availability
- Resource utilization monitoring