MCPcopy Index your code
hub / github.com/nikivdev/go / runReviewComments

Function runReviewComments

cli/spec/main.go:395–443  ·  view source on GitHub ↗
(args []string)

Source from the content-addressed store, hash-verified

393}
394
395func runReviewComments(args []string) error {
396 fs := flag.NewFlagSet(commandName+" review-comments", flag.ContinueOnError)
397 fs.SetOutput(os.Stderr)
398
399 hashFlag := fs.String("hash", "", "Hash or unhash URL")
400 apiOrigin := fs.String("api-origin", defaultReviewOrigin(), "Unhash API origin")
401 asJSON := fs.Bool("json", false, "Print raw JSON instead of markdown summary")
402
403 if err := fs.Parse(normalizeArgs(args)); err != nil {
404 if errors.Is(err, flag.ErrHelp) {
405 return nil
406 }
407 return err
408 }
409
410 selector := strings.TrimSpace(*hashFlag)
411 if selector == "" {
412 rest := fs.Args()
413 if len(rest) > 0 {
414 selector = strings.TrimSpace(rest[0])
415 }
416 }
417 if selector == "" {
418 printUsage()
419 return errors.New("missing hash or review URL")
420 }
421
422 hash := normalizeHashSelector(selector)
423 if hash == "" {
424 return fmt.Errorf("could not parse hash from %q", selector)
425 }
426
427 comments, err := fetchReviewComments(*apiOrigin, hash)
428 if err != nil {
429 return err
430 }
431
432 if *asJSON {
433 out, err := json.MarshalIndent(comments, "", " ")
434 if err != nil {
435 return fmt.Errorf("encode feedback json: %w", err)
436 }
437 fmt.Printf("%s\n", out)
438 return nil
439 }
440
441 fmt.Print(renderFeedbackMarkdown(hash, comments))
442 return nil
443}
444
445func defaultReviewOrigin() string {
446 origin := strings.TrimSpace(os.Getenv("UNHASH_API_ORIGIN"))

Callers 1

mainFunction · 0.85

Calls 7

defaultReviewOriginFunction · 0.85
normalizeArgsFunction · 0.85
printUsageFunction · 0.85
normalizeHashSelectorFunction · 0.85
fetchReviewCommentsFunction · 0.85
renderFeedbackMarkdownFunction · 0.85
StringMethod · 0.80

Tested by

no test coverage detected