Files
tiennm99 237d7acd6a feat: initial scaffold of awesome-coding-agents tracker
Go updater that fetches AI agent coding tool repo stats via GitHub GraphQL
(batched, one query), sorts by star count, appends a daily snapshot to
data/history.jsonl, and regenerates README.md from templates/readme.tmpl.
Daily workflow at .github/workflows/update.yml refreshes rankings and
commits changes. Seed list in data/agents.yml covers 19 tracked repos.
2026-05-13 14:43:35 +07:00

48 lines
911 B
Go

package main
import (
"fmt"
"log"
"os"
)
func main() {
if err := run(); err != nil {
log.Fatalf("update failed: %v", err)
}
}
func run() error {
agents, err := loadAgents("data/agents.yml")
if err != nil {
return fmt.Errorf("load agents: %w", err)
}
if len(agents) == 0 {
return fmt.Errorf("no agents in data/agents.yml")
}
token := os.Getenv("GITHUB_TOKEN")
if token == "" {
return fmt.Errorf("GITHUB_TOKEN env var required")
}
stats, err := fetchStats(token, agents)
if err != nil {
return fmt.Errorf("fetch stats: %w", err)
}
sortByStars(stats)
deltas, err := appendHistory("data/history.jsonl", stats)
if err != nil {
return fmt.Errorf("append history: %w", err)
}
if err := renderReadme("templates/readme.tmpl", "README.md", stats, deltas); err != nil {
return fmt.Errorf("render readme: %w", err)
}
fmt.Printf("updated %d agents\n", len(stats))
return nil
}