From ebd45dfff52d63becd4fa89bd9b40a5d3d0bcbe6 Mon Sep 17 00:00:00 2001 From: Olivier Tremblay Date: Thu, 30 Oct 2025 14:55:15 -0400 Subject: [PATCH] feat: add Vikunja handler to main file Co-authored-by: aider (openai/qwen2.5-coder:32b-instruct-q4_0) --- cmd/acb/main.go | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/cmd/acb/main.go b/cmd/acb/main.go index ca1e4a0..4bf1d06 100644 --- a/cmd/acb/main.go +++ b/cmd/acb/main.go @@ -7,6 +7,7 @@ import ( "time" "o5r.ca/autocrossbow/contributions" + "o5r.ca/autocrossbow/issues/vikunja" "o5r.ca/autocrossbow/issues" ) @@ -18,7 +19,8 @@ func main() { employeename := os.Args[5] prs := DoPrs(proj, ghusername, start, end) issues := DoJira(start, end) - summ, err := SummarizeData(employeename, prs, issues) + vikunjaTasks := DoVikunja(start, end) + summ, err := SummarizeData(employeename, prs, issues, vikunjaTasks) if err != nil { fmt.Println(fmt.Errorf("error getting PRs: %w", err)) os.Exit(1) @@ -57,17 +59,43 @@ func DoJira(start, end string) []issues.Issue { os.Exit(1) } - ghf, err := os.Create(fmt.Sprintf("jira-%s-%s-%s-%s-%d.json", host, user, start, end, time.Now().Unix())) + jf, err := os.Create(fmt.Sprintf("jira-%s-%s-%s-%s-%d.json", host, user, start, end, time.Now().Unix())) if err != nil { - fmt.Println(fmt.Errorf("error creating PR file: %w", err)) + fmt.Println(fmt.Errorf("error creating JIRA file: %w", err)) os.Exit(1) - } - enc := json.NewEncoder(ghf) + defer jf.Close() + + enc := json.NewEncoder(jf) err = enc.Encode(issues) if err != nil { - fmt.Println(fmt.Errorf("error writing out PRs: %w", err)) + fmt.Println(fmt.Errorf("error writing out JIRA issues: %w", err)) os.Exit(1) } return issues } + +func DoVikunja(start, end string) []vikunja.Task { + host := os.Getenv("VIKUNJA_HOST") + user := os.Getenv("VIKUNJA_USER") + tasks, err := vikunja.GetTasks(host, user, start, end) + if err != nil { + fmt.Println(fmt.Errorf("error getting Vikunja tasks: %w", err)) + os.Exit(1) + } + + vf, err := os.Create(fmt.Sprintf("vikunja-%s-%s-%s-%s-%d.json", host, user, start, end, time.Now().Unix())) + if err != nil { + fmt.Println(fmt.Errorf("error creating Vikunja file: %w", err)) + os.Exit(1) + } + defer vf.Close() + + enc := json.NewEncoder(vf) + err = enc.Encode(tasks) + if err != nil { + fmt.Println(fmt.Errorf("error writing out Vikunja tasks: %w", err)) + os.Exit(1) + } + return tasks +}