@probelabs/visor 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1240 -0
- package/action.yml +142 -0
- package/defaults/.visor.yaml +184 -0
- package/dist/action-cli-bridge.d.ts +104 -0
- package/dist/action-cli-bridge.d.ts.map +1 -0
- package/dist/action-cli-bridge.js +372 -0
- package/dist/action-cli-bridge.js.map +1 -0
- package/dist/ai-review-service.d.ts +84 -0
- package/dist/ai-review-service.d.ts.map +1 -0
- package/dist/ai-review-service.js +674 -0
- package/dist/ai-review-service.js.map +1 -0
- package/dist/check-execution-engine.d.ts +165 -0
- package/dist/check-execution-engine.d.ts.map +1 -0
- package/dist/check-execution-engine.js +1172 -0
- package/dist/check-execution-engine.js.map +1 -0
- package/dist/cli-main.d.ts +6 -0
- package/dist/cli-main.d.ts.map +1 -0
- package/dist/cli-main.js +247 -0
- package/dist/cli-main.js.map +1 -0
- package/dist/cli.d.ts +47 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +224 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands.d.ts +10 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +53 -0
- package/dist/commands.js.map +1 -0
- package/dist/config.d.ts +63 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +369 -0
- package/dist/config.js.map +1 -0
- package/dist/dependency-resolver.d.ts +54 -0
- package/dist/dependency-resolver.d.ts.map +1 -0
- package/dist/dependency-resolver.js +163 -0
- package/dist/dependency-resolver.js.map +1 -0
- package/dist/event-mapper.d.ts +125 -0
- package/dist/event-mapper.d.ts.map +1 -0
- package/dist/event-mapper.js +311 -0
- package/dist/event-mapper.js.map +1 -0
- package/dist/failure-condition-evaluator.d.ts +81 -0
- package/dist/failure-condition-evaluator.d.ts.map +1 -0
- package/dist/failure-condition-evaluator.js +445 -0
- package/dist/failure-condition-evaluator.js.map +1 -0
- package/dist/git-repository-analyzer.d.ts +45 -0
- package/dist/git-repository-analyzer.d.ts.map +1 -0
- package/dist/git-repository-analyzer.js +285 -0
- package/dist/git-repository-analyzer.js.map +1 -0
- package/dist/github-check-service.d.ts +104 -0
- package/dist/github-check-service.d.ts.map +1 -0
- package/dist/github-check-service.js +382 -0
- package/dist/github-check-service.js.map +1 -0
- package/dist/github-comments.d.ts +109 -0
- package/dist/github-comments.d.ts.map +1 -0
- package/dist/github-comments.js +289 -0
- package/dist/github-comments.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1265 -0
- package/dist/index.js.map +1 -0
- package/dist/output-formatters.d.ts +66 -0
- package/dist/output-formatters.d.ts.map +1 -0
- package/dist/output-formatters.js +624 -0
- package/dist/output-formatters.js.map +1 -0
- package/dist/pr-analyzer.d.ts +47 -0
- package/dist/pr-analyzer.d.ts.map +1 -0
- package/dist/pr-analyzer.js +194 -0
- package/dist/pr-analyzer.js.map +1 -0
- package/dist/pr-detector.d.ts +78 -0
- package/dist/pr-detector.d.ts.map +1 -0
- package/dist/pr-detector.js +357 -0
- package/dist/pr-detector.js.map +1 -0
- package/dist/providers/ai-check-provider.d.ts +40 -0
- package/dist/providers/ai-check-provider.d.ts.map +1 -0
- package/dist/providers/ai-check-provider.js +416 -0
- package/dist/providers/ai-check-provider.js.map +1 -0
- package/dist/providers/check-provider-registry.d.ts +67 -0
- package/dist/providers/check-provider-registry.d.ts.map +1 -0
- package/dist/providers/check-provider-registry.js +138 -0
- package/dist/providers/check-provider-registry.js.map +1 -0
- package/dist/providers/check-provider.interface.d.ts +78 -0
- package/dist/providers/check-provider.interface.d.ts.map +1 -0
- package/dist/providers/check-provider.interface.js +11 -0
- package/dist/providers/check-provider.interface.js.map +1 -0
- package/dist/providers/index.d.ts +10 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +19 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/script-check-provider.d.ts +20 -0
- package/dist/providers/script-check-provider.d.ts.map +1 -0
- package/dist/providers/script-check-provider.js +163 -0
- package/dist/providers/script-check-provider.js.map +1 -0
- package/dist/providers/tool-check-provider.d.ts +19 -0
- package/dist/providers/tool-check-provider.d.ts.map +1 -0
- package/dist/providers/tool-check-provider.js +125 -0
- package/dist/providers/tool-check-provider.js.map +1 -0
- package/dist/providers/webhook-check-provider.d.ts +21 -0
- package/dist/providers/webhook-check-provider.d.ts.map +1 -0
- package/dist/providers/webhook-check-provider.js +173 -0
- package/dist/providers/webhook-check-provider.js.map +1 -0
- package/dist/reviewer.d.ts +88 -0
- package/dist/reviewer.d.ts.map +1 -0
- package/dist/reviewer.js +760 -0
- package/dist/reviewer.js.map +1 -0
- package/dist/types/cli.d.ts +41 -0
- package/dist/types/cli.d.ts.map +1 -0
- package/dist/types/cli.js +3 -0
- package/dist/types/cli.js.map +1 -0
- package/dist/types/config.d.ts +315 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +6 -0
- package/dist/types/config.js.map +1 -0
- package/dist/utils/env-resolver.d.ts +38 -0
- package/dist/utils/env-resolver.d.ts.map +1 -0
- package/dist/utils/env-resolver.js +130 -0
- package/dist/utils/env-resolver.js.map +1 -0
- package/package.json +116 -0
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommentManager = void 0;
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
|
+
/**
|
|
6
|
+
* Manages GitHub PR comments with dynamic updating capabilities
|
|
7
|
+
*/
|
|
8
|
+
class CommentManager {
|
|
9
|
+
octokit;
|
|
10
|
+
retryConfig;
|
|
11
|
+
constructor(octokit, retryConfig) {
|
|
12
|
+
this.octokit = octokit;
|
|
13
|
+
this.retryConfig = {
|
|
14
|
+
maxRetries: 3,
|
|
15
|
+
baseDelay: 1000,
|
|
16
|
+
maxDelay: 10000,
|
|
17
|
+
backoffFactor: 2,
|
|
18
|
+
...retryConfig,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Find existing Visor comment by comment ID marker
|
|
23
|
+
*/
|
|
24
|
+
async findVisorComment(owner, repo, prNumber, commentId) {
|
|
25
|
+
try {
|
|
26
|
+
const comments = await this.octokit.rest.issues.listComments({
|
|
27
|
+
owner,
|
|
28
|
+
repo,
|
|
29
|
+
issue_number: prNumber,
|
|
30
|
+
per_page: 100, // GitHub default max
|
|
31
|
+
});
|
|
32
|
+
for (const comment of comments.data) {
|
|
33
|
+
if (comment.body && this.isVisorComment(comment.body, commentId)) {
|
|
34
|
+
return comment;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
if (this.isRateLimitError(error)) {
|
|
41
|
+
await this.handleRateLimit(error);
|
|
42
|
+
return this.findVisorComment(owner, repo, prNumber, commentId);
|
|
43
|
+
}
|
|
44
|
+
throw error;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Update existing comment or create new one with collision detection
|
|
49
|
+
*/
|
|
50
|
+
async updateOrCreateComment(owner, repo, prNumber, content, options = {}) {
|
|
51
|
+
const { commentId = this.generateCommentId(), triggeredBy = 'unknown', allowConcurrentUpdates = false, commitSha, } = options;
|
|
52
|
+
return this.withRetry(async () => {
|
|
53
|
+
const existingComment = await this.findVisorComment(owner, repo, prNumber, commentId);
|
|
54
|
+
const formattedContent = this.formatCommentWithMetadata(content, {
|
|
55
|
+
commentId,
|
|
56
|
+
lastUpdated: new Date().toISOString(),
|
|
57
|
+
triggeredBy,
|
|
58
|
+
commitSha,
|
|
59
|
+
});
|
|
60
|
+
if (existingComment) {
|
|
61
|
+
// Check for collision if not allowing concurrent updates
|
|
62
|
+
if (!allowConcurrentUpdates) {
|
|
63
|
+
const currentComment = await this.octokit.rest.issues.getComment({
|
|
64
|
+
owner,
|
|
65
|
+
repo,
|
|
66
|
+
comment_id: existingComment.id,
|
|
67
|
+
});
|
|
68
|
+
if (currentComment.data.updated_at !== existingComment.updated_at) {
|
|
69
|
+
throw new Error(`Comment collision detected for comment ${commentId}. Another process may have updated it.`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
const updatedComment = await this.octokit.rest.issues.updateComment({
|
|
73
|
+
owner,
|
|
74
|
+
repo,
|
|
75
|
+
comment_id: existingComment.id,
|
|
76
|
+
body: formattedContent,
|
|
77
|
+
});
|
|
78
|
+
return updatedComment.data;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
const newComment = await this.octokit.rest.issues.createComment({
|
|
82
|
+
owner,
|
|
83
|
+
repo,
|
|
84
|
+
issue_number: prNumber,
|
|
85
|
+
body: formattedContent,
|
|
86
|
+
});
|
|
87
|
+
return newComment.data;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Format comment content with metadata markers
|
|
93
|
+
*/
|
|
94
|
+
formatCommentWithMetadata(content, metadata) {
|
|
95
|
+
const { commentId, lastUpdated, triggeredBy, commitSha } = metadata;
|
|
96
|
+
const commitInfo = commitSha ? ` | Commit: ${commitSha.substring(0, 7)}` : '';
|
|
97
|
+
return `<!-- visor-comment-id:${commentId} -->
|
|
98
|
+
${content}
|
|
99
|
+
|
|
100
|
+
*Last updated: ${lastUpdated} | Triggered by: ${triggeredBy}${commitInfo}*
|
|
101
|
+
<!-- /visor-comment-id:${commentId} -->`;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Create collapsible sections for comment content
|
|
105
|
+
*/
|
|
106
|
+
createCollapsibleSection(title, content, isExpanded = false) {
|
|
107
|
+
const openAttribute = isExpanded ? ' open' : '';
|
|
108
|
+
return `<details${openAttribute}>
|
|
109
|
+
<summary>${title}</summary>
|
|
110
|
+
|
|
111
|
+
${content}
|
|
112
|
+
|
|
113
|
+
</details>`;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Group review results by check type with collapsible sections
|
|
117
|
+
*/
|
|
118
|
+
formatGroupedResults(results, groupBy = 'check') {
|
|
119
|
+
const grouped = this.groupResults(results, groupBy);
|
|
120
|
+
const sections = [];
|
|
121
|
+
for (const [groupKey, items] of Object.entries(grouped)) {
|
|
122
|
+
const totalScore = items.reduce((sum, item) => sum + (item.score || 0), 0) / items.length;
|
|
123
|
+
const totalIssues = items.reduce((sum, item) => sum + (item.issuesFound || 0), 0);
|
|
124
|
+
const emoji = this.getCheckTypeEmoji(groupKey);
|
|
125
|
+
const title = `${emoji} ${this.formatGroupTitle(groupKey, totalScore, totalIssues)}`;
|
|
126
|
+
const sectionContent = items.map(item => item.content).join('\n\n');
|
|
127
|
+
sections.push(this.createCollapsibleSection(title, sectionContent, totalIssues > 0));
|
|
128
|
+
}
|
|
129
|
+
return sections.join('\n\n');
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Generate unique comment ID
|
|
133
|
+
*/
|
|
134
|
+
generateCommentId() {
|
|
135
|
+
return (0, uuid_1.v4)().substring(0, 8);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Check if comment is a Visor comment
|
|
139
|
+
*/
|
|
140
|
+
isVisorComment(body, commentId) {
|
|
141
|
+
if (commentId) {
|
|
142
|
+
// Check for the new format with exact matching - look for the exact ID followed by space or " -->"
|
|
143
|
+
if (body.includes(`visor-comment-id:${commentId} `) ||
|
|
144
|
+
body.includes(`visor-comment-id:${commentId} -->`)) {
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
// Check for legacy format (visor-review-* pattern) for backwards compatibility
|
|
148
|
+
if (commentId.startsWith('pr-review-') && body.includes('visor-review-')) {
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
// If we have a specific commentId but no exact match, return false
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
// General Visor comment detection (only when no specific commentId provided)
|
|
155
|
+
return ((body.includes('visor-comment-id:') && body.includes('<!-- /visor-comment-id:')) ||
|
|
156
|
+
body.includes('visor-review-'));
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Extract comment ID from comment body
|
|
160
|
+
*/
|
|
161
|
+
extractCommentId(body) {
|
|
162
|
+
const match = body.match(/visor-comment-id:([a-f0-9-]+)/);
|
|
163
|
+
return match ? match[1] : null;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Handle rate limiting with exponential backoff
|
|
167
|
+
*/
|
|
168
|
+
async handleRateLimit(error) {
|
|
169
|
+
const resetTime = error.response?.headers?.['x-ratelimit-reset'];
|
|
170
|
+
if (resetTime) {
|
|
171
|
+
const resetDate = new Date(parseInt(resetTime) * 1000);
|
|
172
|
+
const waitTime = Math.max(resetDate.getTime() - Date.now(), this.retryConfig.baseDelay);
|
|
173
|
+
console.log(`Rate limit exceeded. Waiting ${Math.round(waitTime / 1000)}s until reset...`);
|
|
174
|
+
await this.sleep(Math.min(waitTime, this.retryConfig.maxDelay));
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
await this.sleep(this.retryConfig.baseDelay);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Check if error is a rate limit error
|
|
182
|
+
*/
|
|
183
|
+
isRateLimitError(error) {
|
|
184
|
+
return error.status === 403 && (error.response?.data?.message?.includes('rate limit') ?? false);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Check if error should not be retried (auth errors, not found, etc.)
|
|
188
|
+
*/
|
|
189
|
+
isNonRetryableError(error) {
|
|
190
|
+
// Don't retry auth errors, not found, etc., but allow rate limit errors to be handled separately
|
|
191
|
+
const nonRetryableStatuses = [401, 404, 422]; // Unauthorized, Not Found, Unprocessable Entity
|
|
192
|
+
const status = error.status || error.response?.status;
|
|
193
|
+
// 403 is non-retryable unless it's a rate limit error
|
|
194
|
+
if (status === 403) {
|
|
195
|
+
return !this.isRateLimitError(error);
|
|
196
|
+
}
|
|
197
|
+
return status !== undefined && nonRetryableStatuses.includes(status);
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Retry wrapper with exponential backoff
|
|
201
|
+
*/
|
|
202
|
+
async withRetry(operation) {
|
|
203
|
+
let lastError = new Error('Unknown error');
|
|
204
|
+
for (let attempt = 0; attempt <= this.retryConfig.maxRetries; attempt++) {
|
|
205
|
+
try {
|
|
206
|
+
return await operation();
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
210
|
+
if (attempt === this.retryConfig.maxRetries) {
|
|
211
|
+
break;
|
|
212
|
+
}
|
|
213
|
+
if (this.isRateLimitError(error)) {
|
|
214
|
+
await this.handleRateLimit(error);
|
|
215
|
+
}
|
|
216
|
+
else if (this.isNonRetryableError(error)) {
|
|
217
|
+
// Don't retry auth errors, not found errors, etc.
|
|
218
|
+
throw error;
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
const delay = Math.min(this.retryConfig.baseDelay * Math.pow(this.retryConfig.backoffFactor, attempt), this.retryConfig.maxDelay);
|
|
222
|
+
await this.sleep(delay);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
throw lastError;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Sleep utility
|
|
230
|
+
*/
|
|
231
|
+
sleep(ms) {
|
|
232
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Group results by specified criteria
|
|
236
|
+
*/
|
|
237
|
+
groupResults(results, groupBy) {
|
|
238
|
+
const grouped = {};
|
|
239
|
+
for (const result of results) {
|
|
240
|
+
const key = groupBy === 'check' ? result.checkType : this.getSeverityGroup(result.score);
|
|
241
|
+
if (!grouped[key]) {
|
|
242
|
+
grouped[key] = [];
|
|
243
|
+
}
|
|
244
|
+
grouped[key].push(result);
|
|
245
|
+
}
|
|
246
|
+
return grouped;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Get severity group based on score
|
|
250
|
+
*/
|
|
251
|
+
getSeverityGroup(score) {
|
|
252
|
+
if (!score)
|
|
253
|
+
return 'Unknown';
|
|
254
|
+
if (score >= 90)
|
|
255
|
+
return 'Excellent';
|
|
256
|
+
if (score >= 75)
|
|
257
|
+
return 'Good';
|
|
258
|
+
if (score >= 50)
|
|
259
|
+
return 'Needs Improvement';
|
|
260
|
+
return 'Critical Issues';
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Get emoji for check type
|
|
264
|
+
*/
|
|
265
|
+
getCheckTypeEmoji(checkType) {
|
|
266
|
+
const emojiMap = {
|
|
267
|
+
performance: '📈',
|
|
268
|
+
security: '🔒',
|
|
269
|
+
architecture: '🏗️',
|
|
270
|
+
style: '🎨',
|
|
271
|
+
all: '🔍',
|
|
272
|
+
Excellent: '✅',
|
|
273
|
+
Good: '👍',
|
|
274
|
+
'Needs Improvement': '⚠️',
|
|
275
|
+
'Critical Issues': '🚨',
|
|
276
|
+
Unknown: '❓',
|
|
277
|
+
};
|
|
278
|
+
return emojiMap[checkType] || '📝';
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Format group title with score and issue count
|
|
282
|
+
*/
|
|
283
|
+
formatGroupTitle(groupKey, score, issuesFound) {
|
|
284
|
+
const formattedScore = Math.round(score);
|
|
285
|
+
return `${groupKey} Review (Score: ${formattedScore}/100)${issuesFound > 0 ? ` - ${issuesFound} issues found` : ''}`;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
exports.CommentManager = CommentManager;
|
|
289
|
+
//# sourceMappingURL=github-comments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-comments.js","sourceRoot":"","sources":["../src/github-comments.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA2IA,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CA0FzC"}
|