@trebired/git-host 2.2.0 → 3.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 (286) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +103 -11
  3. package/dist/api/forge/actions/filters.d.ts +10 -0
  4. package/dist/api/forge/actions/filters.d.ts.map +1 -0
  5. package/dist/api/forge/actions/filters.js +63 -0
  6. package/dist/api/forge/actions/filters.js.map +1 -0
  7. package/dist/api/forge/actions/run.d.ts +8 -0
  8. package/dist/api/forge/actions/run.d.ts.map +1 -0
  9. package/dist/api/forge/actions/run.js +129 -0
  10. package/dist/api/forge/actions/run.js.map +1 -0
  11. package/dist/api/forge/actions.d.ts +3 -12
  12. package/dist/api/forge/actions.d.ts.map +1 -1
  13. package/dist/api/forge/actions.js +2 -216
  14. package/dist/api/forge/actions.js.map +1 -1
  15. package/dist/api/handler/response.d.ts.map +1 -1
  16. package/dist/api/handler/response.js +55 -1
  17. package/dist/api/handler/response.js.map +1 -1
  18. package/dist/core/actions/environment.d.ts +9 -0
  19. package/dist/core/actions/environment.d.ts.map +1 -0
  20. package/dist/core/actions/environment.js +64 -0
  21. package/dist/core/actions/environment.js.map +1 -0
  22. package/dist/core/actions/expressions/read.d.ts +7 -0
  23. package/dist/core/actions/expressions/read.d.ts.map +1 -0
  24. package/dist/core/actions/expressions/read.js +148 -0
  25. package/dist/core/actions/expressions/read.js.map +1 -0
  26. package/dist/core/actions/expressions/tokenize.d.ts +4 -0
  27. package/dist/core/actions/expressions/tokenize.d.ts.map +1 -0
  28. package/dist/core/actions/expressions/tokenize.js +112 -0
  29. package/dist/core/actions/expressions/tokenize.js.map +1 -0
  30. package/dist/core/actions/expressions/types.d.ts +38 -0
  31. package/dist/core/actions/expressions/types.d.ts.map +1 -0
  32. package/dist/core/actions/expressions/types.js +2 -0
  33. package/dist/core/actions/expressions/types.js.map +1 -0
  34. package/dist/core/actions/expressions.d.ts +2 -9
  35. package/dist/core/actions/expressions.d.ts.map +1 -1
  36. package/dist/core/actions/expressions.js +2 -256
  37. package/dist/core/actions/expressions.js.map +1 -1
  38. package/dist/core/actions/local_runner.d.ts +5 -0
  39. package/dist/core/actions/local_runner.d.ts.map +1 -1
  40. package/dist/core/actions/local_runner.js +70 -18
  41. package/dist/core/actions/local_runner.js.map +1 -1
  42. package/dist/core/actions/node_runner.d.ts.map +1 -1
  43. package/dist/core/actions/node_runner.js +2 -1
  44. package/dist/core/actions/node_runner.js.map +1 -1
  45. package/dist/core/actions/normalize/finalize.d.ts +7 -0
  46. package/dist/core/actions/normalize/finalize.d.ts.map +1 -0
  47. package/dist/core/actions/normalize/finalize.js +70 -0
  48. package/dist/core/actions/normalize/finalize.js.map +1 -0
  49. package/dist/core/actions/normalize/shared.d.ts +19 -0
  50. package/dist/core/actions/normalize/shared.d.ts.map +1 -0
  51. package/dist/core/actions/normalize/shared.js +289 -0
  52. package/dist/core/actions/normalize/shared.js.map +1 -0
  53. package/dist/core/actions/normalize.d.ts +1 -3
  54. package/dist/core/actions/normalize.d.ts.map +1 -1
  55. package/dist/core/actions/normalize.js +2 -354
  56. package/dist/core/actions/normalize.js.map +1 -1
  57. package/dist/core/actions/redaction.d.ts +13 -2
  58. package/dist/core/actions/redaction.d.ts.map +1 -1
  59. package/dist/core/actions/redaction.js +20 -5
  60. package/dist/core/actions/redaction.js.map +1 -1
  61. package/dist/core/actions/release_assets.d.ts.map +1 -1
  62. package/dist/core/actions/release_assets.js.map +1 -1
  63. package/dist/core/actions/runner/launch.d.ts.map +1 -1
  64. package/dist/core/actions/runner/launch.js +12 -8
  65. package/dist/core/actions/runner/launch.js.map +1 -1
  66. package/dist/core/actions/sandbox.d.ts +4 -0
  67. package/dist/core/actions/sandbox.d.ts.map +1 -0
  68. package/dist/core/actions/sandbox.js +46 -0
  69. package/dist/core/actions/sandbox.js.map +1 -0
  70. package/dist/core/archive/commit.d.ts +6 -0
  71. package/dist/core/archive/commit.d.ts.map +1 -0
  72. package/dist/core/archive/commit.js +34 -0
  73. package/dist/core/archive/commit.js.map +1 -0
  74. package/dist/core/archive/context.d.ts +32 -0
  75. package/dist/core/archive/context.d.ts.map +1 -0
  76. package/dist/core/archive/context.js +61 -0
  77. package/dist/core/archive/context.js.map +1 -0
  78. package/dist/core/archive/generation.d.ts +11 -0
  79. package/dist/core/archive/generation.d.ts.map +1 -0
  80. package/dist/core/archive/generation.js +62 -0
  81. package/dist/core/archive/generation.js.map +1 -0
  82. package/dist/core/archive/links.d.ts +5 -0
  83. package/dist/core/archive/links.d.ts.map +1 -0
  84. package/dist/core/archive/links.js +62 -0
  85. package/dist/core/archive/links.js.map +1 -0
  86. package/dist/core/archive/open.d.ts +15 -0
  87. package/dist/core/archive/open.d.ts.map +1 -0
  88. package/dist/core/archive/open.js +159 -0
  89. package/dist/core/archive/open.js.map +1 -0
  90. package/dist/core/archive/read.d.ts +19 -0
  91. package/dist/core/archive/read.d.ts.map +1 -0
  92. package/dist/core/archive/read.js +62 -0
  93. package/dist/core/archive/read.js.map +1 -0
  94. package/dist/core/archive/resolve.d.ts +8 -0
  95. package/dist/core/archive/resolve.d.ts.map +1 -0
  96. package/dist/core/archive/resolve.js +67 -0
  97. package/dist/core/archive/resolve.js.map +1 -0
  98. package/dist/core/archive/shared.d.ts +50 -0
  99. package/dist/core/archive/shared.d.ts.map +1 -0
  100. package/dist/core/archive/shared.js +119 -0
  101. package/dist/core/archive/shared.js.map +1 -0
  102. package/dist/core/archive.d.ts +2 -18
  103. package/dist/core/archive.d.ts.map +1 -1
  104. package/dist/core/archive.js +16 -556
  105. package/dist/core/archive.js.map +1 -1
  106. package/dist/core/create/git/forge/base_methods.d.ts +5 -0
  107. package/dist/core/create/git/forge/base_methods.d.ts.map +1 -0
  108. package/dist/core/create/git/forge/base_methods.js +59 -0
  109. package/dist/core/create/git/forge/base_methods.js.map +1 -0
  110. package/dist/core/create/git/forge/context.d.ts +38 -0
  111. package/dist/core/create/git/forge/context.d.ts.map +1 -0
  112. package/dist/core/create/git/forge/context.js +174 -0
  113. package/dist/core/create/git/forge/context.js.map +1 -0
  114. package/dist/core/create/git/forge/fork_methods.d.ts +5 -0
  115. package/dist/core/create/git/forge/fork_methods.d.ts.map +1 -0
  116. package/dist/core/create/git/forge/fork_methods.js +133 -0
  117. package/dist/core/create/git/forge/fork_methods.js.map +1 -0
  118. package/dist/core/create/git/forge/release_methods.d.ts +5 -0
  119. package/dist/core/create/git/forge/release_methods.d.ts.map +1 -0
  120. package/dist/core/create/git/forge/release_methods.js +116 -0
  121. package/dist/core/create/git/forge/release_methods.js.map +1 -0
  122. package/dist/core/create/git/forge/shared.d.ts +9 -0
  123. package/dist/core/create/git/forge/shared.d.ts.map +1 -0
  124. package/dist/core/create/git/forge/shared.js +80 -0
  125. package/dist/core/create/git/forge/shared.js.map +1 -0
  126. package/dist/core/create/git/forge/social_methods.d.ts +5 -0
  127. package/dist/core/create/git/forge/social_methods.d.ts.map +1 -0
  128. package/dist/core/create/git/forge/social_methods.js +31 -0
  129. package/dist/core/create/git/forge/social_methods.js.map +1 -0
  130. package/dist/core/create/git/forge.d.ts.map +1 -1
  131. package/dist/core/create/git/forge.js +10 -594
  132. package/dist/core/create/git/forge.js.map +1 -1
  133. package/dist/core/create/git/host.d.ts.map +1 -1
  134. package/dist/core/create/git/host.js +139 -114
  135. package/dist/core/create/git/host.js.map +1 -1
  136. package/dist/core/create_git_host/remote_methods.d.ts.map +1 -1
  137. package/dist/core/create_git_host/remote_methods.js +92 -97
  138. package/dist/core/create_git_host/remote_methods.js.map +1 -1
  139. package/dist/core/forge_actions/job/release_asset.d.ts +17 -0
  140. package/dist/core/forge_actions/job/release_asset.d.ts.map +1 -0
  141. package/dist/core/forge_actions/job/release_asset.js +62 -0
  142. package/dist/core/forge_actions/job/release_asset.js.map +1 -0
  143. package/dist/core/forge_actions/job/steps.d.ts +37 -0
  144. package/dist/core/forge_actions/job/steps.d.ts.map +1 -0
  145. package/dist/core/forge_actions/job/steps.js +228 -0
  146. package/dist/core/forge_actions/job/steps.js.map +1 -0
  147. package/dist/core/forge_actions/runtime/api.d.ts +26 -0
  148. package/dist/core/forge_actions/runtime/api.d.ts.map +1 -0
  149. package/dist/core/forge_actions/runtime/api.js +210 -0
  150. package/dist/core/forge_actions/runtime/api.js.map +1 -0
  151. package/dist/core/forge_actions/runtime/engine.d.ts +25 -0
  152. package/dist/core/forge_actions/runtime/engine.d.ts.map +1 -0
  153. package/dist/core/forge_actions/runtime/engine.js +28 -0
  154. package/dist/core/forge_actions/runtime/engine.js.map +1 -0
  155. package/dist/core/forge_actions/runtime/job/execute.d.ts +19 -0
  156. package/dist/core/forge_actions/runtime/job/execute.d.ts.map +1 -0
  157. package/dist/core/forge_actions/runtime/job/execute.js +191 -0
  158. package/dist/core/forge_actions/runtime/job/execute.js.map +1 -0
  159. package/dist/core/forge_actions/runtime/job/step/execute.d.ts +7 -0
  160. package/dist/core/forge_actions/runtime/job/step/execute.d.ts.map +1 -0
  161. package/dist/core/forge_actions/runtime/job/step/execute.js +176 -0
  162. package/dist/core/forge_actions/runtime/job/step/execute.js.map +1 -0
  163. package/dist/core/forge_actions/runtime/queue.d.ts +11 -0
  164. package/dist/core/forge_actions/runtime/queue.d.ts.map +1 -0
  165. package/dist/core/forge_actions/runtime/queue.js +144 -0
  166. package/dist/core/forge_actions/runtime/queue.js.map +1 -0
  167. package/dist/core/forge_actions/runtime/run/execute.d.ts +9 -0
  168. package/dist/core/forge_actions/runtime/run/execute.d.ts.map +1 -0
  169. package/dist/core/forge_actions/runtime/run/execute.js +191 -0
  170. package/dist/core/forge_actions/runtime/run/execute.js.map +1 -0
  171. package/dist/core/forge_actions/runtime/types.d.ts +24 -0
  172. package/dist/core/forge_actions/runtime/types.d.ts.map +1 -0
  173. package/dist/core/forge_actions/runtime/types.js +2 -0
  174. package/dist/core/forge_actions/runtime/types.js.map +1 -0
  175. package/dist/core/forge_actions/runtime_support.d.ts +57 -0
  176. package/dist/core/forge_actions/runtime_support.d.ts.map +1 -0
  177. package/dist/core/forge_actions/runtime_support.js +276 -0
  178. package/dist/core/forge_actions/runtime_support.js.map +1 -0
  179. package/dist/core/forge_actions/shared.d.ts +92 -0
  180. package/dist/core/forge_actions/shared.d.ts.map +1 -0
  181. package/dist/core/forge_actions/shared.js +204 -0
  182. package/dist/core/forge_actions/shared.js.map +1 -0
  183. package/dist/core/forge_actions.d.ts +17 -24
  184. package/dist/core/forge_actions.d.ts.map +1 -1
  185. package/dist/core/forge_actions.js +33 -1459
  186. package/dist/core/forge_actions.js.map +1 -1
  187. package/dist/core/git_forge/storage_memory/actions.d.ts +5 -0
  188. package/dist/core/git_forge/storage_memory/actions.d.ts.map +1 -0
  189. package/dist/core/git_forge/storage_memory/actions.js +155 -0
  190. package/dist/core/git_forge/storage_memory/actions.js.map +1 -0
  191. package/dist/core/git_forge/storage_memory/adapter.d.ts +4 -0
  192. package/dist/core/git_forge/storage_memory/adapter.d.ts.map +1 -0
  193. package/dist/core/git_forge/storage_memory/adapter.js +118 -0
  194. package/dist/core/git_forge/storage_memory/adapter.js.map +1 -0
  195. package/dist/core/git_forge/storage_memory/state.d.ts +27 -0
  196. package/dist/core/git_forge/storage_memory/state.d.ts.map +1 -0
  197. package/dist/core/git_forge/storage_memory/state.js +53 -0
  198. package/dist/core/git_forge/storage_memory/state.js.map +1 -0
  199. package/dist/core/git_forge/storage_memory.d.ts +1 -3
  200. package/dist/core/git_forge/storage_memory.d.ts.map +1 -1
  201. package/dist/core/git_forge/storage_memory.js +1 -352
  202. package/dist/core/git_forge/storage_memory.js.map +1 -1
  203. package/dist/core/inspect/history.d.ts +13 -0
  204. package/dist/core/inspect/history.d.ts.map +1 -0
  205. package/dist/core/inspect/history.js +176 -0
  206. package/dist/core/inspect/history.js.map +1 -0
  207. package/dist/core/inspect/linguist.d.ts +12 -0
  208. package/dist/core/inspect/linguist.d.ts.map +1 -0
  209. package/dist/core/inspect/linguist.js +128 -0
  210. package/dist/core/inspect/linguist.js.map +1 -0
  211. package/dist/core/inspect/search_archive.d.ts +16 -0
  212. package/dist/core/inspect/search_archive.d.ts.map +1 -0
  213. package/dist/core/inspect/search_archive.js +88 -0
  214. package/dist/core/inspect/search_archive.js.map +1 -0
  215. package/dist/core/inspect/shared.d.ts +5 -0
  216. package/dist/core/inspect/shared.d.ts.map +1 -0
  217. package/dist/core/inspect/shared.js +47 -0
  218. package/dist/core/inspect/shared.js.map +1 -0
  219. package/dist/core/inspect/tree_blob.d.ts +16 -0
  220. package/dist/core/inspect/tree_blob.d.ts.map +1 -0
  221. package/dist/core/inspect/tree_blob.js +80 -0
  222. package/dist/core/inspect/tree_blob.js.map +1 -0
  223. package/dist/core/inspect.d.ts +3 -46
  224. package/dist/core/inspect.d.ts.map +1 -1
  225. package/dist/core/inspect.js +3 -546
  226. package/dist/core/inspect.js.map +1 -1
  227. package/dist/core/inspection/analysis.d.ts +4 -0
  228. package/dist/core/inspection/analysis.d.ts.map +1 -0
  229. package/dist/core/inspection/analysis.js +25 -0
  230. package/dist/core/inspection/analysis.js.map +1 -0
  231. package/dist/core/inspection/shared.d.ts +18 -0
  232. package/dist/core/inspection/shared.d.ts.map +1 -0
  233. package/dist/core/inspection/shared.js +112 -0
  234. package/dist/core/inspection/shared.js.map +1 -0
  235. package/dist/core/inspection/snapshots.d.ts +6 -0
  236. package/dist/core/inspection/snapshots.d.ts.map +1 -0
  237. package/dist/core/inspection/snapshots.js +270 -0
  238. package/dist/core/inspection/snapshots.js.map +1 -0
  239. package/dist/core/inspection/target.d.ts +4 -0
  240. package/dist/core/inspection/target.d.ts.map +1 -0
  241. package/dist/core/inspection/target.js +97 -0
  242. package/dist/core/inspection/target.js.map +1 -0
  243. package/dist/core/inspection/tree.d.ts +6 -0
  244. package/dist/core/inspection/tree.d.ts.map +1 -0
  245. package/dist/core/inspection/tree.js +103 -0
  246. package/dist/core/inspection/tree.js.map +1 -0
  247. package/dist/core/inspection.d.ts +6 -10
  248. package/dist/core/inspection.d.ts.map +1 -1
  249. package/dist/core/inspection.js +6 -592
  250. package/dist/core/inspection.js.map +1 -1
  251. package/dist/http/handler.d.ts.map +1 -1
  252. package/dist/http/handler.js +157 -133
  253. package/dist/http/handler.js.map +1 -1
  254. package/dist/index.d.ts +2 -1
  255. package/dist/index.d.ts.map +1 -1
  256. package/dist/index.js +1 -0
  257. package/dist/index.js.map +1 -1
  258. package/dist/ssh/server.d.ts.map +1 -1
  259. package/dist/ssh/server.js +171 -243
  260. package/dist/ssh/server.js.map +1 -1
  261. package/dist/types/forge/workflows/actions.d.ts +70 -0
  262. package/dist/types/forge/workflows/actions.d.ts.map +1 -0
  263. package/dist/types/forge/workflows/actions.js +3 -0
  264. package/dist/types/forge/workflows/actions.js.map +1 -0
  265. package/dist/types/forge/workflows/definition.d.ts +115 -0
  266. package/dist/types/forge/workflows/definition.d.ts.map +1 -0
  267. package/dist/types/forge/workflows/definition.js +2 -0
  268. package/dist/types/forge/workflows/definition.js.map +1 -0
  269. package/dist/types/forge/workflows/runs.d.ts +184 -0
  270. package/dist/types/forge/workflows/runs.d.ts.map +1 -0
  271. package/dist/types/forge/workflows/runs.js +2 -0
  272. package/dist/types/forge/workflows/runs.js.map +1 -0
  273. package/dist/types/forge/workflows.d.ts +3 -331
  274. package/dist/types/forge/workflows.d.ts.map +1 -1
  275. package/dist/types/index.d.ts +1 -1
  276. package/dist/types/index.d.ts.map +1 -1
  277. package/{bin → native}/git-host-actions-runner-darwin-arm64 +0 -0
  278. package/{bin → native}/git-host-actions-runner-darwin-x64 +0 -0
  279. package/{bin → native}/git-host-actions-runner-linux-arm64-gnu +0 -0
  280. package/{bin → native}/git-host-actions-runner-linux-x64-gnu +0 -0
  281. package/package.json +63 -11
  282. package/dist/frontend/js/utils/text.d.ts +0 -2
  283. package/dist/frontend/js/utils/text.d.ts.map +0 -1
  284. package/dist/frontend/js/utils/text.js +0 -4
  285. package/dist/frontend/js/utils/text.js.map +0 -1
  286. /package/{bin → native}/.gitkeep +0 -0
@@ -1,599 +1,15 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- import { randomUUID } from "node:crypto";
4
- import { logPackageInitialized } from "@trebired/logger-adapter";
5
- import { GitHostError } from "../../../errors.js";
6
- import { resolveLogger } from "../../../logging.js";
7
- import { text } from "../../../utils/text.js";
8
- import { fetchRepository } from "../../remote.js";
9
- import { createGitForgeActivityRecorder } from "../../activity.js";
10
- import { createGitForgeActionsRuntime } from "../../forge_actions.js";
11
- import { buildGitEnv, cloneRepository, ensureHostedRepositoryConfig, repositoryExists, runGit } from "../../run_git.js";
12
- function repositoryHandleFromSummary(summary) {
13
- return {
14
- id: summary.repository.id,
15
- path: summary.repository.path,
16
- };
17
- }
18
- function assertActor(actor) {
19
- if (!actor || !text(actor.id)) {
20
- throw new GitHostError("forge_invalid_actor", "A stable actor id is required for forge mutations.");
21
- }
22
- return {
23
- ...actor,
24
- id: text(actor.id),
25
- };
26
- }
27
- function nowIso() {
28
- return new Date().toISOString();
29
- }
30
- async function countDistinct(values) {
31
- return new Set((values || []).map((value) => text(value)).filter(Boolean)).size;
32
- }
33
- async function readForkStatus(forkRepository, upstreamRepository, upstreamBranch) {
34
- const hasFork = await repositoryExists(forkRepository.path);
35
- if (!hasFork) {
36
- throw new GitHostError("repository_not_initialized", `Repository "${forkRepository.id}" is not initialized.`, {
37
- path: forkRepository.path,
38
- repositoryId: forkRepository.id,
39
- });
40
- }
41
- await ensureUpstreamRemote(forkRepository, upstreamRepository.path);
42
- await fetchRepository(forkRepository, { remote: "upstream" });
43
- const branchRes = await runGit(["rev-parse", "--abbrev-ref", "HEAD"], { cwd: forkRepository.path });
44
- if (!branchRes.ok) {
45
- throw new GitHostError("git_command_failed", text(branchRes.stderr, "Failed to resolve the fork branch."), {
46
- repositoryId: forkRepository.id,
47
- });
48
- }
49
- const forkBranch = text(branchRes.stdout);
50
- const compareRes = await runGit(["rev-list", "--left-right", "--count", `${forkBranch}...upstream/${upstreamBranch}`], {
51
- cwd: forkRepository.path,
52
- });
53
- if (!compareRes.ok) {
54
- throw new GitHostError("git_command_failed", text(compareRes.stderr, "Failed to compare fork progress."), {
55
- forkBranch,
56
- repositoryId: forkRepository.id,
57
- upstreamBranch,
58
- });
59
- }
60
- const [aheadText, behindText] = text(compareRes.stdout).split(/\s+/);
61
- return {
62
- ahead: Number(aheadText) || 0,
63
- behind: Number(behindText) || 0,
64
- fork_branch: forkBranch,
65
- upstream_branch: upstreamBranch,
66
- };
67
- }
68
- async function ensureUpstreamRemote(repository, upstreamPath) {
69
- const listRes = await runGit(["remote"], { cwd: repository.path });
70
- if (!listRes.ok) {
71
- throw new GitHostError("git_command_failed", text(listRes.stderr, "Failed to list repository remotes."), {
72
- repositoryId: repository.id,
73
- });
74
- }
75
- const remotes = new Set(text(listRes.stdout).split(/\r?\n/).map((entry) => text(entry)).filter(Boolean));
76
- const command = remotes.has("upstream")
77
- ? ["remote", "set-url", "upstream", upstreamPath]
78
- : ["remote", "add", "upstream", upstreamPath];
79
- const remoteRes = await runGit(command, { cwd: repository.path });
80
- if (!remoteRes.ok) {
81
- throw new GitHostError("git_command_failed", text(remoteRes.stderr, "Failed to configure the upstream remote."), {
82
- repositoryId: repository.id,
83
- });
84
- }
85
- }
1
+ import { createGitForgeContext } from "./forge/context.js";
2
+ import { createBaseMethods } from "./forge/base_methods.js";
3
+ import { createSocialMethods } from "./forge/social_methods.js";
4
+ import { createReleaseMethods } from "./forge/release_methods.js";
5
+ import { createForkMethods } from "./forge/fork_methods.js";
86
6
  function createGitForge(options) {
87
- if (!options || typeof options.gitHost !== "object") {
88
- throw new TypeError("createGitForge() requires a gitHost instance.");
89
- }
90
- if (!options.storage || typeof options.storage !== "object") {
91
- throw new TypeError("createGitForge() requires a storage adapter.");
92
- }
93
- if (typeof options.createForkRepository !== "function") {
94
- throw new TypeError("createGitForge() requires createForkRepository().");
95
- }
96
- const logger = resolveLogger(options.logger, options.loggerAdapter);
97
- const logGroup = "git-host.forge";
98
- const verbose = options.verbose === true;
99
- const activityRecorder = createGitForgeActivityRecorder({
100
- storage: options.storage.activity,
101
- });
102
- const actions = options.storage.actions
103
- ? createGitForgeActionsRuntime({
104
- actions: options.actions,
105
- gitHost: options.gitHost,
106
- releases: options.storage.releases,
107
- storage: options.storage.actions,
108
- })
109
- : null;
110
- if (actions) {
111
- actions.bindActivityStorage(options.storage.activity);
112
- }
113
- logPackageInitialized({
114
- adapter: options.loggerAdapter,
115
- fallback: "console",
116
- group: logGroup,
117
- logger: options.logger,
118
- source: "@trebired/git-host",
119
- });
120
- async function recordActivity(repositoryId, actor, kind, metadata = {}) {
121
- return await activityRecorder.recordActivity({
122
- actor_id: actor.id,
123
- actor_label: text(actor.name, actor.id),
124
- created_at: nowIso(),
125
- kind,
126
- metadata,
127
- repository_id: repositoryId,
128
- source: "forge",
129
- });
130
- }
131
- async function readSocialState(repositoryId, actorId) {
132
- const [stars, watchers, viewerHasStarred, viewerIsWatching] = await Promise.all([
133
- options.storage.social.listStars ? options.storage.social.listStars(repositoryId) : Promise.resolve([]),
134
- options.storage.social.listWatchers ? options.storage.social.listWatchers(repositoryId) : Promise.resolve([]),
135
- actorId ? options.storage.social.viewerHasStarred(repositoryId, actorId) : Promise.resolve(false),
136
- actorId ? options.storage.social.viewerIsWatching(repositoryId, actorId) : Promise.resolve(false),
137
- ]);
138
- return {
139
- repository_id: repositoryId,
140
- star_count: await countDistinct(stars),
141
- viewer_has_starred: viewerHasStarred,
142
- viewer_is_watching: viewerIsWatching,
143
- watcher_count: await countDistinct(watchers),
144
- };
145
- }
146
- async function readOverview(repositoryId, actorId) {
147
- const [repository, releases, forks, activity, social] = await Promise.all([
148
- options.gitHost.readSummary(repositoryId),
149
- options.storage.releases.listReleases(repositoryId),
150
- options.storage.forks.listForks(repositoryId),
151
- activityRecorder.listActivity(repositoryId),
152
- readSocialState(repositoryId, actorId),
153
- ]);
154
- const sortedReleases = Array.from(releases).sort((left, right) => text(right.published_at || right.created_at).localeCompare(text(left.published_at || left.created_at)));
155
- return {
156
- activity_count: activity.length,
157
- fork_count: forks.length,
158
- latest_release: sortedReleases[0] || null,
159
- release_count: sortedReleases.length,
160
- repository,
161
- social,
162
- };
163
- }
164
- async function readRequiredRelease(repositoryId, releaseId) {
165
- const release = await options.storage.releases.readRelease(repositoryId, releaseId);
166
- if (!release) {
167
- throw new GitHostError("forge_resource_not_found", `Release "${releaseId}" was not found.`, {
168
- releaseId,
169
- repositoryId,
170
- });
171
- }
172
- return release;
173
- }
174
- function readRequiredReleaseAsset(release, assetId) {
175
- const asset = release.assets.find((entry) => text(entry.id) === text(assetId));
176
- if (!asset) {
177
- throw new GitHostError("forge_resource_not_found", `Release asset "${assetId}" was not found in release "${release.id}".`, {
178
- assetId,
179
- releaseId: release.id,
180
- repositoryId: release.repository_id,
181
- });
182
- }
183
- return asset;
184
- }
185
- async function resolveReleaseAssetLinkInternal(repositoryId, release, asset, repositoryKey) {
186
- const href = text(options.releaseAssetStore?.buildAssetDownloadUrl?.({
187
- asset,
188
- release,
189
- repositoryId,
190
- repositoryKey,
191
- }), text(asset.download_url, `/repositories/${encodeURIComponent(text(repositoryKey, repositoryId))}/releases/${encodeURIComponent(release.id)}/assets/${encodeURIComponent(asset.id)}`));
192
- return {
193
- asset_id: asset.id,
194
- content_type: asset.content_type,
195
- file_name: text(asset.name, `asset-${asset.id}`),
196
- href,
197
- size: asset.size == null ? null : Number(asset.size) || 0,
198
- };
199
- }
200
- async function readRequiredFork(forkRepositoryId) {
201
- const fork = await options.storage.forks.readFork(forkRepositoryId);
202
- if (!fork) {
203
- throw new GitHostError("forge_resource_not_found", `Fork "${forkRepositoryId}" was not found.`, {
204
- forkRepositoryId,
205
- });
206
- }
207
- return fork;
208
- }
7
+ const context = createGitForgeContext(options);
209
8
  return {
210
- async readOverview(repositoryId, input = {}) {
211
- return await readOverview(repositoryId, text(input.actorId));
212
- },
213
- async readSocialState(repositoryId, input = {}) {
214
- return await readSocialState(repositoryId, text(input.actorId));
215
- },
216
- async listWorkflows(repositoryId, filters = {}) {
217
- if (!actions)
218
- return [];
219
- return await actions.listWorkflows(repositoryId, filters);
220
- },
221
- async readWorkflow(repositoryId, workflowId) {
222
- if (!actions) {
223
- throw new GitHostError("forge_actions_not_configured", "Actions storage is required to read workflows.");
224
- }
225
- return await actions.readWorkflow(repositoryId, workflowId);
226
- },
227
- async runWorkflow(repositoryId, workflowId, input) {
228
- if (!actions) {
229
- throw new GitHostError("forge_actions_not_configured", "Actions storage is required to run workflows.");
230
- }
231
- return await actions.runWorkflow(repositoryId, workflowId, {
232
- ...input,
233
- actor: assertActor(input.actor),
234
- });
235
- },
236
- async cancelWorkflowRun(repositoryId, runId, input) {
237
- if (!actions) {
238
- throw new GitHostError("forge_actions_not_configured", "Actions storage is required to cancel workflow runs.");
239
- }
240
- return await actions.cancelWorkflowRun(repositoryId, runId, assertActor(input.actor));
241
- },
242
- async listWorkflowRuns(repositoryId, filters = {}) {
243
- if (!actions)
244
- return [];
245
- return await actions.listWorkflowRuns(repositoryId, filters);
246
- },
247
- async readWorkflowRun(repositoryId, runId) {
248
- if (!actions) {
249
- throw new GitHostError("forge_actions_not_configured", "Actions storage is required to read workflow runs.");
250
- }
251
- return await actions.readWorkflowRun(repositoryId, runId);
252
- },
253
- async listWorkflowRunSteps(repositoryId, runId, filters = {}) {
254
- if (!actions)
255
- return [];
256
- return await actions.listWorkflowRunSteps(repositoryId, runId, filters);
257
- },
258
- async listWorkflowRunJobs(repositoryId, runId, filters = {}) {
259
- if (!actions || !actions.listWorkflowRunJobs)
260
- return [];
261
- return await actions.listWorkflowRunJobs(repositoryId, runId, filters);
262
- },
263
- async listWorkflowRunArtifacts(repositoryId, runId, filters = {}) {
264
- if (!actions || !actions.listWorkflowRunArtifacts)
265
- return [];
266
- return await actions.listWorkflowRunArtifacts(repositoryId, runId, filters);
267
- },
268
- async listWorkflowRunEvents(repositoryId, runId, filters = {}) {
269
- if (!actions)
270
- return [];
271
- return await actions.listWorkflowRunEvents(repositoryId, runId, filters);
272
- },
273
- subscribeWorkflowRun(repositoryId, runId, listener) {
274
- if (!actions) {
275
- return {
276
- close() { },
277
- };
278
- }
279
- return actions.subscribeWorkflowRun(repositoryId, runId, listener);
280
- },
281
- async starRepository(repositoryId, input) {
282
- const actor = assertActor(input.actor);
283
- await options.storage.social.setStar(repositoryId, actor.id, true);
284
- await recordActivity(repositoryId, actor, "star", {});
285
- return await readSocialState(repositoryId, actor.id);
286
- },
287
- async unstarRepository(repositoryId, input) {
288
- const actor = assertActor(input.actor);
289
- await options.storage.social.setStar(repositoryId, actor.id, false);
290
- await recordActivity(repositoryId, actor, "unstar", {});
291
- return await readSocialState(repositoryId, actor.id);
292
- },
293
- async watchRepository(repositoryId, input) {
294
- const actor = assertActor(input.actor);
295
- await options.storage.social.setWatching(repositoryId, actor.id, true);
296
- await recordActivity(repositoryId, actor, "watch", {});
297
- return await readSocialState(repositoryId, actor.id);
298
- },
299
- async unwatchRepository(repositoryId, input) {
300
- const actor = assertActor(input.actor);
301
- await options.storage.social.setWatching(repositoryId, actor.id, false);
302
- await recordActivity(repositoryId, actor, "unwatch", {});
303
- return await readSocialState(repositoryId, actor.id);
304
- },
305
- async listReleases(repositoryId) {
306
- const releases = await options.storage.releases.listReleases(repositoryId);
307
- return Array.from(releases).sort((left, right) => text(right.published_at || right.created_at).localeCompare(text(left.published_at || left.created_at)));
308
- },
309
- async readRelease(repositoryId, releaseId) {
310
- return await readRequiredRelease(repositoryId, releaseId);
311
- },
312
- async resolveReleaseAssetLink(repositoryId, releaseId, assetId, input = {}) {
313
- const release = await readRequiredRelease(repositoryId, releaseId);
314
- const asset = readRequiredReleaseAsset(release, assetId);
315
- return await resolveReleaseAssetLinkInternal(repositoryId, release, asset, text(input.repositoryKey));
316
- },
317
- async openReleaseAsset(repositoryId, releaseId, assetId, input = {}) {
318
- const release = await readRequiredRelease(repositoryId, releaseId);
319
- const asset = readRequiredReleaseAsset(release, assetId);
320
- const repositoryKey = text(input.repositoryKey);
321
- const download = options.releaseAssetStore?.openAssetDownload
322
- ? await options.releaseAssetStore.openAssetDownload({
323
- asset,
324
- release,
325
- repositoryId,
326
- repositoryKey,
327
- })
328
- : null;
329
- if (download) {
330
- return {
331
- ...download,
332
- asset: {
333
- ...asset,
334
- download_url: text(download.redirect_url, asset.download_url),
335
- },
336
- content_type: text(download.content_type, text(asset.content_type, "application/octet-stream")),
337
- file_name: text(download.file_name, text(asset.name, `asset-${asset.id}`)),
338
- size: download.size == null ? (asset.size == null ? null : Number(asset.size) || 0) : download.size,
339
- };
340
- }
341
- const link = await resolveReleaseAssetLinkInternal(repositoryId, release, asset, repositoryKey);
342
- return {
343
- asset,
344
- content_type: text(asset.content_type, "application/octet-stream"),
345
- file_name: link.file_name,
346
- redirect_url: link.href,
347
- size: link.size,
348
- };
349
- },
350
- async createRelease(repositoryId, input) {
351
- const actor = assertActor(input.actor);
352
- const existingTagName = text(input.existingTagName);
353
- const createTag = input.createTag;
354
- if (!existingTagName && !createTag) {
355
- throw new GitHostError("forge_invalid_input", "A release requires either existingTagName or createTag.", {
356
- repositoryId,
357
- });
358
- }
359
- let tagName = existingTagName;
360
- let targetRef = "";
361
- if (createTag) {
362
- tagName = text(createTag.name);
363
- targetRef = text(createTag.targetRef, "HEAD");
364
- await options.gitHost.createTag(repositoryId, {
365
- actor: {
366
- email: actor.email,
367
- id: actor.id,
368
- name: actor.name,
369
- },
370
- message: text(createTag.annotatedMessage),
371
- name: tagName,
372
- ref: targetRef,
373
- });
374
- }
375
- const tagDetail = await options.gitHost.readTag(repositoryId, tagName);
376
- const createdAt = nowIso();
377
- const release = {
378
- assets: options.releaseAssetStore?.normalizeAssets
379
- ? await options.releaseAssetStore.normalizeAssets(repositoryId, Array.isArray(input.assets) ? input.assets : [])
380
- : Array.isArray(input.assets) ? input.assets : [],
381
- author_id: actor.id,
382
- created_at: createdAt,
383
- draft: input.draft === true,
384
- id: randomUUID(),
385
- notes: text(input.notes),
386
- prerelease: input.prerelease === true,
387
- published_at: input.draft === true ? null : (input.publishedAt === null ? null : text(input.publishedAt, createdAt)),
388
- repository_id: repositoryId,
389
- tag_name: tagName,
390
- target_ref: targetRef || text(tagDetail.target_hash),
391
- title: text(input.title, tagName),
392
- updated_at: createdAt,
393
- };
394
- const created = await options.storage.releases.createRelease(release);
395
- await recordActivity(repositoryId, actor, "release.create", {
396
- release_id: created.id,
397
- tag_name: created.tag_name,
398
- });
399
- return created;
400
- },
401
- async updateRelease(repositoryId, releaseId, input) {
402
- const actor = assertActor(input.actor);
403
- await readRequiredRelease(repositoryId, releaseId);
404
- const assets = options.releaseAssetStore?.normalizeAssets
405
- ? await options.releaseAssetStore.normalizeAssets(repositoryId, Array.isArray(input.assets) ? input.assets : [])
406
- : input.assets;
407
- const updated = await options.storage.releases.updateRelease(repositoryId, releaseId, {
408
- ...(Array.isArray(assets) ? { assets } : {}),
409
- ...(input.draft != null ? { draft: input.draft === true } : {}),
410
- ...(input.notes != null ? { notes: text(input.notes) } : {}),
411
- ...(input.prerelease != null ? { prerelease: input.prerelease === true } : {}),
412
- ...(input.publishedAt !== undefined ? { published_at: input.publishedAt === null ? null : text(input.publishedAt) } : {}),
413
- ...(input.title != null ? { title: text(input.title) } : {}),
414
- updated_at: nowIso(),
415
- });
416
- if (!updated) {
417
- throw new GitHostError("forge_resource_not_found", `Release "${releaseId}" was not found.`, {
418
- releaseId,
419
- repositoryId,
420
- });
421
- }
422
- await recordActivity(repositoryId, actor, "release.update", {
423
- release_id: releaseId,
424
- });
425
- return updated;
426
- },
427
- async deleteRelease(repositoryId, releaseId, input) {
428
- const actor = assertActor(input.actor);
429
- const existing = await readRequiredRelease(repositoryId, releaseId);
430
- const deleted = await options.storage.releases.deleteRelease(repositoryId, releaseId);
431
- if (!deleted) {
432
- throw new GitHostError("forge_resource_not_found", `Release "${releaseId}" was not found.`, {
433
- releaseId,
434
- repositoryId,
435
- });
436
- }
437
- if (input.deleteTag === true) {
438
- await options.gitHost.deleteTag(repositoryId, {
439
- name: existing.tag_name,
440
- });
441
- }
442
- await recordActivity(repositoryId, actor, "release.delete", {
443
- release_id: releaseId,
444
- tag_name: existing.tag_name,
445
- });
446
- },
447
- async listActivity(repositoryId, filters = {}) {
448
- return await activityRecorder.listActivity(repositoryId, filters);
449
- },
450
- async listForks(repositoryId) {
451
- const upstreamSummary = await readOverview(repositoryId);
452
- const upstreamRepository = repositoryHandleFromSummary(upstreamSummary.repository);
453
- const upstreamBranch = text(upstreamSummary.repository.repository.default_branch, "main");
454
- const forks = await options.storage.forks.listForks(repositoryId);
455
- return await Promise.all(forks.map(async (fork) => {
456
- const forkSummary = await readOverview(fork.fork_repository_id);
457
- const forkRepository = repositoryHandleFromSummary(forkSummary.repository);
458
- return {
459
- created_at: fork.created_at,
460
- created_by: fork.created_by,
461
- fork_repository_id: fork.fork_repository_id,
462
- fork_status: await readForkStatus(forkRepository, upstreamRepository, upstreamBranch),
463
- upstream_repository_id: fork.upstream_repository_id,
464
- };
465
- }));
466
- },
467
- async createFork(repositoryId, input) {
468
- const actor = assertActor(input.actor);
469
- const upstreamSummary = await readOverview(repositoryId);
470
- const upstreamRepository = repositoryHandleFromSummary(upstreamSummary.repository);
471
- const upstreamBranch = text(upstreamSummary.repository.repository.default_branch, "main");
472
- const forkRepository = await options.createForkRepository({
473
- actor,
474
- upstreamRepository,
475
- upstreamRepositoryId: repositoryId,
476
- });
477
- if (!forkRepository || !text(forkRepository.id) || !text(forkRepository.path)) {
478
- throw new GitHostError("forge_invalid_input", "createForkRepository() must return a repository id and absolute path.", {
479
- repositoryId,
480
- });
481
- }
482
- fs.mkdirSync(path.dirname(forkRepository.path), { recursive: true });
483
- const cloneRes = await cloneRepository({
484
- cloneUrl: upstreamRepository.path,
485
- workspaceRoot: forkRepository.path,
486
- });
487
- if (!cloneRes.ok) {
488
- throw new GitHostError("git_command_failed", text(cloneRes.stderr, "Failed to clone the fork repository."), {
489
- forkRepositoryId: forkRepository.id,
490
- repositoryId,
491
- });
492
- }
493
- const hostedRes = await ensureHostedRepositoryConfig(forkRepository.path);
494
- if (!hostedRes.ok) {
495
- throw new GitHostError("git_command_failed", text(hostedRes.stderr, "Failed to configure the fork repository."), {
496
- forkRepositoryId: forkRepository.id,
497
- repositoryId,
498
- });
499
- }
500
- await ensureUpstreamRemote(forkRepository, upstreamRepository.path);
501
- await fetchRepository(forkRepository, { remote: "upstream" });
502
- const createdAt = nowIso();
503
- await options.storage.forks.createFork({
504
- created_at: createdAt,
505
- created_by: actor.id,
506
- fork_repository_id: forkRepository.id,
507
- upstream_repository_id: repositoryId,
508
- });
509
- await recordActivity(repositoryId, actor, "fork.create", {
510
- fork_repository_id: forkRepository.id,
511
- });
512
- if (verbose) {
513
- logger.info(logGroup, "created forge fork", {
514
- forkRepositoryId: forkRepository.id,
515
- repositoryId,
516
- });
517
- }
518
- return {
519
- created_at: createdAt,
520
- created_by: actor.id,
521
- fork_repository_id: forkRepository.id,
522
- fork_status: await readForkStatus(forkRepository, upstreamRepository, upstreamBranch),
523
- upstream_repository_id: repositoryId,
524
- };
525
- },
526
- async syncFork(forkRepositoryId, input) {
527
- const actor = assertActor(input.actor);
528
- const fork = await readRequiredFork(forkRepositoryId);
529
- const upstreamSummary = await readOverview(fork.upstream_repository_id);
530
- const forkSummary = await readOverview(fork.fork_repository_id);
531
- const upstreamRepository = repositoryHandleFromSummary(upstreamSummary.repository);
532
- const forkRepository = repositoryHandleFromSummary(forkSummary.repository);
533
- const upstreamBranch = text(upstreamSummary.repository.repository.default_branch, "main");
534
- const forkBranch = text(forkSummary.repository.repository.current_branch || forkSummary.repository.repository.default_branch, "main");
535
- const strategy = input.strategy || "ff-only";
536
- await ensureUpstreamRemote(forkRepository, upstreamRepository.path);
537
- await fetchRepository(forkRepository, { remote: "upstream" });
538
- if (forkBranch !== forkSummary.repository.repository.current_branch) {
539
- await options.gitHost.checkoutBranch(forkRepository.id, { name: forkBranch });
540
- }
541
- const upstreamRef = `upstream/${upstreamBranch}`;
542
- if (strategy === "ff-only") {
543
- const ffCheck = await runGit(["merge-base", "--is-ancestor", forkBranch, upstreamRef], { cwd: forkRepository.path });
544
- if (!ffCheck.ok) {
545
- throw new GitHostError("forge_sync_conflict", "The fork cannot be fast-forwarded from upstream.", {
546
- forkRepositoryId,
547
- upstreamBranch,
548
- });
549
- }
550
- const mergeRes = await runGit(["merge", "--ff-only", upstreamRef], {
551
- cwd: forkRepository.path,
552
- env: buildGitEnv({
553
- actor: {
554
- email: actor.email,
555
- id: actor.id,
556
- name: actor.name,
557
- },
558
- }),
559
- });
560
- if (!mergeRes.ok) {
561
- throw new GitHostError("forge_sync_conflict", text(mergeRes.stderr, "The fork cannot be fast-forwarded from upstream."), {
562
- forkRepositoryId,
563
- upstreamBranch,
564
- });
565
- }
566
- }
567
- else {
568
- const mergeRes = await runGit(["merge", "--no-edit", upstreamRef], {
569
- cwd: forkRepository.path,
570
- env: buildGitEnv({
571
- actor: {
572
- email: actor.email,
573
- id: actor.id,
574
- name: actor.name,
575
- },
576
- }),
577
- });
578
- if (!mergeRes.ok) {
579
- throw new GitHostError("forge_sync_conflict", text(mergeRes.stderr, "Failed to merge upstream changes into the fork."), {
580
- forkRepositoryId,
581
- upstreamBranch,
582
- });
583
- }
584
- }
585
- await recordActivity(fork.upstream_repository_id, actor, "fork.sync", {
586
- fork_repository_id: forkRepositoryId,
587
- strategy,
588
- });
589
- return {
590
- created_at: fork.created_at,
591
- created_by: fork.created_by,
592
- fork_repository_id: fork.fork_repository_id,
593
- fork_status: await readForkStatus(forkRepository, upstreamRepository, upstreamBranch),
594
- upstream_repository_id: fork.upstream_repository_id,
595
- };
596
- },
9
+ ...createBaseMethods(context),
10
+ ...createSocialMethods(context),
11
+ ...createReleaseMethods(context),
12
+ ...createForkMethods(context),
597
13
  };
598
14
  }
599
15
  export { createGitForge };
@@ -1 +1 @@
1
- {"version":3,"file":"forge.js","sourceRoot":"","sources":["../../../../src/core/create/git/forge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forge.js","sourceRoot":"","sources":["../../../../src/core/create/git/forge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,SAAS,cAAc,CAAC,OAA8B;IACpD,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/C,OAAO;QACL,GAAG,iBAAiB,CAAC,OAAO,CAAC;QAC7B,GAAG,mBAAmB,CAAC,OAAO,CAAC;QAC/B,GAAG,oBAAoB,CAAC,OAAO,CAAC;QAChC,GAAG,iBAAiB,CAAC,OAAO,CAAC;KAC9B,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../../src/core/create/git/host.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,oBAAoB,EAEpB,OAAO,EAIR,MAAM,eAAe,CAAC;AAuBvB,iBAAS,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAoL7D;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../../src/core/create/git/host.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,oBAAoB,EAEpB,OAAO,EAIR,MAAM,eAAe,CAAC;AAsNvB,iBAAS,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAwB7D;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}