dockerimg: add support for passing env vars to Docker via git config

Co-Authored-By: sketch <hello@sketch.dev>
diff --git a/dockerimg/dockerimg.go b/dockerimg/dockerimg.go
index 90e9d8f..292c8b6 100644
--- a/dockerimg/dockerimg.go
+++ b/dockerimg/dockerimg.go
@@ -177,7 +177,7 @@
 
 	// Create the sketch container
 	if err := createDockerContainer(ctx, cntrName, hostPort, relPath, imgName, config); err != nil {
-		return err
+		return fmt.Errorf("failed to create docker container: %w", err)
 	}
 
 	// Copy the sketch linux binary into the container
@@ -415,8 +415,6 @@
 }
 
 func createDockerContainer(ctx context.Context, cntrName, hostPort, relPath, imgName string, config ContainerConfig) error {
-	//, config.SessionID, config.GitUsername, config.GitEmail, config.SkabandAddr
-	// sessionID, gitUsername, gitEmail, skabandAddr string
 	cmdArgs := []string{
 		"create",
 		"-it",
@@ -424,6 +422,10 @@
 		"-p", hostPort + ":80", // forward container port 80 to a host port
 		"-e", "ANTHROPIC_API_KEY=" + config.AntAPIKey,
 	}
+
+	for _, envVar := range getEnvForwardingFromGitConfig(ctx) {
+		cmdArgs = append(cmdArgs, "-e", envVar)
+	}
 	if config.AntURL != "" {
 		cmdArgs = append(cmdArgs, "-e", "ANT_URL="+config.AntURL)
 	}
@@ -808,3 +810,27 @@
 
 	return os.Remove(src)
 }
+
+// getEnvForwardingFromGitConfig retrieves environment variables to pass through to Docker
+// from git config using the sketch.envfwd multi-valued key.
+func getEnvForwardingFromGitConfig(ctx context.Context) []string {
+	outb, err := exec.CommandContext(ctx, "git", "config", "--get-all", "sketch.envfwd").CombinedOutput()
+	out := string(outb)
+	if err != nil {
+		if strings.Contains(out, "key does not exist") {
+			return nil
+		}
+		slog.ErrorContext(ctx, "failed to get sketch.envfwd from git config", "err", err, "output", out)
+		return nil
+	}
+
+	var envVars []string
+	for envVar := range strings.Lines(out) {
+		envVar = strings.TrimSpace(envVar)
+		if envVar == "" {
+			continue
+		}
+		envVars = append(envVars, envVar+"="+os.Getenv(envVar))
+	}
+	return envVars
+}