package main
import (
"context"
"fmt"
"log"
"os"
"time"
"github.com/jackc/pgx/v5/pgxpool"
"mimi/internal/provider/github/projects"
)
func main() {
ctx := context.Background()
org := os.Getenv("GITHUB_ORG")
if org == "" {
org = "cyberia-to"
}
databaseURL := os.Getenv("DATABASE_URL")
if databaseURL == "" {
log.Fatal("DATABASE_URL not set")
}
pgPool, err := pgxpool.New(ctx, databaseURL)
if err != nil {
log.Fatalf("failed to connect to database: %v", err)
}
defer pgPool.Close()
svc := projects.New(ctx, pgPool)
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))
}
}