@foss.global/gitmanager 1.7.1 → 2.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.
Files changed (240) hide show
  1. package/.smartconfig.json +4 -1
  2. package/changelog.md +52 -0
  3. package/dist_rust/rustgitmanager_linux_amd64 +0 -0
  4. package/dist_rust/rustgitmanager_linux_amd64.tsrust-build.json +5 -5
  5. package/dist_rust/rustgitmanager_linux_arm64 +0 -0
  6. package/dist_rust/rustgitmanager_linux_arm64.tsrust-build.json +5 -5
  7. package/dist_ts/00_commitinfo_data.js +1 -1
  8. package/dist_ts/classes.archiveinspection.d.ts +11 -0
  9. package/dist_ts/classes.archiveinspection.js +205 -0
  10. package/dist_ts/classes.gitmanager.d.ts +26 -2
  11. package/dist_ts/classes.gitmanager.js +60 -1
  12. package/dist_ts/classes.gitmanagererror.d.ts +11 -0
  13. package/dist_ts/classes.gitmanagererror.js +22 -0
  14. package/dist_ts/classes.repositoryservice.d.ts +8 -0
  15. package/dist_ts/classes.repositoryservice.js +38 -12
  16. package/dist_ts/index.d.ts +2 -0
  17. package/dist_ts/index.js +3 -1
  18. package/dist_ts/models.d.ts +66 -1
  19. package/dist_ts/rust-gitmanager-bridge.d.ts +6 -2
  20. package/dist_ts/rust-gitmanager-bridge.js +41 -2
  21. package/native-notices/crates/adler2-2.0.1/license-0bsd +12 -0
  22. package/native-notices/crates/adler2-2.0.1/license-apache +201 -0
  23. package/native-notices/crates/adler2-2.0.1/license-mit +23 -0
  24. package/native-notices/crates/aho-corasick-1.1.4/copying +3 -0
  25. package/native-notices/crates/aho-corasick-1.1.4/license-mit +21 -0
  26. package/native-notices/crates/aho-corasick-1.1.4/unlicense +24 -0
  27. package/native-notices/crates/anstream-1.0.0/license-apache +202 -0
  28. package/native-notices/crates/anstream-1.0.0/license-mit +19 -0
  29. package/native-notices/crates/anstyle-1.0.14/license-apache +202 -0
  30. package/native-notices/crates/anstyle-1.0.14/license-mit +19 -0
  31. package/native-notices/crates/anstyle-parse-1.0.0/license-apache +202 -0
  32. package/native-notices/crates/anstyle-parse-1.0.0/license-mit +19 -0
  33. package/native-notices/crates/anstyle-query-1.1.5/license-apache +202 -0
  34. package/native-notices/crates/anstyle-query-1.1.5/license-mit +19 -0
  35. package/native-notices/crates/anyhow-1.0.102/license-apache +176 -0
  36. package/native-notices/crates/anyhow-1.0.102/license-mit +23 -0
  37. package/native-notices/crates/atomic-waker-1.1.2/license-apache +201 -0
  38. package/native-notices/crates/atomic-waker-1.1.2/license-mit +23 -0
  39. package/native-notices/crates/atomic-waker-1.1.2/license-third-party +45 -0
  40. package/native-notices/crates/axum-0.8.9/license +25 -0
  41. package/native-notices/crates/axum-core-0.5.6/license +27 -0
  42. package/native-notices/crates/base64-0.22.1/license-apache +201 -0
  43. package/native-notices/crates/base64-0.22.1/license-mit +21 -0
  44. package/native-notices/crates/block-buffer-0.10.4/license-apache +201 -0
  45. package/native-notices/crates/block-buffer-0.10.4/license-mit +25 -0
  46. package/native-notices/crates/bytes-1.12.0/license +25 -0
  47. package/native-notices/crates/cfg-if-1.0.4/license-apache +201 -0
  48. package/native-notices/crates/cfg-if-1.0.4/license-mit +25 -0
  49. package/native-notices/crates/clap-4.6.1/license-apache +202 -0
  50. package/native-notices/crates/clap-4.6.1/license-mit +19 -0
  51. package/native-notices/crates/clap_builder-4.6.0/license-apache +202 -0
  52. package/native-notices/crates/clap_builder-4.6.0/license-mit +19 -0
  53. package/native-notices/crates/clap_derive-4.6.1/license-apache +202 -0
  54. package/native-notices/crates/clap_derive-4.6.1/license-mit +19 -0
  55. package/native-notices/crates/clap_lex-1.1.0/license-apache +202 -0
  56. package/native-notices/crates/clap_lex-1.1.0/license-mit +19 -0
  57. package/native-notices/crates/colorchoice-1.0.5/license-apache +202 -0
  58. package/native-notices/crates/colorchoice-1.0.5/license-mit +19 -0
  59. package/native-notices/crates/cpufeatures-0.2.17/license-apache +201 -0
  60. package/native-notices/crates/cpufeatures-0.2.17/license-mit +25 -0
  61. package/native-notices/crates/crc32fast-1.5.0/license-apache +202 -0
  62. package/native-notices/crates/crc32fast-1.5.0/license-mit +21 -0
  63. package/native-notices/crates/crypto-common-0.1.7/license-apache +201 -0
  64. package/native-notices/crates/crypto-common-0.1.7/license-mit +25 -0
  65. package/native-notices/crates/digest-0.10.7/license-apache +201 -0
  66. package/native-notices/crates/digest-0.10.7/license-mit +25 -0
  67. package/native-notices/crates/errno-0.3.14/license-apache +201 -0
  68. package/native-notices/crates/errno-0.3.14/license-mit +25 -0
  69. package/native-notices/crates/flate2-1.1.9/license-apache +201 -0
  70. package/native-notices/crates/flate2-1.1.9/license-mit +25 -0
  71. package/native-notices/crates/form_urlencoded-1.2.2/license-apache +201 -0
  72. package/native-notices/crates/form_urlencoded-1.2.2/license-mit +25 -0
  73. package/native-notices/crates/futures-channel-0.3.33/license-apache +202 -0
  74. package/native-notices/crates/futures-channel-0.3.33/license-mit +26 -0
  75. package/native-notices/crates/futures-core-0.3.33/license-apache +202 -0
  76. package/native-notices/crates/futures-core-0.3.33/license-mit +26 -0
  77. package/native-notices/crates/futures-macro-0.3.33/license-apache +202 -0
  78. package/native-notices/crates/futures-macro-0.3.33/license-mit +26 -0
  79. package/native-notices/crates/futures-sink-0.3.33/license-apache +202 -0
  80. package/native-notices/crates/futures-sink-0.3.33/license-mit +26 -0
  81. package/native-notices/crates/futures-task-0.3.33/license-apache +202 -0
  82. package/native-notices/crates/futures-task-0.3.33/license-mit +26 -0
  83. package/native-notices/crates/futures-util-0.3.33/license-apache +202 -0
  84. package/native-notices/crates/futures-util-0.3.33/license-mit +26 -0
  85. package/native-notices/crates/generic-array-0.14.7/license +21 -0
  86. package/native-notices/crates/heck-0.5.0/license-apache +201 -0
  87. package/native-notices/crates/heck-0.5.0/license-mit +25 -0
  88. package/native-notices/crates/http-1.4.2/license-apache +201 -0
  89. package/native-notices/crates/http-1.4.2/license-mit +25 -0
  90. package/native-notices/crates/http-body-1.1.0/license +25 -0
  91. package/native-notices/crates/http-body-util-0.1.4/license +25 -0
  92. package/native-notices/crates/httparse-1.10.1/license-apache +201 -0
  93. package/native-notices/crates/httparse-1.10.1/license-mit +20 -0
  94. package/native-notices/crates/httpdate-1.0.3/license-apache +201 -0
  95. package/native-notices/crates/httpdate-1.0.3/license-mit +19 -0
  96. package/native-notices/crates/hyper-1.10.1/license +19 -0
  97. package/native-notices/crates/hyper-util-0.1.20/license +19 -0
  98. package/native-notices/crates/is_terminal_polyfill-1.70.2/license-apache +202 -0
  99. package/native-notices/crates/is_terminal_polyfill-1.70.2/license-mit +19 -0
  100. package/native-notices/crates/itoa-1.0.18/license-apache +176 -0
  101. package/native-notices/crates/itoa-1.0.18/license-mit +23 -0
  102. package/native-notices/crates/lazy_static-1.5.0/license-apache +201 -0
  103. package/native-notices/crates/lazy_static-1.5.0/license-mit +25 -0
  104. package/native-notices/crates/libc-0.2.186/license-apache +176 -0
  105. package/native-notices/crates/libc-0.2.186/license-mit +25 -0
  106. package/native-notices/crates/lock_api-0.4.14/license-apache +201 -0
  107. package/native-notices/crates/lock_api-0.4.14/license-mit +25 -0
  108. package/native-notices/crates/log-0.4.33/license-apache +201 -0
  109. package/native-notices/crates/log-0.4.33/license-mit +25 -0
  110. package/native-notices/crates/matchers-0.2.0/license +19 -0
  111. package/native-notices/crates/matchit-0.8.4/license +21 -0
  112. package/native-notices/crates/matchit-0.8.4/license.httprouter +29 -0
  113. package/native-notices/crates/memchr-2.8.2/copying +3 -0
  114. package/native-notices/crates/memchr-2.8.2/license-mit +21 -0
  115. package/native-notices/crates/memchr-2.8.2/unlicense +24 -0
  116. package/native-notices/crates/mime-0.3.17/license-apache +201 -0
  117. package/native-notices/crates/mime-0.3.17/license-mit +20 -0
  118. package/native-notices/crates/miniz_oxide-0.8.9/license +25 -0
  119. package/native-notices/crates/miniz_oxide-0.8.9/license-apache.md +177 -0
  120. package/native-notices/crates/miniz_oxide-0.8.9/license-mit.md +24 -0
  121. package/native-notices/crates/miniz_oxide-0.8.9/license-zlib.md +14 -0
  122. package/native-notices/crates/mio-1.2.1/license +19 -0
  123. package/native-notices/crates/nu-ansi-term-0.50.3/license +22 -0
  124. package/native-notices/crates/once_cell-1.21.4/license-apache +201 -0
  125. package/native-notices/crates/once_cell-1.21.4/license-mit +23 -0
  126. package/native-notices/crates/parking_lot-0.12.5/license-apache +201 -0
  127. package/native-notices/crates/parking_lot-0.12.5/license-mit +25 -0
  128. package/native-notices/crates/parking_lot_core-0.9.12/license-apache +201 -0
  129. package/native-notices/crates/parking_lot_core-0.9.12/license-mit +25 -0
  130. package/native-notices/crates/percent-encoding-2.3.2/license-apache +201 -0
  131. package/native-notices/crates/percent-encoding-2.3.2/license-mit +25 -0
  132. package/native-notices/crates/pin-project-lite-0.2.17/license-apache +177 -0
  133. package/native-notices/crates/pin-project-lite-0.2.17/license-mit +23 -0
  134. package/native-notices/crates/proc-macro2-1.0.106/license-apache +176 -0
  135. package/native-notices/crates/proc-macro2-1.0.106/license-mit +23 -0
  136. package/native-notices/crates/quote-1.0.45/license-apache +176 -0
  137. package/native-notices/crates/quote-1.0.45/license-mit +23 -0
  138. package/native-notices/crates/regex-automata-0.4.14/license-apache +201 -0
  139. package/native-notices/crates/regex-automata-0.4.14/license-mit +25 -0
  140. package/native-notices/crates/regex-syntax-0.8.11/license-apache +201 -0
  141. package/native-notices/crates/regex-syntax-0.8.11/license-mit +25 -0
  142. package/native-notices/crates/ryu-1.0.23/license-apache +176 -0
  143. package/native-notices/crates/ryu-1.0.23/license-boost +23 -0
  144. package/native-notices/crates/scopeguard-1.2.0/license-apache +201 -0
  145. package/native-notices/crates/scopeguard-1.2.0/license-mit +25 -0
  146. package/native-notices/crates/serde-1.0.228/license-apache +176 -0
  147. package/native-notices/crates/serde-1.0.228/license-mit +23 -0
  148. package/native-notices/crates/serde_core-1.0.228/license-apache +176 -0
  149. package/native-notices/crates/serde_core-1.0.228/license-mit +23 -0
  150. package/native-notices/crates/serde_derive-1.0.228/license-apache +176 -0
  151. package/native-notices/crates/serde_derive-1.0.228/license-mit +23 -0
  152. package/native-notices/crates/serde_json-1.0.150/license-apache +176 -0
  153. package/native-notices/crates/serde_json-1.0.150/license-mit +23 -0
  154. package/native-notices/crates/serde_path_to_error-0.1.20/license-apache +176 -0
  155. package/native-notices/crates/serde_path_to_error-0.1.20/license-mit +23 -0
  156. package/native-notices/crates/serde_urlencoded-0.7.1/license-apache +176 -0
  157. package/native-notices/crates/serde_urlencoded-0.7.1/license-mit +25 -0
  158. package/native-notices/crates/sha2-0.10.9/license-apache +201 -0
  159. package/native-notices/crates/sha2-0.10.9/license-mit +27 -0
  160. package/native-notices/crates/sharded-slab-0.1.7/license +19 -0
  161. package/native-notices/crates/signal-hook-registry-1.4.8/license-apache +201 -0
  162. package/native-notices/crates/signal-hook-registry-1.4.8/license-mit +25 -0
  163. package/native-notices/crates/simd-adler32-0.3.10/license.md +21 -0
  164. package/native-notices/crates/slab-0.4.12/license +25 -0
  165. package/native-notices/crates/smallvec-1.15.2/license-apache +201 -0
  166. package/native-notices/crates/smallvec-1.15.2/license-mit +25 -0
  167. package/native-notices/crates/socket2-0.6.4/license-apache +201 -0
  168. package/native-notices/crates/socket2-0.6.4/license-mit +25 -0
  169. package/native-notices/crates/strsim-0.11.1/license +23 -0
  170. package/native-notices/crates/syn-2.0.118/license-apache +176 -0
  171. package/native-notices/crates/syn-2.0.118/license-mit +23 -0
  172. package/native-notices/crates/sync_wrapper-1.0.2/license +177 -0
  173. package/native-notices/crates/thread_local-1.1.9/license-apache +201 -0
  174. package/native-notices/crates/thread_local-1.1.9/license-mit +25 -0
  175. package/native-notices/crates/tokio-1.52.3/license +21 -0
  176. package/native-notices/crates/tokio-macros-2.7.0/license +22 -0
  177. package/native-notices/crates/tokio-stream-0.1.18/license +21 -0
  178. package/native-notices/crates/tokio-util-0.7.18/license +21 -0
  179. package/native-notices/crates/tower-0.5.3/license +25 -0
  180. package/native-notices/crates/tower-layer-0.3.3/license +25 -0
  181. package/native-notices/crates/tower-service-0.3.3/license +25 -0
  182. package/native-notices/crates/tracing-0.1.44/license +25 -0
  183. package/native-notices/crates/tracing-attributes-0.1.31/license +25 -0
  184. package/native-notices/crates/tracing-core-0.1.36/license +25 -0
  185. package/native-notices/crates/tracing-log-0.2.0/license +25 -0
  186. package/native-notices/crates/tracing-subscriber-0.3.23/license +25 -0
  187. package/native-notices/crates/typenum-1.20.1/license +1 -0
  188. package/native-notices/crates/typenum-1.20.1/license-apache +201 -0
  189. package/native-notices/crates/typenum-1.20.1/license-mit +21 -0
  190. package/native-notices/crates/unicode-ident-1.0.24/license-apache +176 -0
  191. package/native-notices/crates/unicode-ident-1.0.24/license-mit +23 -0
  192. package/native-notices/crates/unicode-ident-1.0.24/license-unicode +39 -0
  193. package/native-notices/crates/utf8parse-0.2.2/license-apache +176 -0
  194. package/native-notices/crates/utf8parse-0.2.2/license-mit +25 -0
  195. package/native-notices/crates/version_check-0.9.5/license-apache +201 -0
  196. package/native-notices/crates/version_check-0.9.5/license-mit +19 -0
  197. package/native-notices/crates/zmij-1.0.21/license-mit +23 -0
  198. package/native-notices/manifest.json +2457 -0
  199. package/native-notices/readme.md +44 -0
  200. package/native-notices/runtime/gcc/gpl-3.0.txt +674 -0
  201. package/native-notices/runtime/gcc/runtime-library-exception-3.1.txt +73 -0
  202. package/native-notices/runtime/glibc/lgpl-2.1.txt +502 -0
  203. package/native-notices/rust/compiler-builtins-license.txt +275 -0
  204. package/native-notices/rust/copyright-library.html +8266 -0
  205. package/native-notices/rust/crates/addr2line-0.25.1/license-apache +201 -0
  206. package/native-notices/rust/crates/addr2line-0.25.1/license-mit +25 -0
  207. package/native-notices/rust/crates/adler2-2.0.1/license-0bsd +12 -0
  208. package/native-notices/rust/crates/adler2-2.0.1/license-apache +201 -0
  209. package/native-notices/rust/crates/adler2-2.0.1/license-mit +23 -0
  210. package/native-notices/rust/crates/memchr-2.7.6/copying +3 -0
  211. package/native-notices/rust/crates/memchr-2.7.6/license-mit +21 -0
  212. package/native-notices/rust/crates/memchr-2.7.6/unlicense +24 -0
  213. package/native-notices/rust/crates/miniz_oxide-0.8.9/license +25 -0
  214. package/native-notices/rust/crates/miniz_oxide-0.8.9/license-apache.md +177 -0
  215. package/native-notices/rust/crates/miniz_oxide-0.8.9/license-mit.md +24 -0
  216. package/native-notices/rust/crates/miniz_oxide-0.8.9/license-zlib.md +14 -0
  217. package/native-notices/rust/crates/object-0.37.3/license-apache +201 -0
  218. package/native-notices/rust/crates/object-0.37.3/license-mit +25 -0
  219. package/native-notices/rust/licenses/apache-2.0.txt +73 -0
  220. package/native-notices/rust/licenses/bsd-2-clause.txt +9 -0
  221. package/native-notices/rust/licenses/cc-by-sa-4.0.txt +427 -0
  222. package/native-notices/rust/licenses/gcc-exception-3.1.txt +30 -0
  223. package/native-notices/rust/licenses/gpl-2.0-only.txt +133 -0
  224. package/native-notices/rust/licenses/gpl-3.0-or-later.txt +202 -0
  225. package/native-notices/rust/licenses/isc.txt +7 -0
  226. package/native-notices/rust/licenses/llvm-exception.txt +15 -0
  227. package/native-notices/rust/licenses/mit.txt +9 -0
  228. package/native-notices/rust/licenses/ncsa.txt +29 -0
  229. package/native-notices/rust/licenses/ofl-1.1.txt +43 -0
  230. package/native-notices/rust/licenses/unicode-3.0.txt +39 -0
  231. package/package.json +10 -9
  232. package/readme.md +100 -7
  233. package/ts/00_commitinfo_data.ts +1 -1
  234. package/ts/classes.archiveinspection.ts +245 -0
  235. package/ts/classes.gitmanager.ts +72 -2
  236. package/ts/classes.gitmanagererror.ts +28 -0
  237. package/ts/classes.repositoryservice.ts +41 -12
  238. package/ts/index.ts +2 -0
  239. package/ts/models.ts +87 -1
  240. package/ts/rust-gitmanager-bridge.ts +53 -4
@@ -1,5 +1,7 @@
1
1
  import * as plugins from './plugins.js';
2
+ import { GitManagerError, isGitManagerErrorCode } from './classes.gitmanagererror.js';
2
3
  import type {
4
+ IGitManagerAncestryRequest,
3
5
  IGitManagerCommitDetail,
4
6
  IGitManagerCommitRequest,
5
7
  IGitManagerCommitSummary,
@@ -13,7 +15,6 @@ import type {
13
15
  IGitManagerMergeRequest,
14
16
  IGitManagerMergeResult,
15
17
  IGitManagerReadFileRequest,
16
- IGitManagerRef,
17
18
  IGitManagerRefRequest,
18
19
  IGitManagerProtectedRefsApplyResult,
19
20
  IGitManagerSmartHttpRepositoryProtectedRefs,
@@ -34,6 +35,7 @@ import type {
34
35
  IGitManagerTreeEntry,
35
36
  IGitManagerTreeRequest,
36
37
  IRustGitManagerConfig,
38
+ TGitManagerRefInventoryResult,
37
39
  IRustGitManagerRepositoryServiceDescriptor,
38
40
  } from './models.js';
39
41
 
@@ -69,11 +71,12 @@ type TGitManagerCommands = {
69
71
  prepareRepositoryService: { params: IGitManagerRepositoryServiceRequest; result: IRustGitManagerRepositoryServiceDescriptor };
70
72
  restoreRepositoryBundle: { params: IGitManagerRestoreBundleRequest; result: IGitManagerRepositoryInfo };
71
73
  listRepositories: { params: Record<string, never>; result: IGitManagerRepositoryInfo[] };
72
- listRefs: { params: IGitManagerRefRequest; result: IGitManagerRef[] };
74
+ listRefs: { params: IGitManagerRefRequest; result: TGitManagerRefInventoryResult };
73
75
  listRepositoryLfsPointers: { params: IGitManagerRepositorySelector; result: IGitManagerRepositoryLfsPointer[] };
74
76
  mergeRepository: { params: IGitManagerMergeRequest; result: IGitManagerMergeResult };
75
77
  listTree: { params: IGitManagerTreeRequest; result: IGitManagerTreeEntry[] };
76
78
  readFile: { params: IGitManagerReadFileRequest; result: IGitManagerFileContent };
79
+ isAncestor: { params: IGitManagerAncestryRequest; result: boolean };
77
80
  listCommits: { params: IGitManagerListCommitsRequest; result: IGitManagerCommitSummary[] };
78
81
  getCommit: { params: IGitManagerCommitRequest; result: IGitManagerCommitDetail };
79
82
  getDiff: { params: IGitManagerDiffRequest; result: IGitManagerDiff };
@@ -109,16 +112,37 @@ function buildLocalPaths(): string[] {
109
112
  return paths;
110
113
  }
111
114
 
115
+ /**
116
+ * Rethrows a Rust response that carries a stable GitManager error code as a
117
+ * `GitManagerError`; every other failure is rethrown unchanged.
118
+ */
119
+ const rethrowCodedError = (errorArg: unknown): never => {
120
+ if (
121
+ errorArg instanceof plugins.smartrust.RustBridgeRequestError
122
+ && isGitManagerErrorCode(errorArg.responseErrorCode)
123
+ ) {
124
+ throw new GitManagerError(errorArg.responseErrorCode, errorArg.message, {
125
+ cause: errorArg,
126
+ });
127
+ }
128
+ throw errorArg;
129
+ };
130
+
112
131
  export class RustGitManagerBridge extends plugins.EventEmitter {
113
132
  private bridge: plugins.smartrust.RustBridge<TGitManagerCommands>;
133
+ private binaryLocator: plugins.smartrust.RustBinaryLocator;
114
134
 
115
135
  constructor() {
116
136
  super();
117
- this.bridge = new plugins.smartrust.RustBridge<TGitManagerCommands>({
137
+ const binaryLocatorOptions: plugins.smartrust.IBinaryLocatorOptions = {
118
138
  binaryName: 'rustgitmanager',
119
139
  envVarName: 'GITMANAGER_RUST_BINARY',
120
140
  platformPackagePrefix: '@foss.global/gitmanager',
121
141
  localPaths: buildLocalPaths(),
142
+ };
143
+ this.binaryLocator = new plugins.smartrust.RustBinaryLocator(binaryLocatorOptions);
144
+ this.bridge = new plugins.smartrust.RustBridge<TGitManagerCommands>({
145
+ ...binaryLocatorOptions,
122
146
  requestTimeoutMs: 130000,
123
147
  readyTimeoutMs: 10000,
124
148
  });
@@ -135,6 +159,15 @@ export class RustGitManagerBridge extends plugins.EventEmitter {
135
159
  return this.bridge.spawn();
136
160
  }
137
161
 
162
+ /** Resolves the engine binary the bridge spawns, for its one-shot modes. */
163
+ public async findBinary(): Promise<string> {
164
+ const binaryPath = await this.binaryLocator.findBinary();
165
+ if (!binaryPath) {
166
+ throw new Error('Unable to locate the rustgitmanager binary');
167
+ }
168
+ return binaryPath;
169
+ }
170
+
138
171
  public kill(): void {
139
172
  this.bridge.kill();
140
173
  }
@@ -278,7 +311,9 @@ export class RustGitManagerBridge extends plugins.EventEmitter {
278
311
  return this.bridge.sendCommand('listRepositories', {});
279
312
  }
280
313
 
281
- public async listRefs(requestArg: IGitManagerRefRequest): Promise<IGitManagerRef[]> {
314
+ public async listRefs(
315
+ requestArg: IGitManagerRefRequest,
316
+ ): Promise<TGitManagerRefInventoryResult> {
282
317
  return this.bridge.sendCommand('listRefs', requestArg);
283
318
  }
284
319
 
@@ -302,6 +337,20 @@ export class RustGitManagerBridge extends plugins.EventEmitter {
302
337
  return this.bridge.sendCommand('readFile', requestArg);
303
338
  }
304
339
 
340
+ public async isAncestor(requestArg: IGitManagerAncestryRequest): Promise<boolean> {
341
+ const result = await this.bridge.sendCommand('isAncestor', {
342
+ org: requestArg.org,
343
+ repo: requestArg.repo,
344
+ ancestorObjectId: requestArg.ancestorObjectId,
345
+ descendantObjectId: requestArg.descendantObjectId,
346
+ ...(requestArg.timeoutMs === undefined ? {} : { timeoutMs: requestArg.timeoutMs }),
347
+ }).catch(rethrowCodedError);
348
+ if (typeof result !== 'boolean') {
349
+ throw new Error('Rust GitManager returned an invalid ancestry result');
350
+ }
351
+ return result;
352
+ }
353
+
305
354
  public async listCommits(requestArg: IGitManagerListCommitsRequest): Promise<IGitManagerCommitSummary[]> {
306
355
  return this.bridge.sendCommand('listCommits', requestArg);
307
356
  }