Files
kandev/apps/backend/dockerfiles/entrypoint.sh
T
João Salavisa 75f1732421 feat: add GitHub token injection for remote executors and Docker session resume (#654)
* feat: add GitHub token injection for remote executors and Docker session resume

- Add global GitHub access token configuration (backend + frontend)
- Inject GitHub token into Docker and Sprites executors via env vars and Git credential helper
- Transition Docker executor from host mounting to repository cloning
- Implement Docker session resume (reconnect to existing containers after backend restart)
- Add shell validation using exec.LookPath in agentctl
- Add scriptengine providers for agent install and agentctl placeholders

* fix: format github-status.tsx with prettier

* fix: resolve lint issues (goconst, errcheck, file-length)

* fix: address code review findings

- Fix resolveGHCLIToken to check both GITHUB_TOKEN and GH_TOKEN guards
- Fix credential helper to use \\ fallback
- Change /bin/bash to /bin/sh in credential helper for Alpine compat
- Strip embedded token from .git/config after clone in prepare scripts
- Extract buildLaunchAgentRequest helpers to stay under 80-line limit
- Add tests for GitHubAuthProvider, injectTokenIntoURL, reconnect validation
- Add GH_TOKEN-only test case for resolveGHCLIToken

* refactor(executor): extract GitHub credential resolution to separate file

Move injectGitHubToken, injectGitHubTokenFromCLI, resolveRemoteCredentials,
resolveAuthSecrets, methodIDToEnvVar, resolveGHCLIToken, and detectGHToken
out of executor_execute.go (was 803 logical lines, over the 800-line limit
after merging main) into a new executor_credentials.go file. Also adds the
nil-guard on secretStore in resolveAuthSecrets that was flagged by review.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Kandev Agent <agent@kandev.dev>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-24 22:15:50 +01:00

29 lines
730 B
Bash

#!/bin/bash
# Entrypoint script for Kandev Multi-Agent
# Runs agentctl HTTP server that manages agent subprocesses (auggie, codex, etc.)
set -e
echo "Starting Kandev Multi-Agent..."
# Validate agent CLIs are available
if ! command -v auggie &> /dev/null; then
echo "WARNING: auggie CLI not found"
fi
if ! command -v codex &> /dev/null; then
echo "WARNING: codex CLI not found"
fi
# Run prepare script if provided (e.g., clone repo, configure git)
if [ -n "$KANDEV_PREPARE_SCRIPT" ]; then
echo "Running prepare script..."
eval "$KANDEV_PREPARE_SCRIPT"
echo "Prepare script completed."
fi
# Run agentctl HTTP server
echo "Starting agentctl on port ${AGENTCTL_PORT:-39429}..."
exec /usr/local/bin/agentctl