-runtime.go에 에이전트 런 브리지 인터op 기능 추가 - runner.go에 HTTP invoccer와 워커 브리지 로직 추가 - postgres.go에 worker_bridge 관련 migration 및 저장소 계층 구현 - model.go에 WorkerBridge 엔터티 모델 추가 - main.go에 워커 브리지 초기화 및 HTTP 서버 통합 - config.go에 워커 브리지 설정 항목 추가 - migration에 worker_bridge 스키마 추가 - agent-roadmap에 iop-agent-run-bridge 페이즈 및 마일스톤 업데이트 - http_invoker.go 새로 추가하여 외부 HTTP 호출 추상화
67 lines
1.7 KiB
Go
67 lines
1.7 KiB
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"strconv"
|
|
)
|
|
|
|
type Config struct {
|
|
AppEnv string
|
|
HTTPAddr string
|
|
DatabaseURL string
|
|
RedisURL string
|
|
ProtoSocketPath string
|
|
ProtoSocketHeartbeatSec int
|
|
ProtoSocketHeartbeatWait int
|
|
ForgejoWebhookSecret string
|
|
WorkerEnabled bool
|
|
// IOPEndpoint is the base URL of the IOP HTTP dispatch service.
|
|
// When empty, agent_run operations are not picked.
|
|
IOPEndpoint string
|
|
}
|
|
|
|
func Load() Config {
|
|
return Config{
|
|
AppEnv: getEnv("APP_ENV", "local"),
|
|
HTTPAddr: getEnv("HTTP_ADDR", ":8080"),
|
|
DatabaseURL: os.Getenv("DATABASE_URL"),
|
|
RedisURL: os.Getenv("REDIS_URL"),
|
|
ProtoSocketPath: getEnv("PROTO_SOCKET_PATH", "/proto-socket"),
|
|
ProtoSocketHeartbeatSec: getEnvInt("PROTO_SOCKET_HEARTBEAT_SEC", 30),
|
|
ProtoSocketHeartbeatWait: getEnvInt("PROTO_SOCKET_HEARTBEAT_WAIT_SEC", 10),
|
|
ForgejoWebhookSecret: os.Getenv("FORGEJO_WEBHOOK_SECRET"),
|
|
WorkerEnabled: getEnvBool("WORKER_ENABLED", true),
|
|
IOPEndpoint: os.Getenv("IOP_ENDPOINT"),
|
|
}
|
|
}
|
|
|
|
func getEnv(key, fallback string) string {
|
|
if value := os.Getenv(key); value != "" {
|
|
return value
|
|
}
|
|
return fallback
|
|
}
|
|
|
|
func getEnvBool(key string, fallback bool) bool {
|
|
value := os.Getenv(key)
|
|
if value == "" {
|
|
return fallback
|
|
}
|
|
parsed, err := strconv.ParseBool(value)
|
|
if err != nil {
|
|
return fallback
|
|
}
|
|
return parsed
|
|
}
|
|
|
|
func getEnvInt(key string, fallback int) int {
|
|
value := os.Getenv(key)
|
|
if value == "" {
|
|
return fallback
|
|
}
|
|
parsed, err := strconv.Atoi(value)
|
|
if err != nil {
|
|
return fallback
|
|
}
|
|
return parsed
|
|
}
|