func findDefaultGCPProject()

in gollm/gemini.go [92:122]


func findDefaultGCPProject(ctx context.Context) (string, error) {
	log := klog.FromContext(ctx)

	// First check env vars
	// GOOGLE_CLOUD_PROJECT is the default for the genai library and a GCP convention
	projectID := ""
	for _, env := range []string{"GOOGLE_CLOUD_PROJECT"} {
		if v := os.Getenv(env); v != "" {
			projectID = v
			log.Info("got project for vertex client from env var", "project", projectID, "env", env)
			return projectID, nil
		}
	}

	// Now check default project in gcloud
	{
		cmd := exec.CommandContext(ctx, "gcloud", "config", "get", "project")
		var stdout bytes.Buffer
		cmd.Stdout = &stdout
		if err := cmd.Run(); err != nil {
			return "", fmt.Errorf("cannot get project (using gcloud config get project): %w", err)
		}
		projectID = strings.TrimSpace(stdout.String())
		if projectID != "" {
			log.Info("got project from gcloud config", "project", projectID)
			return projectID, nil
		}
	}

	return "", fmt.Errorf("project was not set in gcloud config (or GOOGLE_CLOUD_PROJECT env var)")
}