Add comment and worklog CLI commands

This commit is contained in:
zhi
2026-03-21 17:11:20 +00:00
parent 1e8437d0b1
commit 9b3edc0ede
6 changed files with 414 additions and 1 deletions

View File

@@ -190,6 +190,12 @@ func handleGroup(group help.Group, args []string) {
case "propose":
handleProposeCommand(sub.Name, remaining)
return
case "comment":
handleCommentCommand(sub.Name, remaining)
return
case "worklog":
handleWorklogCommand(sub.Name, remaining)
return
case "monitor":
handleMonitorCommand(sub.Name, remaining)
return
@@ -735,6 +741,132 @@ func handleProposeCommand(subCmd string, args []string) {
}
}
func handleCommentCommand(subCmd string, args []string) {
tokenFlag := ""
var filtered []string
for i := 0; i < len(args); i++ {
switch args[i] {
case "--token":
if i+1 < len(args) {
i++
tokenFlag = args[i]
}
default:
filtered = append(filtered, args[i])
}
}
switch subCmd {
case "add":
taskCode, content := "", ""
for i := 0; i < len(filtered); i++ {
switch filtered[i] {
case "--task":
if i+1 < len(filtered) {
i++
taskCode = filtered[i]
}
case "--content":
if i+1 < len(filtered) {
i++
content = filtered[i]
}
default:
output.Errorf("unknown flag: %s", filtered[i])
}
}
commands.RunCommentAdd(taskCode, content, tokenFlag)
case "list":
taskCode := ""
for i := 0; i < len(filtered); i++ {
switch filtered[i] {
case "--task":
if i+1 < len(filtered) {
i++
taskCode = filtered[i]
}
default:
output.Errorf("unknown flag: %s", filtered[i])
}
}
commands.RunCommentList(taskCode, tokenFlag)
default:
output.Errorf("hf comment %s is not implemented yet", subCmd)
}
}
func handleWorklogCommand(subCmd string, args []string) {
tokenFlag := ""
var filtered []string
for i := 0; i < len(args); i++ {
switch args[i] {
case "--token":
if i+1 < len(args) {
i++
tokenFlag = args[i]
}
default:
filtered = append(filtered, args[i])
}
}
switch subCmd {
case "add":
taskCode, desc, date := "", "", ""
hours := 0.0
for i := 0; i < len(filtered); i++ {
switch filtered[i] {
case "--task":
if i+1 < len(filtered) {
i++
taskCode = filtered[i]
}
case "--hours":
if i+1 < len(filtered) {
i++
if _, err := fmt.Sscanf(filtered[i], "%f", &hours); err != nil {
output.Error("--hours requires a numeric value")
}
}
case "--desc":
if i+1 < len(filtered) {
i++
desc = filtered[i]
}
case "--date":
if i+1 < len(filtered) {
i++
date = filtered[i]
}
default:
output.Errorf("unknown flag: %s", filtered[i])
}
}
commands.RunWorklogAdd(taskCode, hours, desc, date, tokenFlag)
case "list":
taskCode, username := "", ""
for i := 0; i < len(filtered); i++ {
switch filtered[i] {
case "--task":
if i+1 < len(filtered) {
i++
taskCode = filtered[i]
}
case "--user":
if i+1 < len(filtered) {
i++
username = filtered[i]
}
default:
output.Errorf("unknown flag: %s", filtered[i])
}
}
commands.RunWorklogList(taskCode, username, tokenFlag)
default:
output.Errorf("hf worklog %s is not implemented yet", subCmd)
}
}
func handleMonitorCommand(subCmd string, args []string) {
tokenFlag := ""
var filtered []string