mirror of
https://github.com/tiennm99/awesome-coding-agents.git
synced 2026-05-13 19:52:18 +00:00
237d7acd6a
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.
48 lines
911 B
Go
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
|
|
}
|