@hardlydifficult/repo-processor 1.0.140 → 1.0.142
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 +126 -274
- package/dist/GitYamlStore.d.ts +27 -40
- package/dist/GitYamlStore.d.ts.map +1 -1
- package/dist/GitYamlStore.js +155 -142
- package/dist/GitYamlStore.js.map +1 -1
- package/dist/RepoProcessor.d.ts +22 -22
- package/dist/RepoProcessor.d.ts.map +1 -1
- package/dist/RepoProcessor.js +191 -109
- package/dist/RepoProcessor.js.map +1 -1
- package/dist/RepoWatcher.d.ts +19 -62
- package/dist/RepoWatcher.d.ts.map +1 -1
- package/dist/RepoWatcher.js +74 -103
- package/dist/RepoWatcher.js.map +1 -1
- package/dist/index.d.ts +1 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -5
- package/dist/index.js.map +1 -1
- package/dist/internalTypes.d.ts +42 -0
- package/dist/internalTypes.d.ts.map +1 -0
- package/dist/internalTypes.js +3 -0
- package/dist/internalTypes.js.map +1 -0
- package/dist/resolveDirectories.d.ts +3 -12
- package/dist/resolveDirectories.d.ts.map +1 -1
- package/dist/resolveDirectories.js +9 -24
- package/dist/resolveDirectories.js.map +1 -1
- package/dist/types.d.ts +66 -56
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -11
package/dist/RepoProcessor.js
CHANGED
|
@@ -1,178 +1,260 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RepoProcessor = void 0;
|
|
4
|
+
exports.createRepoProcessorForTests = createRepoProcessorForTests;
|
|
4
5
|
const collections_1 = require("@hardlydifficult/collections");
|
|
5
6
|
const github_1 = require("@hardlydifficult/github");
|
|
6
7
|
const text_1 = require("@hardlydifficult/text");
|
|
8
|
+
const GitYamlStore_js_1 = require("./GitYamlStore.js");
|
|
9
|
+
const RepoWatcher_js_1 = require("./RepoWatcher.js");
|
|
7
10
|
const resolveDirectories_js_1 = require("./resolveDirectories.js");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
function parseRepoReference(value, label) {
|
|
12
|
+
const parsed = (0, github_1.parseGitHubRepoReference)(value);
|
|
13
|
+
if (parsed === null) {
|
|
14
|
+
throw new Error(`Invalid ${label}: ${value}. Expected "owner/repo" or a GitHub URL.`);
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
owner: parsed.owner,
|
|
18
|
+
name: parsed.repo,
|
|
19
|
+
fullName: `${parsed.owner}/${parsed.repo}`,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function formatFailures(label, failures) {
|
|
23
|
+
const details = failures
|
|
24
|
+
.map((failure) => ` ${failure.path}: ${(0, text_1.getErrorMessage)(failure.reason)}`)
|
|
25
|
+
.join("\n");
|
|
26
|
+
return new Error(`${String(failures.length)} ${label} failed to process:\n${details}`);
|
|
27
|
+
}
|
|
28
|
+
/** Incrementally processes repository files/directories and stores derived results. */
|
|
14
29
|
class RepoProcessor {
|
|
15
|
-
|
|
30
|
+
static open(options) {
|
|
31
|
+
const repo = parseRepoReference(options.repo, "repo");
|
|
32
|
+
const resultsRepo = parseRepoReference(options.results.repo, "results repo");
|
|
33
|
+
const githubToken = options.githubToken ?? process.env.GH_PAT ?? process.env.GITHUB_TOKEN;
|
|
34
|
+
const github = new github_1.GitHubClient({ token: githubToken });
|
|
35
|
+
const sourceRepo = github.repo(repo.fullName);
|
|
36
|
+
const { processDirectory } = options;
|
|
37
|
+
const store = new GitYamlStore_js_1.GitYamlStore({
|
|
38
|
+
sourceRepo: repo,
|
|
39
|
+
resultsRepo,
|
|
40
|
+
localPath: options.results.directory,
|
|
41
|
+
root: options.results.root ?? "repos",
|
|
42
|
+
branch: options.results.branch,
|
|
43
|
+
authToken: githubToken,
|
|
44
|
+
gitUser: options.results.gitUser,
|
|
45
|
+
});
|
|
46
|
+
return Promise.resolve(new RepoProcessor({
|
|
47
|
+
repo,
|
|
48
|
+
repoClient: {
|
|
49
|
+
getFileTree(ref) {
|
|
50
|
+
return sourceRepo.tree(ref);
|
|
51
|
+
},
|
|
52
|
+
getFileContent(filePath, ref) {
|
|
53
|
+
return sourceRepo.read(filePath, ref);
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
store,
|
|
57
|
+
ref: options.ref,
|
|
58
|
+
concurrency: options.concurrency ?? 5,
|
|
59
|
+
include: options.include ?? (() => true),
|
|
60
|
+
processFile: (input) => options.processFile(input),
|
|
61
|
+
processDirectory: processDirectory === undefined
|
|
62
|
+
? undefined
|
|
63
|
+
: (input) => processDirectory(input),
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
repoRef;
|
|
67
|
+
repoClient;
|
|
16
68
|
store;
|
|
17
|
-
|
|
69
|
+
ref;
|
|
18
70
|
concurrency;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
this.
|
|
24
|
-
this.
|
|
25
|
-
this.
|
|
71
|
+
include;
|
|
72
|
+
processFileHandler;
|
|
73
|
+
processDirectoryHandler;
|
|
74
|
+
constructor(internals) {
|
|
75
|
+
this.repoRef = internals.repo;
|
|
76
|
+
this.repoClient = internals.repoClient;
|
|
77
|
+
this.store = internals.store;
|
|
78
|
+
this.ref = internals.ref;
|
|
79
|
+
this.concurrency = internals.concurrency;
|
|
80
|
+
this.include = internals.include;
|
|
81
|
+
const { processDirectory } = internals;
|
|
82
|
+
this.processFileHandler = (input) => internals.processFile(input);
|
|
83
|
+
this.processDirectoryHandler =
|
|
84
|
+
processDirectory === undefined
|
|
85
|
+
? undefined
|
|
86
|
+
: (input) => processDirectory(input);
|
|
87
|
+
}
|
|
88
|
+
get repo() {
|
|
89
|
+
return this.repoRef.fullName;
|
|
26
90
|
}
|
|
27
|
-
async run(
|
|
91
|
+
async run(options = {}) {
|
|
92
|
+
const { onProgress } = options;
|
|
28
93
|
const emitProgress = (phase, message, filesTotal, filesCompleted, dirsTotal, dirsCompleted) => {
|
|
29
94
|
onProgress?.({
|
|
30
95
|
phase,
|
|
31
96
|
message,
|
|
32
|
-
filesTotal,
|
|
33
|
-
|
|
34
|
-
dirsTotal,
|
|
35
|
-
dirsCompleted,
|
|
97
|
+
files: { total: filesTotal, completed: filesCompleted },
|
|
98
|
+
directories: { total: dirsTotal, completed: dirsCompleted },
|
|
36
99
|
});
|
|
37
100
|
};
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
emitProgress("loading", "Fetching file tree...", 0, 0, 0, 0);
|
|
43
|
-
const { entries, rootSha } = await this.github
|
|
44
|
-
.repo(owner, repo)
|
|
45
|
-
.getFileTree();
|
|
101
|
+
emitProgress("loading", "Initializing results store...", 0, 0, 0, 0);
|
|
102
|
+
await this.store.ensureReady();
|
|
103
|
+
emitProgress("loading", "Fetching source tree...", 0, 0, 0, 0);
|
|
104
|
+
const { entries, rootSha } = await this.repoClient.getFileTree(this.ref);
|
|
46
105
|
const tree = [
|
|
47
106
|
...entries,
|
|
48
107
|
{ path: "", type: "tree", sha: rootSha },
|
|
49
108
|
];
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
109
|
+
const blobs = entries.filter((entry) => {
|
|
110
|
+
if (entry.type !== "blob") {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
return this.include({
|
|
114
|
+
path: entry.path,
|
|
115
|
+
sha: entry.sha,
|
|
116
|
+
size: entry.size,
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
const currentManifest = await this.store.getFileManifest();
|
|
54
120
|
const diff = (0, github_1.diffTree)(blobs, currentManifest);
|
|
55
121
|
const filesTotal = diff.changedFiles.length;
|
|
56
122
|
let filesCompleted = 0;
|
|
57
|
-
emitProgress("files",
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
123
|
+
emitProgress("files", filesTotal === 0
|
|
124
|
+
? "No files to process."
|
|
125
|
+
: `Processing ${String(filesTotal)} files...`, filesTotal, 0, 0, 0);
|
|
126
|
+
const fileFailures = [];
|
|
127
|
+
for (const batch of (0, collections_1.inBatches)(diff.changedFiles, this.concurrency)) {
|
|
61
128
|
const results = await Promise.allSettled(batch.map(async (entry) => {
|
|
62
|
-
const content = await this.
|
|
63
|
-
|
|
64
|
-
.
|
|
65
|
-
|
|
66
|
-
|
|
129
|
+
const content = await this.repoClient.getFileContent(entry.path, this.ref);
|
|
130
|
+
const result = await this.processFileHandler({
|
|
131
|
+
repo: this.repo,
|
|
132
|
+
path: entry.path,
|
|
133
|
+
sha: entry.sha,
|
|
134
|
+
content,
|
|
135
|
+
});
|
|
136
|
+
await this.store.writeFileResult(entry.path, entry.sha, result);
|
|
67
137
|
}));
|
|
68
|
-
const failures = [];
|
|
69
138
|
let succeededCount = 0;
|
|
70
|
-
for (let
|
|
71
|
-
const result = results[
|
|
139
|
+
for (let index = 0; index < results.length; index++) {
|
|
140
|
+
const result = results[index];
|
|
72
141
|
filesCompleted++;
|
|
73
142
|
if (result.status === "rejected") {
|
|
74
|
-
|
|
75
|
-
path: batch[
|
|
143
|
+
fileFailures.push({
|
|
144
|
+
path: batch[index]?.path ?? `unknown-${String(index)}`,
|
|
76
145
|
reason: result.reason,
|
|
77
146
|
});
|
|
78
147
|
}
|
|
79
148
|
else {
|
|
80
149
|
succeededCount++;
|
|
81
150
|
}
|
|
82
|
-
emitProgress("files", `Files: ${String(filesCompleted)}/${String(filesTotal)}`, filesTotal, filesCompleted,
|
|
83
|
-
}
|
|
84
|
-
if (failures.length > 0) {
|
|
85
|
-
const details = failures
|
|
86
|
-
.map((f) => ` ${f.path}: ${(0, text_1.getErrorMessage)(f.reason)}`)
|
|
87
|
-
.join("\n");
|
|
88
|
-
throw new Error(`${String(failures.length)} file(s) failed to process:\n${details}`);
|
|
151
|
+
emitProgress("files", `Files: ${String(filesCompleted)}/${String(filesTotal)}`, filesTotal, filesCompleted, 0, 0);
|
|
89
152
|
}
|
|
90
153
|
if (succeededCount > 0) {
|
|
91
|
-
await this.store.commitBatch(
|
|
154
|
+
await this.store.commitBatch(this.repo, succeededCount);
|
|
92
155
|
}
|
|
93
156
|
}
|
|
94
|
-
|
|
157
|
+
if (fileFailures.length > 0) {
|
|
158
|
+
throw formatFailures("file(s)", fileFailures);
|
|
159
|
+
}
|
|
95
160
|
for (const removedPath of diff.removedFiles) {
|
|
96
|
-
await this.store.deleteFileResult(
|
|
161
|
+
await this.store.deleteFileResult(removedPath);
|
|
97
162
|
}
|
|
98
163
|
if (diff.removedFiles.length > 0) {
|
|
99
|
-
await this.store.commitBatch(
|
|
164
|
+
await this.store.commitBatch(this.repo, diff.removedFiles.length);
|
|
100
165
|
}
|
|
101
|
-
// 7. Resolve stale directories
|
|
102
|
-
const allFilePaths = blobs.map((b) => b.path);
|
|
103
|
-
const allDirs = await (0, resolveDirectories_js_1.resolveStaleDirectories)(owner, repo, diff.staleDirs, allFilePaths, tree, this.store);
|
|
104
166
|
let dirsCompleted = 0;
|
|
105
|
-
if (
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
167
|
+
if (this.processDirectoryHandler !== undefined) {
|
|
168
|
+
const allFilePaths = blobs.map((blob) => blob.path);
|
|
169
|
+
const allDirs = await (0, resolveDirectories_js_1.resolveStaleDirectories)(diff.staleDirs, allFilePaths, tree, this.store);
|
|
170
|
+
emitProgress("directories", allDirs.length === 0
|
|
171
|
+
? "No directories to process."
|
|
172
|
+
: `Processing ${String(allDirs.length)} directories...`, filesTotal, filesCompleted, allDirs.length, 0);
|
|
173
|
+
const directoryFailures = [];
|
|
174
|
+
for (const dirsAtDepth of (0, collections_1.bottomUp)(allDirs)) {
|
|
175
|
+
let succeededCount = 0;
|
|
176
|
+
for (const batch of (0, collections_1.inBatches)(dirsAtDepth, this.concurrency)) {
|
|
113
177
|
const results = await Promise.allSettled(batch.map(async (dirPath) => {
|
|
114
|
-
const
|
|
115
|
-
const result = await this.
|
|
116
|
-
await this.store.writeDirResult(
|
|
178
|
+
const directory = this.buildDirectoryInput(dirPath, tree, allFilePaths);
|
|
179
|
+
const result = await this.processDirectoryHandler?.(directory);
|
|
180
|
+
await this.store.writeDirResult(dirPath, directory.sha, result);
|
|
117
181
|
}));
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
const result = results[i];
|
|
182
|
+
for (let index = 0; index < results.length; index++) {
|
|
183
|
+
const result = results[index];
|
|
121
184
|
dirsCompleted++;
|
|
122
|
-
dirsInDepthGroup++;
|
|
123
185
|
if (result.status === "rejected") {
|
|
124
|
-
|
|
125
|
-
path: batch[
|
|
186
|
+
directoryFailures.push({
|
|
187
|
+
path: batch[index] ?? `unknown-${String(index)}`,
|
|
126
188
|
reason: result.reason,
|
|
127
189
|
});
|
|
128
190
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
.map((f) => ` ${f.path}: ${(0, text_1.getErrorMessage)(f.reason)}`)
|
|
134
|
-
.join("\n");
|
|
135
|
-
throw new Error(`${String(failures.length)} directory(ies) failed to process:\n${details}`);
|
|
191
|
+
else {
|
|
192
|
+
succeededCount++;
|
|
193
|
+
}
|
|
194
|
+
emitProgress("directories", `Directories: ${String(dirsCompleted)}/${String(allDirs.length)}`, filesTotal, filesCompleted, allDirs.length, dirsCompleted);
|
|
136
195
|
}
|
|
137
196
|
}
|
|
138
|
-
if (
|
|
139
|
-
await this.store.commitBatch(
|
|
197
|
+
if (succeededCount > 0) {
|
|
198
|
+
await this.store.commitBatch(this.repo, succeededCount);
|
|
140
199
|
}
|
|
141
200
|
}
|
|
201
|
+
if (directoryFailures.length > 0) {
|
|
202
|
+
throw formatFailures("directory(ies)", directoryFailures);
|
|
203
|
+
}
|
|
142
204
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
await this.store.commitBatch(owner, repo, 0);
|
|
205
|
+
emitProgress("committing", "Finalizing results...", filesTotal, filesCompleted, this.processDirectoryHandler === undefined ? 0 : dirsCompleted, dirsCompleted);
|
|
206
|
+
await this.store.commitBatch(this.repo, 0);
|
|
146
207
|
return {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
208
|
+
repo: this.repo,
|
|
209
|
+
sourceSha: rootSha,
|
|
210
|
+
processedFiles: filesCompleted,
|
|
211
|
+
removedFiles: diff.removedFiles.length,
|
|
212
|
+
processedDirectories: dirsCompleted,
|
|
150
213
|
};
|
|
151
214
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
215
|
+
async readFileResult(filePath, schema) {
|
|
216
|
+
return this.store.readFileResult(filePath, schema);
|
|
217
|
+
}
|
|
218
|
+
async readDirectoryResult(dirPath, schema) {
|
|
219
|
+
return this.store.readDirectoryResult(dirPath, schema);
|
|
220
|
+
}
|
|
221
|
+
async watch(options = {}) {
|
|
222
|
+
return RepoWatcher_js_1.RepoWatcher.open(this, options);
|
|
223
|
+
}
|
|
224
|
+
buildDirectoryInput(dirPath, tree, allFilePaths) {
|
|
225
|
+
const dirTreeEntry = tree.find((entry) => entry.type === "tree" && entry.path === dirPath);
|
|
155
226
|
const prefix = dirPath === "" ? "" : `${dirPath}/`;
|
|
156
|
-
const
|
|
157
|
-
// Build immediate children list
|
|
227
|
+
const files = allFilePaths.filter((filePath) => dirPath === "" || filePath.startsWith(prefix));
|
|
158
228
|
const seen = new Set();
|
|
159
229
|
const children = [];
|
|
160
|
-
for (const
|
|
161
|
-
const relative = prefix ?
|
|
230
|
+
for (const filePath of files) {
|
|
231
|
+
const relative = prefix === "" ? filePath : filePath.slice(prefix.length);
|
|
162
232
|
const slashIndex = relative.indexOf("/");
|
|
163
|
-
const
|
|
164
|
-
const childName =
|
|
165
|
-
if (
|
|
166
|
-
|
|
167
|
-
children.push({
|
|
168
|
-
name: childName,
|
|
169
|
-
isDir,
|
|
170
|
-
fullPath: dirPath === "" ? childName : `${dirPath}/${childName}`,
|
|
171
|
-
});
|
|
233
|
+
const isDirectory = slashIndex !== -1;
|
|
234
|
+
const childName = isDirectory ? relative.slice(0, slashIndex) : relative;
|
|
235
|
+
if (seen.has(childName)) {
|
|
236
|
+
continue;
|
|
172
237
|
}
|
|
238
|
+
seen.add(childName);
|
|
239
|
+
children.push({
|
|
240
|
+
name: childName,
|
|
241
|
+
path: dirPath === "" ? childName : `${dirPath}/${childName}`,
|
|
242
|
+
type: isDirectory ? "directory" : "file",
|
|
243
|
+
});
|
|
173
244
|
}
|
|
174
|
-
return {
|
|
245
|
+
return {
|
|
246
|
+
repo: this.repo,
|
|
247
|
+
path: dirPath,
|
|
248
|
+
sha: dirTreeEntry?.sha ?? "",
|
|
249
|
+
files,
|
|
250
|
+
children,
|
|
251
|
+
};
|
|
175
252
|
}
|
|
176
253
|
}
|
|
177
254
|
exports.RepoProcessor = RepoProcessor;
|
|
255
|
+
/** Creates a RepoProcessor instance using test doubles for internal dependencies. */
|
|
256
|
+
function createRepoProcessorForTests(internals) {
|
|
257
|
+
const RepoProcessorCtor = RepoProcessor;
|
|
258
|
+
return new RepoProcessorCtor(internals);
|
|
259
|
+
}
|
|
178
260
|
//# sourceMappingURL=RepoProcessor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepoProcessor.js","sourceRoot":"","sources":["../src/RepoProcessor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RepoProcessor.js","sourceRoot":"","sources":["../src/RepoProcessor.ts"],"names":[],"mappings":"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"}
|
package/dist/RepoWatcher.d.ts
CHANGED
|
@@ -1,68 +1,25 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
/** Custom storage adapter (takes priority over stateDirectory). */
|
|
8
|
-
storageAdapter?: StorageAdapter;
|
|
9
|
-
/** Auto-save interval in milliseconds. Default 5000. */
|
|
10
|
-
autoSaveMs?: number;
|
|
11
|
-
/** The work to run for a repo. */
|
|
12
|
-
run: (owner: string, name: string) => Promise<TResult>;
|
|
13
|
-
/** Called after a successful run. */
|
|
14
|
-
onComplete?: (owner: string, name: string, result: TResult, sha: string) => void;
|
|
15
|
-
/** Called when a run fails. */
|
|
16
|
-
onError?: (owner: string, name: string, error: unknown) => void;
|
|
17
|
-
/** Logger/event callback. */
|
|
18
|
-
onEvent?: (event: StateTrackerEvent) => void;
|
|
19
|
-
/** Number of attempts (initial + retries). Default 1 (no retry). */
|
|
20
|
-
maxAttempts?: number;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Watches for SHA changes on GitHub repos and triggers processing.
|
|
24
|
-
*
|
|
25
|
-
* Handles state persistence (last-processed SHA per repo), concurrent run
|
|
26
|
-
* prevention, pending SHA re-triggers, and manual triggers. Consumers
|
|
27
|
-
* provide the `run` callback containing domain-specific logic.
|
|
28
|
-
*/
|
|
29
|
-
export declare class RepoWatcher<TResult = void> {
|
|
1
|
+
import type { RepoProcessor } from "./RepoProcessor.js";
|
|
2
|
+
import type { RepoProcessorRunResult, RepoWatcherOptions } from "./types.js";
|
|
3
|
+
/** Watches for repository updates and schedules processor runs with retries. */
|
|
4
|
+
export declare class RepoWatcher<TFileResult = unknown, TDirResult = never> {
|
|
5
|
+
static open<TFileResult, TDirResult>(processor: RepoProcessor<TFileResult, TDirResult>, options?: RepoWatcherOptions): Promise<RepoWatcher<TFileResult, TDirResult>>;
|
|
6
|
+
private readonly processor;
|
|
30
7
|
private readonly stateTracker;
|
|
31
|
-
private readonly
|
|
32
|
-
private readonly
|
|
33
|
-
private readonly
|
|
8
|
+
private readonly onComplete;
|
|
9
|
+
private readonly onError;
|
|
10
|
+
private readonly onEvent;
|
|
34
11
|
private readonly maxAttempts;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Queue a run unconditionally (no SHA comparison).
|
|
45
|
-
* Skips if already running. Returns false if skipped.
|
|
46
|
-
*/
|
|
47
|
-
trigger(owner: string, name: string): boolean;
|
|
48
|
-
/**
|
|
49
|
-
* Run processing synchronously (blocks until complete).
|
|
50
|
-
* Returns an error if already running.
|
|
51
|
-
*/
|
|
52
|
-
triggerManual(owner: string, name: string): Promise<{
|
|
53
|
-
success: true;
|
|
54
|
-
result: TResult;
|
|
55
|
-
} | {
|
|
56
|
-
success: false;
|
|
57
|
-
reason: string;
|
|
58
|
-
}>;
|
|
59
|
-
/** Check if a repo is currently being processed. */
|
|
60
|
-
isRunning(owner: string, name: string): boolean;
|
|
61
|
-
/** Get the last processed SHA for a repo key. */
|
|
62
|
-
getLastSha(key: string): string | undefined;
|
|
63
|
-
/** Persist a processed SHA for a repo key. */
|
|
64
|
-
setLastSha(key: string, sha: string): void;
|
|
12
|
+
private running;
|
|
13
|
+
private pendingSha;
|
|
14
|
+
private constructor();
|
|
15
|
+
handlePush(sha: string): void;
|
|
16
|
+
runNow(): Promise<RepoProcessorRunResult>;
|
|
17
|
+
isRunning(): boolean;
|
|
18
|
+
getLastSha(): string | undefined;
|
|
19
|
+
setLastSha(sha: string): void;
|
|
65
20
|
private queueRun;
|
|
21
|
+
private completeRun;
|
|
22
|
+
private flushPendingRun;
|
|
66
23
|
private executeWithRetry;
|
|
67
24
|
}
|
|
68
25
|
//# sourceMappingURL=RepoWatcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepoWatcher.d.ts","sourceRoot":"","sources":["../src/RepoWatcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RepoWatcher.d.ts","sourceRoot":"","sources":["../src/RepoWatcher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAU7E,gFAAgF;AAChF,qBAAa,WAAW,CAAC,WAAW,GAAG,OAAO,EAAE,UAAU,GAAG,KAAK;WACnD,IAAI,CAAC,WAAW,EAAE,UAAU,EACvC,SAAS,EAAE,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,EACjD,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAYhD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAEb;IACd,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAqB;IAEvC,OAAO;IAaP,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAavB,MAAM,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAmB/C,SAAS,IAAI,OAAO;IAIpB,UAAU,IAAI,MAAM,GAAG,SAAS;IAIhC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI7B,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,eAAe;YAeT,gBAAgB;CAuB/B"}
|