Automated task orchestration system for YouTrack + Gitea + Woodpecker CI: - runner.py: Main orchestration engine with state machine workflow - agent.py: Claude Code subprocess pool management - youtrack_client.py: YouTrack API wrapper - gitea_client.py: Gitea API + git CLI operations - woodpecker_client.py: CI build monitoring - webhook_server.py: Real-time event handling - prompts/: Agent prompt templates (developer, qa, librarian) Workflow: Ready → In Progress → Build → Verify → Document → Review → Done 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
54 lines
1.1 KiB
Desktop File
54 lines
1.1 KiB
Desktop File
[Unit]
|
|
Description=ClearGrow Agent Runner
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
|
|
# Run as dedicated user (not root!)
|
|
User=cleargrow
|
|
Group=cleargrow
|
|
|
|
# Working directory
|
|
WorkingDirectory=/opt/agent_runner
|
|
|
|
# Main process
|
|
ExecStart=/opt/agent_runner/venv/bin/python /opt/agent_runner/runner.py -c /opt/agent_runner/config.yaml
|
|
|
|
# Restart policy
|
|
Restart=always
|
|
RestartSec=30
|
|
|
|
# Stop timeout (allow agents to finish)
|
|
TimeoutStopSec=120
|
|
|
|
# Logging
|
|
StandardOutput=journal
|
|
StandardError=journal
|
|
SyslogIdentifier=cleargrow-agent-runner
|
|
|
|
# Environment
|
|
Environment="PYTHONUNBUFFERED=1"
|
|
Environment="HOME=/home/cleargrow"
|
|
Environment="YOUTRACK_URL=https://track.yourdomain.com"
|
|
|
|
# Token should be in a separate env file for security
|
|
EnvironmentFile=-/opt/agent_runner/.env
|
|
|
|
# Security hardening
|
|
NoNewPrivileges=true
|
|
ProtectSystem=strict
|
|
ProtectHome=read-only
|
|
PrivateTmp=true
|
|
|
|
# Allow write access to required directories
|
|
ReadWritePaths=/opt/repos
|
|
ReadWritePaths=/var/log/cleargrow_agent_runner.log
|
|
|
|
# Allow network access
|
|
PrivateNetwork=false
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|