39 lines
936 B
Go
39 lines
936 B
Go
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)
|
|
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
|
|
}
|