@foss.global/gitmanager 1.7.1 → 2.0.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/.smartconfig.json +4 -1
- package/changelog.md +33 -0
- package/dist_rust/rustgitmanager_linux_amd64 +0 -0
- package/dist_rust/rustgitmanager_linux_amd64.tsrust-build.json +5 -5
- package/dist_rust/rustgitmanager_linux_arm64 +0 -0
- package/dist_rust/rustgitmanager_linux_arm64.tsrust-build.json +5 -5
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.gitmanager.d.ts +8 -2
- package/dist_ts/classes.gitmanager.js +7 -1
- package/dist_ts/classes.repositoryservice.d.ts +8 -0
- package/dist_ts/classes.repositoryservice.js +38 -12
- package/dist_ts/models.d.ts +12 -1
- package/dist_ts/rust-gitmanager-bridge.d.ts +2 -2
- package/dist_ts/rust-gitmanager-bridge.js +1 -1
- package/native-notices/crates/adler2-2.0.1/license-0bsd +12 -0
- package/native-notices/crates/adler2-2.0.1/license-apache +201 -0
- package/native-notices/crates/adler2-2.0.1/license-mit +23 -0
- package/native-notices/crates/aho-corasick-1.1.4/copying +3 -0
- package/native-notices/crates/aho-corasick-1.1.4/license-mit +21 -0
- package/native-notices/crates/aho-corasick-1.1.4/unlicense +24 -0
- package/native-notices/crates/anstream-1.0.0/license-apache +202 -0
- package/native-notices/crates/anstream-1.0.0/license-mit +19 -0
- package/native-notices/crates/anstyle-1.0.14/license-apache +202 -0
- package/native-notices/crates/anstyle-1.0.14/license-mit +19 -0
- package/native-notices/crates/anstyle-parse-1.0.0/license-apache +202 -0
- package/native-notices/crates/anstyle-parse-1.0.0/license-mit +19 -0
- package/native-notices/crates/anstyle-query-1.1.5/license-apache +202 -0
- package/native-notices/crates/anstyle-query-1.1.5/license-mit +19 -0
- package/native-notices/crates/anyhow-1.0.102/license-apache +176 -0
- package/native-notices/crates/anyhow-1.0.102/license-mit +23 -0
- package/native-notices/crates/atomic-waker-1.1.2/license-apache +201 -0
- package/native-notices/crates/atomic-waker-1.1.2/license-mit +23 -0
- package/native-notices/crates/atomic-waker-1.1.2/license-third-party +45 -0
- package/native-notices/crates/axum-0.8.9/license +25 -0
- package/native-notices/crates/axum-core-0.5.6/license +27 -0
- package/native-notices/crates/base64-0.22.1/license-apache +201 -0
- package/native-notices/crates/base64-0.22.1/license-mit +21 -0
- package/native-notices/crates/block-buffer-0.10.4/license-apache +201 -0
- package/native-notices/crates/block-buffer-0.10.4/license-mit +25 -0
- package/native-notices/crates/bytes-1.12.0/license +25 -0
- package/native-notices/crates/cfg-if-1.0.4/license-apache +201 -0
- package/native-notices/crates/cfg-if-1.0.4/license-mit +25 -0
- package/native-notices/crates/clap-4.6.1/license-apache +202 -0
- package/native-notices/crates/clap-4.6.1/license-mit +19 -0
- package/native-notices/crates/clap_builder-4.6.0/license-apache +202 -0
- package/native-notices/crates/clap_builder-4.6.0/license-mit +19 -0
- package/native-notices/crates/clap_derive-4.6.1/license-apache +202 -0
- package/native-notices/crates/clap_derive-4.6.1/license-mit +19 -0
- package/native-notices/crates/clap_lex-1.1.0/license-apache +202 -0
- package/native-notices/crates/clap_lex-1.1.0/license-mit +19 -0
- package/native-notices/crates/colorchoice-1.0.5/license-apache +202 -0
- package/native-notices/crates/colorchoice-1.0.5/license-mit +19 -0
- package/native-notices/crates/cpufeatures-0.2.17/license-apache +201 -0
- package/native-notices/crates/cpufeatures-0.2.17/license-mit +25 -0
- package/native-notices/crates/crc32fast-1.5.0/license-apache +202 -0
- package/native-notices/crates/crc32fast-1.5.0/license-mit +21 -0
- package/native-notices/crates/crypto-common-0.1.7/license-apache +201 -0
- package/native-notices/crates/crypto-common-0.1.7/license-mit +25 -0
- package/native-notices/crates/digest-0.10.7/license-apache +201 -0
- package/native-notices/crates/digest-0.10.7/license-mit +25 -0
- package/native-notices/crates/errno-0.3.14/license-apache +201 -0
- package/native-notices/crates/errno-0.3.14/license-mit +25 -0
- package/native-notices/crates/flate2-1.1.9/license-apache +201 -0
- package/native-notices/crates/flate2-1.1.9/license-mit +25 -0
- package/native-notices/crates/form_urlencoded-1.2.2/license-apache +201 -0
- package/native-notices/crates/form_urlencoded-1.2.2/license-mit +25 -0
- package/native-notices/crates/futures-channel-0.3.33/license-apache +202 -0
- package/native-notices/crates/futures-channel-0.3.33/license-mit +26 -0
- package/native-notices/crates/futures-core-0.3.33/license-apache +202 -0
- package/native-notices/crates/futures-core-0.3.33/license-mit +26 -0
- package/native-notices/crates/futures-macro-0.3.33/license-apache +202 -0
- package/native-notices/crates/futures-macro-0.3.33/license-mit +26 -0
- package/native-notices/crates/futures-sink-0.3.33/license-apache +202 -0
- package/native-notices/crates/futures-sink-0.3.33/license-mit +26 -0
- package/native-notices/crates/futures-task-0.3.33/license-apache +202 -0
- package/native-notices/crates/futures-task-0.3.33/license-mit +26 -0
- package/native-notices/crates/futures-util-0.3.33/license-apache +202 -0
- package/native-notices/crates/futures-util-0.3.33/license-mit +26 -0
- package/native-notices/crates/generic-array-0.14.7/license +21 -0
- package/native-notices/crates/heck-0.5.0/license-apache +201 -0
- package/native-notices/crates/heck-0.5.0/license-mit +25 -0
- package/native-notices/crates/http-1.4.2/license-apache +201 -0
- package/native-notices/crates/http-1.4.2/license-mit +25 -0
- package/native-notices/crates/http-body-1.1.0/license +25 -0
- package/native-notices/crates/http-body-util-0.1.4/license +25 -0
- package/native-notices/crates/httparse-1.10.1/license-apache +201 -0
- package/native-notices/crates/httparse-1.10.1/license-mit +20 -0
- package/native-notices/crates/httpdate-1.0.3/license-apache +201 -0
- package/native-notices/crates/httpdate-1.0.3/license-mit +19 -0
- package/native-notices/crates/hyper-1.10.1/license +19 -0
- package/native-notices/crates/hyper-util-0.1.20/license +19 -0
- package/native-notices/crates/is_terminal_polyfill-1.70.2/license-apache +202 -0
- package/native-notices/crates/is_terminal_polyfill-1.70.2/license-mit +19 -0
- package/native-notices/crates/itoa-1.0.18/license-apache +176 -0
- package/native-notices/crates/itoa-1.0.18/license-mit +23 -0
- package/native-notices/crates/lazy_static-1.5.0/license-apache +201 -0
- package/native-notices/crates/lazy_static-1.5.0/license-mit +25 -0
- package/native-notices/crates/libc-0.2.186/license-apache +176 -0
- package/native-notices/crates/libc-0.2.186/license-mit +25 -0
- package/native-notices/crates/lock_api-0.4.14/license-apache +201 -0
- package/native-notices/crates/lock_api-0.4.14/license-mit +25 -0
- package/native-notices/crates/log-0.4.33/license-apache +201 -0
- package/native-notices/crates/log-0.4.33/license-mit +25 -0
- package/native-notices/crates/matchers-0.2.0/license +19 -0
- package/native-notices/crates/matchit-0.8.4/license +21 -0
- package/native-notices/crates/matchit-0.8.4/license.httprouter +29 -0
- package/native-notices/crates/memchr-2.8.2/copying +3 -0
- package/native-notices/crates/memchr-2.8.2/license-mit +21 -0
- package/native-notices/crates/memchr-2.8.2/unlicense +24 -0
- package/native-notices/crates/mime-0.3.17/license-apache +201 -0
- package/native-notices/crates/mime-0.3.17/license-mit +20 -0
- package/native-notices/crates/miniz_oxide-0.8.9/license +25 -0
- package/native-notices/crates/miniz_oxide-0.8.9/license-apache.md +177 -0
- package/native-notices/crates/miniz_oxide-0.8.9/license-mit.md +24 -0
- package/native-notices/crates/miniz_oxide-0.8.9/license-zlib.md +14 -0
- package/native-notices/crates/mio-1.2.1/license +19 -0
- package/native-notices/crates/nu-ansi-term-0.50.3/license +22 -0
- package/native-notices/crates/once_cell-1.21.4/license-apache +201 -0
- package/native-notices/crates/once_cell-1.21.4/license-mit +23 -0
- package/native-notices/crates/parking_lot-0.12.5/license-apache +201 -0
- package/native-notices/crates/parking_lot-0.12.5/license-mit +25 -0
- package/native-notices/crates/parking_lot_core-0.9.12/license-apache +201 -0
- package/native-notices/crates/parking_lot_core-0.9.12/license-mit +25 -0
- package/native-notices/crates/percent-encoding-2.3.2/license-apache +201 -0
- package/native-notices/crates/percent-encoding-2.3.2/license-mit +25 -0
- package/native-notices/crates/pin-project-lite-0.2.17/license-apache +177 -0
- package/native-notices/crates/pin-project-lite-0.2.17/license-mit +23 -0
- package/native-notices/crates/proc-macro2-1.0.106/license-apache +176 -0
- package/native-notices/crates/proc-macro2-1.0.106/license-mit +23 -0
- package/native-notices/crates/quote-1.0.45/license-apache +176 -0
- package/native-notices/crates/quote-1.0.45/license-mit +23 -0
- package/native-notices/crates/regex-automata-0.4.14/license-apache +201 -0
- package/native-notices/crates/regex-automata-0.4.14/license-mit +25 -0
- package/native-notices/crates/regex-syntax-0.8.11/license-apache +201 -0
- package/native-notices/crates/regex-syntax-0.8.11/license-mit +25 -0
- package/native-notices/crates/ryu-1.0.23/license-apache +176 -0
- package/native-notices/crates/ryu-1.0.23/license-boost +23 -0
- package/native-notices/crates/scopeguard-1.2.0/license-apache +201 -0
- package/native-notices/crates/scopeguard-1.2.0/license-mit +25 -0
- package/native-notices/crates/serde-1.0.228/license-apache +176 -0
- package/native-notices/crates/serde-1.0.228/license-mit +23 -0
- package/native-notices/crates/serde_core-1.0.228/license-apache +176 -0
- package/native-notices/crates/serde_core-1.0.228/license-mit +23 -0
- package/native-notices/crates/serde_derive-1.0.228/license-apache +176 -0
- package/native-notices/crates/serde_derive-1.0.228/license-mit +23 -0
- package/native-notices/crates/serde_json-1.0.150/license-apache +176 -0
- package/native-notices/crates/serde_json-1.0.150/license-mit +23 -0
- package/native-notices/crates/serde_path_to_error-0.1.20/license-apache +176 -0
- package/native-notices/crates/serde_path_to_error-0.1.20/license-mit +23 -0
- package/native-notices/crates/serde_urlencoded-0.7.1/license-apache +176 -0
- package/native-notices/crates/serde_urlencoded-0.7.1/license-mit +25 -0
- package/native-notices/crates/sha2-0.10.9/license-apache +201 -0
- package/native-notices/crates/sha2-0.10.9/license-mit +27 -0
- package/native-notices/crates/sharded-slab-0.1.7/license +19 -0
- package/native-notices/crates/signal-hook-registry-1.4.8/license-apache +201 -0
- package/native-notices/crates/signal-hook-registry-1.4.8/license-mit +25 -0
- package/native-notices/crates/simd-adler32-0.3.10/license.md +21 -0
- package/native-notices/crates/slab-0.4.12/license +25 -0
- package/native-notices/crates/smallvec-1.15.2/license-apache +201 -0
- package/native-notices/crates/smallvec-1.15.2/license-mit +25 -0
- package/native-notices/crates/socket2-0.6.4/license-apache +201 -0
- package/native-notices/crates/socket2-0.6.4/license-mit +25 -0
- package/native-notices/crates/strsim-0.11.1/license +23 -0
- package/native-notices/crates/syn-2.0.118/license-apache +176 -0
- package/native-notices/crates/syn-2.0.118/license-mit +23 -0
- package/native-notices/crates/sync_wrapper-1.0.2/license +177 -0
- package/native-notices/crates/thread_local-1.1.9/license-apache +201 -0
- package/native-notices/crates/thread_local-1.1.9/license-mit +25 -0
- package/native-notices/crates/tokio-1.52.3/license +21 -0
- package/native-notices/crates/tokio-macros-2.7.0/license +22 -0
- package/native-notices/crates/tokio-stream-0.1.18/license +21 -0
- package/native-notices/crates/tokio-util-0.7.18/license +21 -0
- package/native-notices/crates/tower-0.5.3/license +25 -0
- package/native-notices/crates/tower-layer-0.3.3/license +25 -0
- package/native-notices/crates/tower-service-0.3.3/license +25 -0
- package/native-notices/crates/tracing-0.1.44/license +25 -0
- package/native-notices/crates/tracing-attributes-0.1.31/license +25 -0
- package/native-notices/crates/tracing-core-0.1.36/license +25 -0
- package/native-notices/crates/tracing-log-0.2.0/license +25 -0
- package/native-notices/crates/tracing-subscriber-0.3.23/license +25 -0
- package/native-notices/crates/typenum-1.20.1/license +1 -0
- package/native-notices/crates/typenum-1.20.1/license-apache +201 -0
- package/native-notices/crates/typenum-1.20.1/license-mit +21 -0
- package/native-notices/crates/unicode-ident-1.0.24/license-apache +176 -0
- package/native-notices/crates/unicode-ident-1.0.24/license-mit +23 -0
- package/native-notices/crates/unicode-ident-1.0.24/license-unicode +39 -0
- package/native-notices/crates/utf8parse-0.2.2/license-apache +176 -0
- package/native-notices/crates/utf8parse-0.2.2/license-mit +25 -0
- package/native-notices/crates/version_check-0.9.5/license-apache +201 -0
- package/native-notices/crates/version_check-0.9.5/license-mit +19 -0
- package/native-notices/crates/zmij-1.0.21/license-mit +23 -0
- package/native-notices/manifest.json +2457 -0
- package/native-notices/readme.md +44 -0
- package/native-notices/runtime/gcc/gpl-3.0.txt +674 -0
- package/native-notices/runtime/gcc/runtime-library-exception-3.1.txt +73 -0
- package/native-notices/runtime/glibc/lgpl-2.1.txt +502 -0
- package/native-notices/rust/compiler-builtins-license.txt +275 -0
- package/native-notices/rust/copyright-library.html +8266 -0
- package/native-notices/rust/crates/addr2line-0.25.1/license-apache +201 -0
- package/native-notices/rust/crates/addr2line-0.25.1/license-mit +25 -0
- package/native-notices/rust/crates/adler2-2.0.1/license-0bsd +12 -0
- package/native-notices/rust/crates/adler2-2.0.1/license-apache +201 -0
- package/native-notices/rust/crates/adler2-2.0.1/license-mit +23 -0
- package/native-notices/rust/crates/memchr-2.7.6/copying +3 -0
- package/native-notices/rust/crates/memchr-2.7.6/license-mit +21 -0
- package/native-notices/rust/crates/memchr-2.7.6/unlicense +24 -0
- package/native-notices/rust/crates/miniz_oxide-0.8.9/license +25 -0
- package/native-notices/rust/crates/miniz_oxide-0.8.9/license-apache.md +177 -0
- package/native-notices/rust/crates/miniz_oxide-0.8.9/license-mit.md +24 -0
- package/native-notices/rust/crates/miniz_oxide-0.8.9/license-zlib.md +14 -0
- package/native-notices/rust/crates/object-0.37.3/license-apache +201 -0
- package/native-notices/rust/crates/object-0.37.3/license-mit +25 -0
- package/native-notices/rust/licenses/apache-2.0.txt +73 -0
- package/native-notices/rust/licenses/bsd-2-clause.txt +9 -0
- package/native-notices/rust/licenses/cc-by-sa-4.0.txt +427 -0
- package/native-notices/rust/licenses/gcc-exception-3.1.txt +30 -0
- package/native-notices/rust/licenses/gpl-2.0-only.txt +133 -0
- package/native-notices/rust/licenses/gpl-3.0-or-later.txt +202 -0
- package/native-notices/rust/licenses/isc.txt +7 -0
- package/native-notices/rust/licenses/llvm-exception.txt +15 -0
- package/native-notices/rust/licenses/mit.txt +9 -0
- package/native-notices/rust/licenses/ncsa.txt +29 -0
- package/native-notices/rust/licenses/ofl-1.1.txt +43 -0
- package/native-notices/rust/licenses/unicode-3.0.txt +39 -0
- package/package.json +9 -8
- package/readme.md +63 -6
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.gitmanager.ts +10 -2
- package/ts/classes.repositoryservice.ts +41 -12
- package/ts/models.ts +22 -1
- package/ts/rust-gitmanager-bridge.ts +5 -3
|
@@ -3,6 +3,7 @@ import type {
|
|
|
3
3
|
IGitManagerRepositoryServiceRequest,
|
|
4
4
|
IGitManagerRepositoryServiceResult,
|
|
5
5
|
IRustGitManagerRepositoryServiceDescriptor,
|
|
6
|
+
TGitManagerRepositoryServiceFailure,
|
|
6
7
|
} from './models.js';
|
|
7
8
|
|
|
8
9
|
class ByteLimitTransform extends plugins.stream.Transform {
|
|
@@ -11,7 +12,7 @@ class ByteLimitTransform extends plugins.stream.Transform {
|
|
|
11
12
|
constructor(
|
|
12
13
|
private readonly maximumBytes: number,
|
|
13
14
|
private readonly label: string,
|
|
14
|
-
private readonly onLimit: (
|
|
15
|
+
private readonly onLimit: () => void,
|
|
15
16
|
) {
|
|
16
17
|
super();
|
|
17
18
|
}
|
|
@@ -28,9 +29,8 @@ class ByteLimitTransform extends plugins.stream.Transform {
|
|
|
28
29
|
: Buffer.from(chunkArg);
|
|
29
30
|
this.bytes += chunk.byteLength;
|
|
30
31
|
if (!Number.isSafeInteger(this.bytes) || this.bytes > this.maximumBytes) {
|
|
31
|
-
|
|
32
|
-
this.
|
|
33
|
-
callbackArg(error);
|
|
32
|
+
this.onLimit();
|
|
33
|
+
callbackArg(new Error(this.label + ' exceeded the configured size limit'));
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
36
|
callbackArg(null, chunk);
|
|
@@ -82,6 +82,7 @@ export class GitManagerRepositoryService {
|
|
|
82
82
|
public readonly completed: Promise<IGitManagerRepositoryServiceResult>;
|
|
83
83
|
private readonly child: plugins.childProcess.ChildProcessWithoutNullStreams;
|
|
84
84
|
private completionSettled = false;
|
|
85
|
+
private failure: TGitManagerRepositoryServiceFailure | null = null;
|
|
85
86
|
private timeout?: NodeJS.Timeout;
|
|
86
87
|
|
|
87
88
|
constructor(
|
|
@@ -134,25 +135,31 @@ export class GitManagerRepositoryService {
|
|
|
134
135
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
135
136
|
windowsHide: true,
|
|
136
137
|
});
|
|
137
|
-
const
|
|
138
|
-
this.
|
|
139
|
-
return errorArg;
|
|
140
|
-
};
|
|
138
|
+
const failWith = (failureArg: TGitManagerRepositoryServiceFailure) =>
|
|
139
|
+
() => this.fail(failureArg);
|
|
141
140
|
const input = new ByteLimitTransform(
|
|
142
141
|
descriptorArg.maxRequestBytes,
|
|
143
142
|
'Git repository service request',
|
|
144
|
-
|
|
143
|
+
failWith('requestLimitExceeded'),
|
|
145
144
|
);
|
|
146
145
|
const output = new ByteLimitTransform(
|
|
147
146
|
descriptorArg.maxResponseBytes,
|
|
148
147
|
'Git repository service response',
|
|
149
|
-
|
|
148
|
+
failWith('responseLimitExceeded'),
|
|
150
149
|
);
|
|
151
150
|
const stderr = new ByteLimitTransform(
|
|
152
151
|
128 * 1024,
|
|
153
152
|
'Git repository service stderr',
|
|
154
|
-
|
|
153
|
+
failWith('stderrLimitExceeded'),
|
|
155
154
|
);
|
|
155
|
+
// The service owns every stream error: a consumer's pipe() into stdin
|
|
156
|
+
// would otherwise rethrow an unhandled error. Failures surface through
|
|
157
|
+
// `completed`. Git closing its stdin early is reported by its exit
|
|
158
|
+
// status, so write errors on the child's stdin end only the pipe.
|
|
159
|
+
for (const ownedStream of [input, output, stderr, this.child.stdout, this.child.stderr]) {
|
|
160
|
+
ownedStream.on('error', failWith('streamFailed'));
|
|
161
|
+
}
|
|
162
|
+
this.child.stdin.on('error', () => undefined);
|
|
156
163
|
input.pipe(this.child.stdin);
|
|
157
164
|
this.child.stdout.pipe(output);
|
|
158
165
|
this.child.stderr.pipe(stderr);
|
|
@@ -173,11 +180,12 @@ export class GitManagerRepositoryService {
|
|
|
173
180
|
resolve({
|
|
174
181
|
exitCode,
|
|
175
182
|
signal: signal as NodeJS.Signals | null,
|
|
183
|
+
failure: this.failure,
|
|
176
184
|
});
|
|
177
185
|
});
|
|
178
186
|
});
|
|
179
187
|
this.timeout = setTimeout(() => {
|
|
180
|
-
this.
|
|
188
|
+
this.fail('processTimeout');
|
|
181
189
|
}, descriptorArg.processTimeoutMs);
|
|
182
190
|
this.timeout.unref();
|
|
183
191
|
}
|
|
@@ -198,12 +206,33 @@ export class GitManagerRepositoryService {
|
|
|
198
206
|
this.child.kill('SIGKILL');
|
|
199
207
|
}
|
|
200
208
|
|
|
209
|
+
/**
|
|
210
|
+
* Kills the Git process tree and releases every stream, including output
|
|
211
|
+
* the caller never read, so `completed` settles without depending on the
|
|
212
|
+
* caller draining it.
|
|
213
|
+
*/
|
|
201
214
|
public async close(): Promise<void> {
|
|
202
215
|
this.stdin.destroy();
|
|
203
216
|
this.terminate();
|
|
217
|
+
for (const ownedStream of [
|
|
218
|
+
this.stdout,
|
|
219
|
+
this.stderr,
|
|
220
|
+
this.child.stdout,
|
|
221
|
+
this.child.stderr,
|
|
222
|
+
]) {
|
|
223
|
+
ownedStream.destroy();
|
|
224
|
+
}
|
|
204
225
|
await this.completed.catch(() => undefined);
|
|
205
226
|
}
|
|
206
227
|
|
|
228
|
+
/** Records the first failure and terminates the Git process tree. */
|
|
229
|
+
private fail(failureArg: TGitManagerRepositoryServiceFailure): void {
|
|
230
|
+
if (!this.failure && !this.completionSettled) {
|
|
231
|
+
this.failure = failureArg;
|
|
232
|
+
}
|
|
233
|
+
this.terminate();
|
|
234
|
+
}
|
|
235
|
+
|
|
207
236
|
private clearTimeout(): void {
|
|
208
237
|
if (this.timeout) {
|
|
209
238
|
clearTimeout(this.timeout);
|
package/ts/models.ts
CHANGED
|
@@ -115,9 +115,26 @@ export interface IRustGitManagerRepositoryServiceDescriptor
|
|
|
115
115
|
idleTimeoutSeconds: number;
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
+
/**
|
|
119
|
+
* Why GitManager terminated a repository service process. The value says the
|
|
120
|
+
* transfer was cut, not that the repository is unchanged: an SSH-style
|
|
121
|
+
* receive-pack has no receive gate, so Git updates refs as soon as it has read
|
|
122
|
+
* a complete pack, and excess bytes arriving after that cannot undo those
|
|
123
|
+
* updates. Reconcile refs from the repository after every receive-pack,
|
|
124
|
+
* whatever `failure` says.
|
|
125
|
+
*/
|
|
126
|
+
export type TGitManagerRepositoryServiceFailure =
|
|
127
|
+
| 'requestLimitExceeded'
|
|
128
|
+
| 'responseLimitExceeded'
|
|
129
|
+
| 'stderrLimitExceeded'
|
|
130
|
+
| 'streamFailed'
|
|
131
|
+
| 'processTimeout';
|
|
132
|
+
|
|
118
133
|
export interface IGitManagerRepositoryServiceResult {
|
|
119
134
|
exitCode: number | null;
|
|
120
135
|
signal: NodeJS.Signals | null;
|
|
136
|
+
/** The first failure that made GitManager terminate the process; null otherwise. */
|
|
137
|
+
failure: TGitManagerRepositoryServiceFailure | null;
|
|
121
138
|
}
|
|
122
139
|
|
|
123
140
|
export interface IGitManagerRestoreBundleRequest
|
|
@@ -231,6 +248,9 @@ export type {
|
|
|
231
248
|
IGitManagerMergeResult,
|
|
232
249
|
IGitManagerReadFileRequest,
|
|
233
250
|
IGitManagerRef,
|
|
251
|
+
IGitManagerRefHead,
|
|
252
|
+
IGitManagerRefInventoryPage,
|
|
253
|
+
IGitManagerRefInventoryStale,
|
|
234
254
|
IGitManagerRefRequest,
|
|
235
255
|
IGitManagerRepositoryInfo,
|
|
236
256
|
IGitManagerRepositorySelector,
|
|
@@ -243,6 +263,7 @@ export type {
|
|
|
243
263
|
TGitManagerMergeMethod,
|
|
244
264
|
TGitManagerMergeStatus,
|
|
245
265
|
TGitManagerObjectType,
|
|
246
|
-
|
|
266
|
+
TGitManagerRefInventoryPagination,
|
|
267
|
+
TGitManagerRefInventoryResult,
|
|
247
268
|
TGitManagerTreeEntryType,
|
|
248
269
|
} from '@foss.global/interfaces';
|
|
@@ -13,7 +13,6 @@ import type {
|
|
|
13
13
|
IGitManagerMergeRequest,
|
|
14
14
|
IGitManagerMergeResult,
|
|
15
15
|
IGitManagerReadFileRequest,
|
|
16
|
-
IGitManagerRef,
|
|
17
16
|
IGitManagerRefRequest,
|
|
18
17
|
IGitManagerProtectedRefsApplyResult,
|
|
19
18
|
IGitManagerSmartHttpRepositoryProtectedRefs,
|
|
@@ -34,6 +33,7 @@ import type {
|
|
|
34
33
|
IGitManagerTreeEntry,
|
|
35
34
|
IGitManagerTreeRequest,
|
|
36
35
|
IRustGitManagerConfig,
|
|
36
|
+
TGitManagerRefInventoryResult,
|
|
37
37
|
IRustGitManagerRepositoryServiceDescriptor,
|
|
38
38
|
} from './models.js';
|
|
39
39
|
|
|
@@ -69,7 +69,7 @@ type TGitManagerCommands = {
|
|
|
69
69
|
prepareRepositoryService: { params: IGitManagerRepositoryServiceRequest; result: IRustGitManagerRepositoryServiceDescriptor };
|
|
70
70
|
restoreRepositoryBundle: { params: IGitManagerRestoreBundleRequest; result: IGitManagerRepositoryInfo };
|
|
71
71
|
listRepositories: { params: Record<string, never>; result: IGitManagerRepositoryInfo[] };
|
|
72
|
-
listRefs: { params: IGitManagerRefRequest; result:
|
|
72
|
+
listRefs: { params: IGitManagerRefRequest; result: TGitManagerRefInventoryResult };
|
|
73
73
|
listRepositoryLfsPointers: { params: IGitManagerRepositorySelector; result: IGitManagerRepositoryLfsPointer[] };
|
|
74
74
|
mergeRepository: { params: IGitManagerMergeRequest; result: IGitManagerMergeResult };
|
|
75
75
|
listTree: { params: IGitManagerTreeRequest; result: IGitManagerTreeEntry[] };
|
|
@@ -278,7 +278,9 @@ export class RustGitManagerBridge extends plugins.EventEmitter {
|
|
|
278
278
|
return this.bridge.sendCommand('listRepositories', {});
|
|
279
279
|
}
|
|
280
280
|
|
|
281
|
-
public async listRefs(
|
|
281
|
+
public async listRefs(
|
|
282
|
+
requestArg: IGitManagerRefRequest,
|
|
283
|
+
): Promise<TGitManagerRefInventoryResult> {
|
|
282
284
|
return this.bridge.sendCommand('listRefs', requestArg);
|
|
283
285
|
}
|
|
284
286
|
|