package pierre import ( "context" "fmt" "log" ) func (s *Service) MakeReview(ctx context.Context, organisation string, repo string, prID int) error { // Fetch Diff using positional args from shared RepoArgs diff, err := s.git.GetDiff(ctx, organisation, repo, prID) defer diff.Close() if err != nil { return fmt.Errorf("error fetching diff: %w", err) } // Run Logic comments, err := s.judgePR(ctx, diff) if err != nil { return fmt.Errorf("error judging PR: %w", err) } fmt.Printf("Analysis complete. Found %d issues.\n---\n", len(comments)) model := s.chat.GetProviderName() for _, c := range comments { c.Message = fmt.Sprintf("%s (Generated by: %s)", c.Message, model) if s.disableComments { // Dry‑run: just log what would have been posted. log.Printf("dry‑run: %s:%d => %s", c.File, c.Line, c.Message) } else { // Normal mode: print to stdout and post the comment to the VCS. fmt.Printf("File: %s\nLine: %d\nMessage: %s\n%s\n", c.File, c.Line, c.Message, "---") if err := s.git.AddComment(ctx, organisation, repo, prID, c); err != nil { log.Printf("Failed to add comment: %v", err) } } } return nil }