add(taskwarrior): integrate uda for git integration

This implementation adds the necessary fields for the tasks of
taskwarrior to be synchronized with git. It provides the necessary
conversion of the taskwarrior times and the standard time.Time go
format. WIP for #3.
This commit is contained in:
2023-10-21 11:03:43 +02:00
parent 11c57d3485
commit 3ed3c53854
4 changed files with 171 additions and 55 deletions

View File

@@ -6,13 +6,11 @@ import (
"gitea.yves-biener.de/yves-biener/gitwarrior/internal/gitea"
"gitea.yves-biener.de/yves-biener/gitwarrior/internal/gitw"
"gitea.yves-biener.de/yves-biener/gitwarrior/internal/taskwarrior"
)
func main() {
// TODO: server url may be also be derived from the git configuration?
server := gitea.NewGitea("https://gitea.yves-biener.de")
repository, err := gitw.Discover()
if err != nil {
fmt.Fprintln(os.Stderr, err)
@@ -23,61 +21,13 @@ func main() {
fmt.Fprintln(os.Stderr, err)
os.Exit(-1)
}
fmt.Printf("%#v\n", repository)
fmt.Println("---")
project := gitw.NewProject(server, repository)
issue, err := server.GetIssue(repository, 1)
if err != nil {
if err = project.Fetch(); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(-1)
}
milestone, err := server.GetMilestone(repository, 1)
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(-1)
}
comments, err := server.GetComments(repository)
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(-1)
}
fmt.Printf("%#v\n", issue)
fmt.Println("---")
fmt.Printf("%#v\n", milestone)
fmt.Println("---")
for _, comment := range comments {
// NOTE: filter comments to only include comments which are related to the current issue
// Order them by their Id's as that's the order they are in the issue (most likely)
if comment.Issue_url == issue.Html_url {
fmt.Printf("%#v\n", comment)
}
}
var filter taskwarrior.Filter
filter.IncludeProjects("notes")
tasks, err := taskwarrior.GetTasks(filter)
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(-1)
}
for _, task := range tasks {
fmt.Printf("%#v\n", task)
}
fmt.Println("---")
filter.Reset()
filter.IncludeIds(1, 2, 3)
tasks, err = taskwarrior.GetTasks(filter)
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(-1)
}
for _, task := range tasks {
fmt.Printf("%#v\n", task)
}
fmt.Println("---")
fmt.Printf("%#v\n", project)
// NOTE: this can be used to add / modify tasks
// var update_tasks []taskwarrior.Task