Class: PRReviewer

Inherits:
Object
  • Object
show all
Defined in:
lib/pr_reviewer.rb

Instance Method Summary collapse

Constructor Details

#initialize ⇒ PRReviewer

Returns a new instance of PRReviewer.



10
11
12
13
# File 'lib/pr_reviewer.rb', line 10

def initialize
  @github_client = Octokit::Client.new(access_token: ENV['GITHUB_TOKEN'])
  @repository = ENV['GITHUB_REPOSITORY']
end

Instance Method Details

#review_pr(pr_number) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/pr_reviewer.rb', line 15

def review_pr(pr_number)
  begin
    # Fetch PR details
    pr = @github_client.pull_request(@repository, pr_number)
    puts "Reviewing PR ##{pr_number}: #{pr.title}"

    # Get PR diff
    diff = @github_client.pull_request(@repository, pr_number, accept: 'application/vnd.github.v3.diff')
    
    # Generate summary
    summary = generate_summary(pr, diff)
    puts summary
    
    # Get review from Perplexity
    review = get_perplexity_review(pr, diff)
    
    # Post comments
    post_review_comments(pr_number, summary, review)
    
    puts "Review completed successfully!"
  rescue Octokit::Error => e
    puts "GitHub API Error: #{e.message}"
  rescue StandardError => e
    puts "Error: #{e.message}"
  end
end