48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
# File 'lib/git/markdown/cli.rb', line 48
def pr(identifier)
config = Configuration.load
owner, repo, number = parse_identifier(identifier)
debug_log(options[:debug], "Fetching PR #{owner}/#{repo}##{number}")
debug_log(options[:debug], "API URL: #{config.api_url}")
provider = create_provider(config)
puts "Fetching pull request..." unless options[:stdout]
pull_request = provider.fetch_pull_request(owner, repo, number)
debug_log(options[:debug], "PR title: #{pull_request.title}")
puts "Fetching comments..." unless options[:stdout]
= provider.(owner, repo, number)
debug_log(options[:debug], "Found #{.length} general comments")
puts "Fetching reviews..." unless options[:stdout]
reviews = provider.fetch_reviews(owner, repo, number)
debug_log(options[:debug], "Found #{reviews.length} reviews")
generator = Markdown::Generator.new(
pull_request,
,
reviews,
status_filter: options[:status].to_sym
)
markdown = generator.generate
if options[:stdout]
puts markdown
else
output_path = determine_output_path(options[:output], generator.filename)
File.write(output_path, markdown)
puts "✓ Saved to #{output_path}"
end
rescue AuthenticationError => e
puts "Authentication error: #{e.message}"
exit 1
rescue NotFoundError => e
puts "Not found: #{e.message}"
exit 1
rescue ApiError => e
puts "API error: #{e.message}"
debug_log(options[:debug], e.backtrace.join("\n"))
exit 1
rescue => e
puts "Error: #{e.message}"
debug_log(options[:debug], e.backtrace.join("\n"))
exit 1
end
|