@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,285 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.GitRepositoryAnalyzer = void 0;
|
|
37
|
+
const simple_git_1 = require("simple-git");
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const fs = __importStar(require("fs"));
|
|
40
|
+
class GitRepositoryAnalyzer {
|
|
41
|
+
git;
|
|
42
|
+
cwd;
|
|
43
|
+
constructor(workingDirectory = process.cwd()) {
|
|
44
|
+
this.cwd = workingDirectory;
|
|
45
|
+
this.git = (0, simple_git_1.simpleGit)(workingDirectory);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Analyze the current git repository state and return data compatible with PRInfo interface
|
|
49
|
+
*/
|
|
50
|
+
async analyzeRepository() {
|
|
51
|
+
// Check if we're in a git repository
|
|
52
|
+
const isRepo = await this.isGitRepository();
|
|
53
|
+
if (!isRepo) {
|
|
54
|
+
return this.createEmptyRepositoryInfo('Not a git repository');
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
// Get current branch and status
|
|
58
|
+
const [status, currentBranch] = await Promise.all([
|
|
59
|
+
this.git.status(),
|
|
60
|
+
this.getCurrentBranch(),
|
|
61
|
+
]);
|
|
62
|
+
// Get uncommitted changes
|
|
63
|
+
const uncommittedFiles = await this.getUncommittedChanges();
|
|
64
|
+
// Get recent commit info
|
|
65
|
+
const recentCommits = await this.git.log({ maxCount: 1 });
|
|
66
|
+
const lastCommit = recentCommits.latest;
|
|
67
|
+
// Create repository info
|
|
68
|
+
const repositoryInfo = {
|
|
69
|
+
title: this.generateTitle(status, currentBranch),
|
|
70
|
+
body: this.generateDescription(status, lastCommit),
|
|
71
|
+
author: lastCommit?.author_name || 'unknown',
|
|
72
|
+
base: await this.getBaseBranch(),
|
|
73
|
+
head: currentBranch,
|
|
74
|
+
files: uncommittedFiles,
|
|
75
|
+
totalAdditions: uncommittedFiles.reduce((sum, file) => sum + file.additions, 0),
|
|
76
|
+
totalDeletions: uncommittedFiles.reduce((sum, file) => sum + file.deletions, 0),
|
|
77
|
+
isGitRepository: true,
|
|
78
|
+
workingDirectory: this.cwd,
|
|
79
|
+
};
|
|
80
|
+
return repositoryInfo;
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
console.error('Error analyzing git repository:', error);
|
|
84
|
+
return this.createEmptyRepositoryInfo('Error analyzing git repository');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Convert GitRepositoryInfo to PRInfo format for compatibility with existing PRReviewer
|
|
89
|
+
*/
|
|
90
|
+
toPRInfo(repositoryInfo) {
|
|
91
|
+
return {
|
|
92
|
+
number: 0, // Local analysis doesn't have PR number
|
|
93
|
+
title: repositoryInfo.title,
|
|
94
|
+
body: repositoryInfo.body,
|
|
95
|
+
author: repositoryInfo.author,
|
|
96
|
+
base: repositoryInfo.base,
|
|
97
|
+
head: repositoryInfo.head,
|
|
98
|
+
files: repositoryInfo.files.map((file) => ({
|
|
99
|
+
filename: file.filename,
|
|
100
|
+
additions: file.additions,
|
|
101
|
+
deletions: file.deletions,
|
|
102
|
+
changes: file.changes,
|
|
103
|
+
patch: file.patch,
|
|
104
|
+
status: file.status,
|
|
105
|
+
})),
|
|
106
|
+
totalAdditions: repositoryInfo.totalAdditions,
|
|
107
|
+
totalDeletions: repositoryInfo.totalDeletions,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
async isGitRepository() {
|
|
111
|
+
try {
|
|
112
|
+
await this.git.checkIsRepo();
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
async getCurrentBranch() {
|
|
120
|
+
try {
|
|
121
|
+
const branchSummary = await this.git.branch();
|
|
122
|
+
return branchSummary.current || 'unknown';
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
return 'unknown';
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
async getBaseBranch() {
|
|
129
|
+
try {
|
|
130
|
+
// Try to get the default branch from remote
|
|
131
|
+
const branches = await this.git.branch(['-r']);
|
|
132
|
+
const mainBranches = ['origin/main', 'origin/master', 'origin/develop'];
|
|
133
|
+
for (const mainBranch of mainBranches) {
|
|
134
|
+
if (branches.all.includes(mainBranch)) {
|
|
135
|
+
return mainBranch.replace('origin/', '');
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Fallback to main/master
|
|
139
|
+
return 'main';
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
return 'main';
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
async getRemoteInfo() {
|
|
146
|
+
try {
|
|
147
|
+
const remotes = await this.git.getRemotes(true);
|
|
148
|
+
const origin = remotes.find(r => r.name === 'origin');
|
|
149
|
+
return origin
|
|
150
|
+
? { name: origin.name, url: origin.refs.fetch || origin.refs.push || '' }
|
|
151
|
+
: null;
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
async getUncommittedChanges() {
|
|
158
|
+
try {
|
|
159
|
+
const status = await this.git.status();
|
|
160
|
+
const changes = [];
|
|
161
|
+
// Process different types of changes
|
|
162
|
+
const fileChanges = [
|
|
163
|
+
...status.created.map(f => ({ file: f, status: 'added' })),
|
|
164
|
+
...status.deleted.map(f => ({ file: f, status: 'removed' })),
|
|
165
|
+
...status.modified.map(f => ({ file: f, status: 'modified' })),
|
|
166
|
+
...status.renamed.map(f => ({
|
|
167
|
+
file: typeof f === 'string' ? f : f.to || f.from,
|
|
168
|
+
status: 'renamed',
|
|
169
|
+
})),
|
|
170
|
+
];
|
|
171
|
+
for (const { file, status } of fileChanges) {
|
|
172
|
+
const filePath = path.join(this.cwd, file);
|
|
173
|
+
const fileChange = await this.analyzeFileChange(file, status, filePath);
|
|
174
|
+
changes.push(fileChange);
|
|
175
|
+
}
|
|
176
|
+
return changes;
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
console.error('Error getting uncommitted changes:', error);
|
|
180
|
+
return [];
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
async analyzeFileChange(filename, status, filePath) {
|
|
184
|
+
let additions = 0;
|
|
185
|
+
let deletions = 0;
|
|
186
|
+
let patch;
|
|
187
|
+
let content;
|
|
188
|
+
try {
|
|
189
|
+
// Get diff for the file if it exists and is not binary
|
|
190
|
+
if (status !== 'added' && fs.existsSync(filePath)) {
|
|
191
|
+
const diff = await this.git.diff(['--', filename]).catch(() => '');
|
|
192
|
+
if (diff) {
|
|
193
|
+
patch = diff;
|
|
194
|
+
// Count additions and deletions from diff
|
|
195
|
+
const lines = diff.split('\n');
|
|
196
|
+
additions = lines.filter(line => line.startsWith('+')).length;
|
|
197
|
+
deletions = lines.filter(line => line.startsWith('-')).length;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// For added files, count lines as additions
|
|
201
|
+
if (status === 'added' && fs.existsSync(filePath)) {
|
|
202
|
+
try {
|
|
203
|
+
const stats = fs.statSync(filePath);
|
|
204
|
+
if (stats.isFile() && stats.size < 1024 * 1024) {
|
|
205
|
+
// Skip files larger than 1MB
|
|
206
|
+
content = fs.readFileSync(filePath, 'utf8');
|
|
207
|
+
additions = content.split('\n').length;
|
|
208
|
+
patch = content; // For new files, the entire content is the "patch"
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
catch {
|
|
212
|
+
// Skip binary or unreadable files
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
// For removed files, we can't easily count the lines without the previous version
|
|
216
|
+
if (status === 'removed') {
|
|
217
|
+
deletions = 1; // Placeholder - in real git we'd need the previous version
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
catch (error) {
|
|
221
|
+
console.error(`Error analyzing file change for ${filename}:`, error);
|
|
222
|
+
}
|
|
223
|
+
return {
|
|
224
|
+
filename,
|
|
225
|
+
status,
|
|
226
|
+
additions,
|
|
227
|
+
deletions,
|
|
228
|
+
changes: additions + deletions,
|
|
229
|
+
content,
|
|
230
|
+
patch,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
generateTitle(status, branch) {
|
|
234
|
+
if (status.files.length === 0) {
|
|
235
|
+
return `Local Analysis: ${branch} (No changes)`;
|
|
236
|
+
}
|
|
237
|
+
const changeTypes = [];
|
|
238
|
+
if (status.created.length > 0)
|
|
239
|
+
changeTypes.push(`${status.created.length} added`);
|
|
240
|
+
if (status.modified.length > 0)
|
|
241
|
+
changeTypes.push(`${status.modified.length} modified`);
|
|
242
|
+
if (status.deleted.length > 0)
|
|
243
|
+
changeTypes.push(`${status.deleted.length} deleted`);
|
|
244
|
+
if (status.renamed.length > 0)
|
|
245
|
+
changeTypes.push(`${status.renamed.length} renamed`);
|
|
246
|
+
return `Local Analysis: ${branch} (${changeTypes.join(', ')})`;
|
|
247
|
+
}
|
|
248
|
+
generateDescription(status, lastCommit) {
|
|
249
|
+
let description = `Analysis of local git repository working directory.\n\n`;
|
|
250
|
+
if (lastCommit) {
|
|
251
|
+
description += `**Last Commit:** ${lastCommit.message}\n`;
|
|
252
|
+
description += `**Author:** ${lastCommit.author_name} <${lastCommit.author_email}>\n`;
|
|
253
|
+
description += `**Date:** ${lastCommit.date}\n\n`;
|
|
254
|
+
}
|
|
255
|
+
if (status.files.length === 0) {
|
|
256
|
+
description += `**Status:** Working directory is clean - no uncommitted changes found.\n`;
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
description += `**Changes Summary:**\n`;
|
|
260
|
+
description += `- Files to be committed: ${status.staged.length}\n`;
|
|
261
|
+
description += `- Modified files: ${status.modified.length}\n`;
|
|
262
|
+
description += `- Untracked files: ${status.not_added.length}\n`;
|
|
263
|
+
if (status.conflicted.length > 0) {
|
|
264
|
+
description += `- Conflicted files: ${status.conflicted.length}\n`;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return description;
|
|
268
|
+
}
|
|
269
|
+
createEmptyRepositoryInfo(reason) {
|
|
270
|
+
return {
|
|
271
|
+
title: `Local Analysis: ${reason}`,
|
|
272
|
+
body: `Unable to analyze repository: ${reason}`,
|
|
273
|
+
author: 'system',
|
|
274
|
+
base: 'main',
|
|
275
|
+
head: 'HEAD',
|
|
276
|
+
files: [],
|
|
277
|
+
totalAdditions: 0,
|
|
278
|
+
totalDeletions: 0,
|
|
279
|
+
isGitRepository: false,
|
|
280
|
+
workingDirectory: this.cwd,
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
exports.GitRepositoryAnalyzer = GitRepositoryAnalyzer;
|
|
285
|
+
//# sourceMappingURL=git-repository-analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-repository-analyzer.js","sourceRoot":"","sources":["../src/git-repository-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub Check Service for creating and managing check runs based on failure conditions
|
|
3
|
+
*/
|
|
4
|
+
import { Octokit } from '@octokit/rest';
|
|
5
|
+
import { FailureConditionResult } from './types/config';
|
|
6
|
+
import { ReviewIssue } from './reviewer';
|
|
7
|
+
export interface CheckRunOptions {
|
|
8
|
+
owner: string;
|
|
9
|
+
repo: string;
|
|
10
|
+
head_sha: string;
|
|
11
|
+
name: string;
|
|
12
|
+
details_url?: string;
|
|
13
|
+
external_id?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface CheckRunAnnotation {
|
|
16
|
+
path: string;
|
|
17
|
+
start_line: number;
|
|
18
|
+
end_line: number;
|
|
19
|
+
annotation_level: 'notice' | 'warning' | 'failure';
|
|
20
|
+
message: string;
|
|
21
|
+
title?: string;
|
|
22
|
+
raw_details?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface CheckRunSummary {
|
|
25
|
+
title: string;
|
|
26
|
+
summary: string;
|
|
27
|
+
text?: string;
|
|
28
|
+
}
|
|
29
|
+
export type CheckRunStatus = 'queued' | 'in_progress' | 'completed';
|
|
30
|
+
export type CheckRunConclusion = 'success' | 'failure' | 'neutral' | 'cancelled' | 'timed_out' | 'action_required';
|
|
31
|
+
/**
|
|
32
|
+
* Service for managing GitHub Check Runs based on Visor failure conditions
|
|
33
|
+
*/
|
|
34
|
+
export declare class GitHubCheckService {
|
|
35
|
+
private octokit;
|
|
36
|
+
private maxAnnotations;
|
|
37
|
+
constructor(octokit: Octokit);
|
|
38
|
+
/**
|
|
39
|
+
* Create a new check run in queued status
|
|
40
|
+
*/
|
|
41
|
+
createCheckRun(options: CheckRunOptions, summary?: CheckRunSummary): Promise<{
|
|
42
|
+
id: number;
|
|
43
|
+
url: string;
|
|
44
|
+
}>;
|
|
45
|
+
/**
|
|
46
|
+
* Update check run to in_progress status
|
|
47
|
+
*/
|
|
48
|
+
updateCheckRunInProgress(owner: string, repo: string, check_run_id: number, summary?: CheckRunSummary): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Complete a check run with results based on failure conditions
|
|
51
|
+
*/
|
|
52
|
+
completeCheckRun(owner: string, repo: string, check_run_id: number, checkName: string, failureResults: FailureConditionResult[], reviewIssues?: ReviewIssue[], executionError?: string): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Determine check run conclusion based on failure conditions and issues
|
|
55
|
+
*/
|
|
56
|
+
private determineCheckRunConclusion;
|
|
57
|
+
/**
|
|
58
|
+
* Format detailed check results for the check run summary
|
|
59
|
+
*/
|
|
60
|
+
private formatCheckDetails;
|
|
61
|
+
/**
|
|
62
|
+
* Convert review issues to GitHub check run annotations
|
|
63
|
+
*/
|
|
64
|
+
private convertIssuesToAnnotations;
|
|
65
|
+
/**
|
|
66
|
+
* Map Visor issue severity to GitHub annotation level
|
|
67
|
+
*/
|
|
68
|
+
private mapSeverityToAnnotationLevel;
|
|
69
|
+
/**
|
|
70
|
+
* Group issues by category
|
|
71
|
+
*/
|
|
72
|
+
private groupIssuesByCategory;
|
|
73
|
+
/**
|
|
74
|
+
* Get emoji for issue category
|
|
75
|
+
*/
|
|
76
|
+
private getCategoryEmoji;
|
|
77
|
+
/**
|
|
78
|
+
* Get icon for issue severity
|
|
79
|
+
*/
|
|
80
|
+
private getSeverityIcon;
|
|
81
|
+
/**
|
|
82
|
+
* Create multiple check runs for different checks with failure condition support
|
|
83
|
+
*/
|
|
84
|
+
createMultipleCheckRuns(options: CheckRunOptions, checkResults: Array<{
|
|
85
|
+
checkName: string;
|
|
86
|
+
failureResults: FailureConditionResult[];
|
|
87
|
+
reviewIssues: ReviewIssue[];
|
|
88
|
+
executionError?: string;
|
|
89
|
+
}>): Promise<Array<{
|
|
90
|
+
checkName: string;
|
|
91
|
+
id: number;
|
|
92
|
+
url: string;
|
|
93
|
+
}>>;
|
|
94
|
+
/**
|
|
95
|
+
* Get check runs for a specific commit
|
|
96
|
+
*/
|
|
97
|
+
getCheckRuns(owner: string, repo: string, ref: string): Promise<Array<{
|
|
98
|
+
id: number;
|
|
99
|
+
name: string;
|
|
100
|
+
status: string;
|
|
101
|
+
conclusion: string | null;
|
|
102
|
+
}>>;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=github-check-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-check-service.d.ts","sourceRoot":"","sources":["../src/github-check-service.ts"],"names":[],"mappings":"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"}
|