package main

import (
	"context"
	"fmt"
	"log"
	"os"
	"time"

	"github.com/jackc/pgx/v5/pgxpool"

	"mimi/internal/provider/github/projects"
)

func main() {
	ctx := context.Background()

	// Get org from env or use default
	org := os.Getenv("GITHUB_ORG")
	if org == "" {
		org = "cyberia-to"
	}

	// Check required env vars
	databaseURL := os.Getenv("DATABASE_URL")
	if databaseURL == "" {
		log.Fatal("DATABASE_URL not set")
	}

	// Initialize database
	pgPool, err := pgxpool.New(ctx, databaseURL)
	if err != nil {
		log.Fatalf("failed to connect to database: %v", err)
	}
	defer pgPool.Close()

	// Create project service (handles its own genkit/prompt initialization)
	svc := projects.New(ctx, pgPool)

	// Fetch projects with issues from last week
	since := time.Now().AddDate(0, 0, -7)
	fmt.Printf("Fetching GitHub projects for org: %s (since %s)\n", org, since.Format("2006-01-02"))

	projectsWithIssues, err := svc.FetchActiveProjects(ctx, org, since)
	if err != nil {
		log.Fatalf("failed to fetch projects: %v", err)
	}

	fmt.Printf("\nSuccessfully fetched %d active projects:\n\n", len(projectsWithIssues))
	for _, pwi := range projectsWithIssues {
		fmt.Printf("Project #%d: %s\n", pwi.Number, pwi.Title)
		if pwi.Description != "" {
			fmt.Printf("  Description: %s\n", pwi.Description)
		}
		fmt.Printf("  Category: %s\n", pwi.Category)
		if pwi.CategoryReasoning != "" {
			fmt.Printf("  Reasoning: %s\n", pwi.CategoryReasoning)
		}
		fmt.Printf("  URL: %s\n", pwi.URL)
		fmt.Printf("  Issues: %d\n\n", len(pwi.Issues))
	}
}

Homonyms

cyberia/research/mimi/main.go
cyberia/research/mimi/cmd/telegram-session/main.go
cyberia/research/mimi/cmd/scraper/telegram/main.go

Graph