services: automation: build: . restart: unless-stopped environment: SOURCE_REPOSITORY: ${SOURCE_REPOSITORY:-https://gitea.tisinfra.de/christian.meyer/lai.git} SOURCE_BRANCH: ${SOURCE_BRANCH:-main} GITEA_URL: ${GITEA_URL:-https://gitea.tisinfra.de} GITEA_OWNER: ${GITEA_OWNER:-christian.meyer} GITEA_REPOSITORY: ${GITEA_REPOSITORY:-lai} GITEA_USERNAME: ${GITEA_USERNAME:-automation-bot} GITEA_TOKEN: ${GITEA_TOKEN:?GITEA_TOKEN must be set} GITEA_QUEUED_LABEL: ${GITEA_QUEUED_LABEL:-ai:queued} GITEA_RUNNING_LABEL: ${GITEA_RUNNING_LABEL:-ai:running} GITEA_READY_LABEL: ${GITEA_READY_LABEL:-ai:ready} GITEA_FAILED_LABEL: ${GITEA_FAILED_LABEL:-ai:failed} AGENT_MODEL: ${AGENT_MODEL:-mistral/devstral-latest} AGENT_MODEL_API_BASE: ${AGENT_MODEL_API_BASE:-} AGENT_COMMAND_TIMEOUT_SECONDS: ${AGENT_COMMAND_TIMEOUT_SECONDS:-180} AGENT_TIMEOUT_SECONDS: ${AGENT_TIMEOUT_SECONDS:-1200} AGENT_STEP_LIMIT: ${AGENT_STEP_LIMIT:-50} AGENT_COST_LIMIT: ${AGENT_COST_LIMIT:-5} AGENT_USER: coder MISTRAL_API_KEY: ${MISTRAL_API_KEY:-} POLL_SECONDS: ${POLL_SECONDS:-60} SETUP_COMMANDS: ${SETUP_COMMANDS:-composer install --no-interaction --prefer-dist;;npm ci} TEST_COMMANDS: ${TEST_COMMANDS:-npm run build;;php artisan test} TEST_DB_HOST: ${TEST_DB_HOST:-laravel-ai-chat-mysql} TEST_DB_PORT: ${TEST_DB_PORT:-3306} TEST_DB_NAME: ${TEST_DB_NAME:-laravel_ai_chat_agent_test} TEST_DB_USER: ${TEST_DB_USER:-lai_test_runner} TEST_DB_PASSWORD: ${TEST_DB_PASSWORD:-agent_test_secret} TEST_CUSTOMER_DB: ${TEST_CUSTOMER_DB:-customer_agent_test} TEST_CONFIG_DB: ${TEST_CONFIG_DB:-cockpit_agent_test} MAX_CHANGED_FILES: ${MAX_CHANGED_FILES:-12} MAX_CHANGED_LINES: ${MAX_CHANGED_LINES:-800} extra_hosts: - host.docker.internal:host-gateway volumes: - automation-workspaces:/workspaces networks: - automation - lai_laravel_network security_opt: - no-new-privileges:true pids_limit: 512 volumes: automation-workspaces: networks: automation: driver: bridge lai_laravel_network: external: true name: lai_laravel-network