@trebired/git-host 2.1.0 → 2.2.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 (152) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +231 -2
  3. package/bin/git-host-actions-runner-darwin-arm64 +0 -0
  4. package/bin/git-host-actions-runner-darwin-x64 +0 -0
  5. package/bin/git-host-actions-runner-linux-arm64-gnu +0 -0
  6. package/bin/git-host-actions-runner-linux-x64-gnu +0 -0
  7. package/dist/api/forge/actions.d.ts +6 -3
  8. package/dist/api/forge/actions.d.ts.map +1 -1
  9. package/dist/api/forge/actions.js +46 -10
  10. package/dist/api/forge/actions.js.map +1 -1
  11. package/dist/api/forge/route.d.ts +10 -0
  12. package/dist/api/forge/route.d.ts.map +1 -1
  13. package/dist/api/forge/route.js +6 -0
  14. package/dist/api/forge/route.js.map +1 -1
  15. package/dist/api/forge/socket.d.ts.map +1 -1
  16. package/dist/api/forge/socket.js +4 -148
  17. package/dist/api/forge/socket.js.map +1 -1
  18. package/dist/api/forge/socket_subscription.d.ts +10 -0
  19. package/dist/api/forge/socket_subscription.d.ts.map +1 -0
  20. package/dist/api/forge/socket_subscription.js +202 -0
  21. package/dist/api/forge/socket_subscription.js.map +1 -0
  22. package/dist/api/handler/action.d.ts.map +1 -1
  23. package/dist/api/handler/action.js +24 -18
  24. package/dist/api/handler/action.js.map +1 -1
  25. package/dist/api/socket/linguist_connection.d.ts +9 -0
  26. package/dist/api/socket/linguist_connection.d.ts.map +1 -0
  27. package/dist/api/socket/linguist_connection.js +167 -0
  28. package/dist/api/socket/linguist_connection.js.map +1 -0
  29. package/dist/api/socket/server.d.ts.map +1 -1
  30. package/dist/api/socket/server.js +4 -119
  31. package/dist/api/socket/server.js.map +1 -1
  32. package/dist/core/actions/artifacts.d.ts +21 -0
  33. package/dist/core/actions/artifacts.d.ts.map +1 -0
  34. package/dist/core/actions/artifacts.js +121 -0
  35. package/dist/core/actions/artifacts.js.map +1 -0
  36. package/dist/core/actions/expressions.d.ts +15 -0
  37. package/dist/core/actions/expressions.d.ts.map +1 -0
  38. package/dist/core/actions/expressions.js +279 -0
  39. package/dist/core/actions/expressions.js.map +1 -0
  40. package/dist/core/actions/go_runner.d.ts +6 -0
  41. package/dist/core/actions/go_runner.d.ts.map +1 -0
  42. package/dist/core/actions/go_runner.js +106 -0
  43. package/dist/core/actions/go_runner.js.map +1 -0
  44. package/dist/core/actions/local_runner.d.ts +28 -0
  45. package/dist/core/actions/local_runner.d.ts.map +1 -0
  46. package/dist/core/actions/local_runner.js +121 -0
  47. package/dist/core/actions/local_runner.js.map +1 -0
  48. package/dist/core/actions/node_runner.d.ts +4 -0
  49. package/dist/core/actions/node_runner.d.ts.map +1 -0
  50. package/dist/core/actions/node_runner.js +175 -0
  51. package/dist/core/actions/node_runner.js.map +1 -0
  52. package/dist/core/actions/normalize.d.ts +7 -0
  53. package/dist/core/actions/normalize.d.ts.map +1 -0
  54. package/dist/core/actions/normalize.js +401 -0
  55. package/dist/core/actions/normalize.js.map +1 -0
  56. package/dist/core/actions/planner.d.ts +13 -0
  57. package/dist/core/actions/planner.d.ts.map +1 -0
  58. package/dist/core/actions/planner.js +106 -0
  59. package/dist/core/actions/planner.js.map +1 -0
  60. package/dist/core/actions/redaction.d.ts +5 -0
  61. package/dist/core/actions/redaction.d.ts.map +1 -0
  62. package/dist/core/actions/redaction.js +28 -0
  63. package/dist/core/actions/redaction.js.map +1 -0
  64. package/dist/core/actions/release_assets.d.ts +31 -0
  65. package/dist/core/actions/release_assets.d.ts.map +1 -0
  66. package/dist/core/actions/release_assets.js +114 -0
  67. package/dist/core/actions/release_assets.js.map +1 -0
  68. package/dist/core/actions/runner/launch.d.ts +5 -0
  69. package/dist/core/actions/runner/launch.d.ts.map +1 -0
  70. package/dist/core/actions/runner/launch.js +100 -0
  71. package/dist/core/actions/runner/launch.js.map +1 -0
  72. package/dist/core/actions/runner/protocol.d.ts +7 -0
  73. package/dist/core/actions/runner/protocol.d.ts.map +1 -0
  74. package/dist/core/actions/runner/protocol.js +66 -0
  75. package/dist/core/actions/runner/protocol.js.map +1 -0
  76. package/dist/core/actions/runner.d.ts +6 -0
  77. package/dist/core/actions/runner.d.ts.map +1 -0
  78. package/dist/core/actions/runner.js +13 -0
  79. package/dist/core/actions/runner.js.map +1 -0
  80. package/dist/core/{actions_runner.d.ts → actions/types.d.ts} +38 -6
  81. package/dist/core/actions/types.d.ts.map +1 -0
  82. package/dist/core/actions/types.js +2 -0
  83. package/dist/core/actions/types.js.map +1 -0
  84. package/dist/core/{actions_workflows.d.ts → actions/workflows.d.ts} +4 -4
  85. package/dist/core/actions/workflows.d.ts.map +1 -0
  86. package/dist/core/{actions_workflows.js → actions/workflows.js} +40 -100
  87. package/dist/core/actions/workflows.js.map +1 -0
  88. package/dist/core/actions/workspace.d.ts +7 -0
  89. package/dist/core/actions/workspace.d.ts.map +1 -0
  90. package/dist/core/actions/workspace.js +47 -0
  91. package/dist/core/actions/workspace.js.map +1 -0
  92. package/dist/core/activity.d.ts.map +1 -1
  93. package/dist/core/activity.js +57 -39
  94. package/dist/core/activity.js.map +1 -1
  95. package/dist/core/archive_cache_filesystem.d.ts.map +1 -1
  96. package/dist/core/archive_cache_filesystem.js +39 -33
  97. package/dist/core/archive_cache_filesystem.js.map +1 -1
  98. package/dist/core/create/git/forge.d.ts.map +1 -1
  99. package/dist/core/create/git/forge.js +12 -2
  100. package/dist/core/create/git/forge.js.map +1 -1
  101. package/dist/core/create_git_host/remote_methods.js.map +1 -1
  102. package/dist/core/forge_actions.d.ts +10 -2
  103. package/dist/core/forge_actions.d.ts.map +1 -1
  104. package/dist/core/forge_actions.js +1005 -160
  105. package/dist/core/forge_actions.js.map +1 -1
  106. package/dist/core/git_forge/storage_memory.d.ts.map +1 -1
  107. package/dist/core/git_forge/storage_memory.js +72 -2
  108. package/dist/core/git_forge/storage_memory.js.map +1 -1
  109. package/dist/core/repository/parsers.d.ts.map +1 -1
  110. package/dist/core/repository/parsers.js +45 -32
  111. package/dist/core/repository/parsers.js.map +1 -1
  112. package/dist/core/run_git/process.d.ts.map +1 -1
  113. package/dist/core/run_git/process.js +19 -18
  114. package/dist/core/run_git/process.js.map +1 -1
  115. package/dist/core/working_tree/read.d.ts.map +1 -1
  116. package/dist/core/working_tree/read.js +26 -32
  117. package/dist/core/working_tree/read.js.map +1 -1
  118. package/dist/index.d.ts +1 -1
  119. package/dist/index.d.ts.map +1 -1
  120. package/dist/types/forge/activity.d.ts +52 -0
  121. package/dist/types/forge/activity.d.ts.map +1 -0
  122. package/dist/types/forge/activity.js +2 -0
  123. package/dist/types/forge/activity.js.map +1 -0
  124. package/dist/types/forge/api.d.ts +116 -0
  125. package/dist/types/forge/api.d.ts.map +1 -0
  126. package/dist/types/forge/api.js +2 -0
  127. package/dist/types/forge/api.js.map +1 -0
  128. package/dist/types/forge/releases.d.ts +98 -0
  129. package/dist/types/forge/releases.d.ts.map +1 -0
  130. package/dist/types/forge/releases.js +2 -0
  131. package/dist/types/forge/releases.js.map +1 -0
  132. package/dist/types/forge/social_forks.d.ts +51 -0
  133. package/dist/types/forge/social_forks.d.ts.map +1 -0
  134. package/dist/types/forge/social_forks.js +2 -0
  135. package/dist/types/forge/social_forks.js.map +1 -0
  136. package/dist/types/forge/workflows.d.ts +332 -0
  137. package/dist/types/forge/workflows.d.ts.map +1 -0
  138. package/dist/types/forge/workflows.js +2 -0
  139. package/dist/types/forge/workflows.js.map +1 -0
  140. package/dist/types/forge.d.ts +5 -475
  141. package/dist/types/forge.d.ts.map +1 -1
  142. package/dist/types/host/archive.d.ts.map +1 -1
  143. package/dist/types/host/options.d.ts.map +1 -1
  144. package/dist/types/host/service.d.ts.map +1 -1
  145. package/dist/types/index.d.ts +1 -1
  146. package/dist/types/index.d.ts.map +1 -1
  147. package/package.json +37 -8
  148. package/dist/core/actions_runner.d.ts.map +0 -1
  149. package/dist/core/actions_runner.js +0 -414
  150. package/dist/core/actions_runner.js.map +0 -1
  151. package/dist/core/actions_workflows.d.ts.map +0 -1
  152. package/dist/core/actions_workflows.js.map +0 -1
@@ -2,8 +2,8 @@ import { Server as SocketIoServer } from "socket.io";
2
2
  import { logPackageInitialized } from "@trebired/logger-adapter";
3
3
  import { resolveLogger } from "../../logging.js";
4
4
  import { text } from "../../utils/text.js";
5
- import { authorizationAllowed, serializeError, statusForError } from "../handler/response.js";
6
5
  import { ACTIONS_RUN_DONE_EVENT, ACTIONS_RUN_ERROR_EVENT, ACTIONS_RUN_EVENT, ACTIONS_RUN_SUBSCRIBE_EVENT, } from "../socket/events.js";
6
+ import { createRunSubscriptionHandler } from "./socket_subscription.js";
7
7
  function normalizeSocketPath(basePathInput, socketPathInput) {
8
8
  const socketPath = text(socketPathInput).replace(/\/+$/g, "");
9
9
  if (socketPath) {
@@ -14,9 +14,6 @@ function normalizeSocketPath(basePathInput, socketPathInput) {
14
14
  return "/socket.io";
15
15
  return `${basePath.startsWith("/") ? basePath : `/${basePath}`}/socket.io`;
16
16
  }
17
- function isTerminalRunEventType(value) {
18
- return value === "run.cancelled" || value === "run.failed" || value === "run.finished";
19
- }
20
17
  function createGitForgeSocketServer(options) {
21
18
  if (!options || typeof options.forge !== "object") {
22
19
  throw new TypeError("createGitForgeSocketServer() requires a forge instance.");
@@ -40,151 +37,10 @@ function createGitForgeSocketServer(options) {
40
37
  ...(options.socketOptions || {}),
41
38
  path,
42
39
  });
40
+ const handleRunSubscription = createRunSubscriptionHandler(options, logger, logGroup, basePath, verbose);
43
41
  io.on("connection", (socket) => {
44
- socket.on(ACTIONS_RUN_SUBSCRIBE_EVENT, async (payload) => {
45
- const repositoryKey = text(payload?.repositoryKey);
46
- const runId = text(payload?.runId);
47
- const pathname = `${basePath.replace(/\/+$/g, "") || ""}/repositories/${encodeURIComponent(repositoryKey)}/actions/runs/${encodeURIComponent(runId)}/socket`;
48
- if (!repositoryKey || !runId) {
49
- socket.emit(ACTIONS_RUN_ERROR_EVENT, {
50
- error: {
51
- code: "forge_resource_not_found",
52
- message: "repositoryKey and runId are required.",
53
- },
54
- status: 404,
55
- });
56
- socket.emit(ACTIONS_RUN_DONE_EVENT, { ok: false });
57
- socket.disconnect();
58
- return;
59
- }
60
- const repositoryId = text(options.resolveRepositoryId
61
- ? await options.resolveRepositoryId(repositoryKey, socket.request)
62
- : repositoryKey);
63
- if (!repositoryId) {
64
- socket.emit(ACTIONS_RUN_ERROR_EVENT, {
65
- error: {
66
- code: "repository_not_found",
67
- message: "Repository not found.",
68
- },
69
- status: 404,
70
- });
71
- socket.emit(ACTIONS_RUN_DONE_EVENT, { ok: false, repository_key: repositoryKey });
72
- socket.disconnect();
73
- return;
74
- }
75
- const actor = options.resolveActor ? await options.resolveActor(socket.request) : null;
76
- const searchParams = new URLSearchParams();
77
- if (payload?.afterSequence != null)
78
- searchParams.set("afterSequence", String(Number(payload.afterSequence) || 0));
79
- const auth = authorizationAllowed(options.authorize
80
- ? await options.authorize({
81
- action: "action_run",
82
- actor,
83
- method: "SOCKET",
84
- operation: "subscribe",
85
- pathname,
86
- remoteAddress: text(socket.handshake.address),
87
- repositoryId,
88
- repositoryKey,
89
- request: socket.request,
90
- resource: "action_run",
91
- runId,
92
- searchParams,
93
- })
94
- : undefined);
95
- if (!auth.allowed) {
96
- logger.warn(logGroup, "forge socket permission denied", {
97
- action: "action_run",
98
- pathname,
99
- repositoryId,
100
- repositoryKey,
101
- runId,
102
- status: auth.status || 403,
103
- });
104
- socket.emit(ACTIONS_RUN_ERROR_EVENT, {
105
- error: {
106
- code: "permission_denied",
107
- message: auth.message || "Permission denied.",
108
- },
109
- status: auth.status || 403,
110
- });
111
- socket.emit(ACTIONS_RUN_DONE_EVENT, {
112
- ok: false,
113
- repository_id: repositoryId,
114
- repository_key: repositoryKey,
115
- run_id: runId,
116
- });
117
- socket.disconnect();
118
- return;
119
- }
120
- let subscription = null;
121
- try {
122
- const events = await options.forge.listWorkflowRunEvents(repositoryId, runId, {
123
- afterSequence: Number(payload?.afterSequence) || 0,
124
- });
125
- for (const event of events) {
126
- socket.emit(ACTIONS_RUN_EVENT, event);
127
- }
128
- const run = await options.forge.readWorkflowRun(repositoryId, runId);
129
- if (run.status === "cancelled" || run.status === "failed" || run.status === "skipped" || run.status === "success") {
130
- socket.emit(ACTIONS_RUN_DONE_EVENT, {
131
- ok: true,
132
- repository_id: repositoryId,
133
- repository_key: repositoryKey,
134
- run_id: runId,
135
- });
136
- socket.disconnect();
137
- return;
138
- }
139
- subscription = options.forge.subscribeWorkflowRun(repositoryId, runId, async (event) => {
140
- socket.emit(ACTIONS_RUN_EVENT, event);
141
- if (isTerminalRunEventType(event.type)) {
142
- socket.emit(ACTIONS_RUN_DONE_EVENT, {
143
- ok: true,
144
- repository_id: repositoryId,
145
- repository_key: repositoryKey,
146
- run_id: runId,
147
- });
148
- subscription?.close();
149
- socket.disconnect();
150
- }
151
- });
152
- socket.on("disconnect", () => {
153
- subscription?.close();
154
- });
155
- if (verbose) {
156
- logger.info(logGroup, "forge action run socket subscribed", {
157
- repositoryId,
158
- repositoryKey,
159
- runId,
160
- socketId: socket.id,
161
- });
162
- }
163
- }
164
- catch (error) {
165
- logger.error(logGroup, "forge action run socket failed", {
166
- error: error instanceof Error ? error.message : String(error),
167
- repositoryId,
168
- repositoryKey,
169
- runId,
170
- socketId: socket.id,
171
- });
172
- socket.emit(ACTIONS_RUN_ERROR_EVENT, {
173
- ...serializeError(error),
174
- ok: false,
175
- repository_id: repositoryId,
176
- repository_key: repositoryKey,
177
- run_id: runId,
178
- status: statusForError(error),
179
- });
180
- socket.emit(ACTIONS_RUN_DONE_EVENT, {
181
- ok: false,
182
- repository_id: repositoryId,
183
- repository_key: repositoryKey,
184
- run_id: runId,
185
- });
186
- socket.disconnect();
187
- }
42
+ socket.on(ACTIONS_RUN_SUBSCRIBE_EVENT, (payload) => {
43
+ void handleRunSubscription(socket, payload);
188
44
  });
189
45
  });
190
46
  return io;
@@ -1 +1 @@
1
- {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../src/api/forge/socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../src/api/forge/socket.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Socket } from "socket.io";
2
+ import type { CreateGitForgeSocketServerOptions } from "../../types.js";
3
+ import type { NormalizedGitHostLogger } from "../../types.js";
4
+ declare function createRunSubscriptionHandler(options: CreateGitForgeSocketServerOptions, logger: NormalizedGitHostLogger, logGroup: string, basePath: string, verbose: boolean): (socket: Socket, payload?: {
5
+ afterSequence?: number;
6
+ repositoryKey?: string;
7
+ runId?: string;
8
+ }) => Promise<void>;
9
+ export { createRunSubscriptionHandler };
10
+ //# sourceMappingURL=socket_subscription.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket_subscription.d.ts","sourceRoot":"","sources":["../../../src/api/forge/socket_subscription.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,eAAe,CAAC;AAGvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AA+R7D,iBAAS,4BAA4B,CACnC,OAAO,EAAE,iCAAiC,EAC1C,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,IAGd,QAAQ,MAAM,EACd,UAAU;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,mBAa/E;AAED,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
@@ -0,0 +1,202 @@
1
+ import { text } from "../../utils/text.js";
2
+ import { authorizationAllowed, serializeError, statusForError } from "../handler/response.js";
3
+ import { ACTIONS_RUN_DONE_EVENT, ACTIONS_RUN_ERROR_EVENT, ACTIONS_RUN_EVENT, } from "../socket/events.js";
4
+ function isTerminalRunEventType(value) {
5
+ return value === "run.cancelled" || value === "run.failed" || value === "run.finished";
6
+ }
7
+ function emitMissingRunIdentity(socket) {
8
+ socket.emit(ACTIONS_RUN_ERROR_EVENT, {
9
+ error: {
10
+ code: "forge_resource_not_found",
11
+ message: "repositoryKey and runId are required.",
12
+ },
13
+ status: 404,
14
+ });
15
+ socket.emit(ACTIONS_RUN_DONE_EVENT, { ok: false });
16
+ socket.disconnect();
17
+ }
18
+ function emitMissingRepository(socket, repositoryKey) {
19
+ socket.emit(ACTIONS_RUN_ERROR_EVENT, {
20
+ error: {
21
+ code: "repository_not_found",
22
+ message: "Repository not found.",
23
+ },
24
+ status: 404,
25
+ });
26
+ socket.emit(ACTIONS_RUN_DONE_EVENT, { ok: false, repository_key: repositoryKey });
27
+ socket.disconnect();
28
+ }
29
+ async function authorizeRunSocket(options, socket, pathname, repositoryId, repositoryKey, runId, afterSequence) {
30
+ const actor = options.resolveActor ? await options.resolveActor(socket.request) : null;
31
+ const searchParams = new URLSearchParams();
32
+ if (afterSequence > 0)
33
+ searchParams.set("afterSequence", String(afterSequence));
34
+ return authorizationAllowed(options.authorize
35
+ ? await options.authorize({
36
+ action: "action_run",
37
+ actor,
38
+ method: "SOCKET",
39
+ operation: "subscribe",
40
+ pathname,
41
+ remoteAddress: text(socket.handshake.address),
42
+ repositoryId,
43
+ repositoryKey,
44
+ request: socket.request,
45
+ resource: "action_run",
46
+ runId,
47
+ searchParams,
48
+ })
49
+ : undefined);
50
+ }
51
+ function emitDeniedRunSocket(socket, repositoryId, repositoryKey, runId, status, message) {
52
+ socket.emit(ACTIONS_RUN_ERROR_EVENT, {
53
+ error: {
54
+ code: "permission_denied",
55
+ message,
56
+ },
57
+ status,
58
+ });
59
+ socket.emit(ACTIONS_RUN_DONE_EVENT, {
60
+ ok: false,
61
+ repository_id: repositoryId,
62
+ repository_key: repositoryKey,
63
+ run_id: runId,
64
+ });
65
+ socket.disconnect();
66
+ }
67
+ function emitCompletedRunSocket(socket, repositoryId, repositoryKey, runId) {
68
+ socket.emit(ACTIONS_RUN_DONE_EVENT, {
69
+ ok: true,
70
+ repository_id: repositoryId,
71
+ repository_key: repositoryKey,
72
+ run_id: runId,
73
+ });
74
+ }
75
+ function runIsTerminal(status) {
76
+ return status === "cancelled" || status === "failed" || status === "skipped" || status === "success";
77
+ }
78
+ function logDeniedRunSocket(logger, logGroup, pathname, repositoryId, repositoryKey, runId, status) {
79
+ logger.warn(logGroup, "forge socket permission denied", {
80
+ action: "action_run",
81
+ pathname,
82
+ repositoryId,
83
+ repositoryKey,
84
+ runId,
85
+ status,
86
+ });
87
+ }
88
+ function logSubscribedRunSocket(logger, logGroup, repositoryId, repositoryKey, runId, socketId) {
89
+ logger.info(logGroup, "forge action run socket subscribed", {
90
+ repositoryId,
91
+ repositoryKey,
92
+ runId,
93
+ socketId,
94
+ });
95
+ }
96
+ function logFailedRunSocket(logger, logGroup, repositoryId, repositoryKey, runId, socketId, error) {
97
+ logger.error(logGroup, "forge action run socket failed", {
98
+ error: error instanceof Error ? error.message : String(error),
99
+ repositoryId,
100
+ repositoryKey,
101
+ runId,
102
+ socketId,
103
+ });
104
+ }
105
+ function emitFailedRunSocket(socket, repositoryId, repositoryKey, runId, error) {
106
+ socket.emit(ACTIONS_RUN_ERROR_EVENT, {
107
+ ...serializeError(error),
108
+ ok: false,
109
+ repository_id: repositoryId,
110
+ repository_key: repositoryKey,
111
+ run_id: runId,
112
+ status: statusForError(error),
113
+ });
114
+ socket.emit(ACTIONS_RUN_DONE_EVENT, {
115
+ ok: false,
116
+ repository_id: repositoryId,
117
+ repository_key: repositoryKey,
118
+ run_id: runId,
119
+ });
120
+ socket.disconnect();
121
+ }
122
+ async function replayRunEvents(options, socket, repositoryId, runId, afterSequence) {
123
+ const events = await options.forge.listWorkflowRunEvents(repositoryId, runId, {
124
+ afterSequence,
125
+ });
126
+ for (const event of events) {
127
+ socket.emit(ACTIONS_RUN_EVENT, event);
128
+ }
129
+ }
130
+ async function subscribeToLiveRun(options, socket, repositoryId, repositoryKey, runId) {
131
+ let subscription = null;
132
+ subscription = options.forge.subscribeWorkflowRun(repositoryId, runId, async (event) => {
133
+ socket.emit(ACTIONS_RUN_EVENT, event);
134
+ if (isTerminalRunEventType(event.type)) {
135
+ emitCompletedRunSocket(socket, repositoryId, repositoryKey, runId);
136
+ subscription?.close();
137
+ socket.disconnect();
138
+ }
139
+ });
140
+ socket.on("disconnect", () => {
141
+ subscription?.close();
142
+ });
143
+ }
144
+ async function resolveRunSubscriptionContext(options, socket, basePath, payload) {
145
+ const repositoryKey = text(payload?.repositoryKey);
146
+ const runId = text(payload?.runId);
147
+ const afterSequence = Number(payload?.afterSequence) || 0;
148
+ if (!repositoryKey || !runId)
149
+ return null;
150
+ const repositoryId = text(options.resolveRepositoryId
151
+ ? await options.resolveRepositoryId(repositoryKey, socket.request)
152
+ : repositoryKey);
153
+ return {
154
+ afterSequence,
155
+ pathname: `${basePath.replace(/\/+$/g, "") || ""}/repositories/${encodeURIComponent(repositoryKey)}/actions/runs/${encodeURIComponent(runId)}/socket`,
156
+ repositoryId,
157
+ repositoryKey,
158
+ runId,
159
+ };
160
+ }
161
+ async function runAuthorizedSubscription(options, socket, context, verbose, logger, logGroup) {
162
+ const auth = await authorizeRunSocket(options, socket, context.pathname, context.repositoryId, context.repositoryKey, context.runId, context.afterSequence);
163
+ if (!auth.allowed) {
164
+ const status = auth.status || 403;
165
+ logDeniedRunSocket(logger, logGroup, context.pathname, context.repositoryId, context.repositoryKey, context.runId, status);
166
+ emitDeniedRunSocket(socket, context.repositoryId, context.repositoryKey, context.runId, status, auth.message || "Permission denied.");
167
+ return;
168
+ }
169
+ try {
170
+ await replayRunEvents(options, socket, context.repositoryId, context.runId, context.afterSequence);
171
+ const run = await options.forge.readWorkflowRun(context.repositoryId, context.runId);
172
+ if (runIsTerminal(run.status)) {
173
+ emitCompletedRunSocket(socket, context.repositoryId, context.repositoryKey, context.runId);
174
+ socket.disconnect();
175
+ return;
176
+ }
177
+ await subscribeToLiveRun(options, socket, context.repositoryId, context.repositoryKey, context.runId);
178
+ if (verbose) {
179
+ logSubscribedRunSocket(logger, logGroup, context.repositoryId, context.repositoryKey, context.runId, socket.id);
180
+ }
181
+ }
182
+ catch (error) {
183
+ logFailedRunSocket(logger, logGroup, context.repositoryId, context.repositoryKey, context.runId, socket.id, error);
184
+ emitFailedRunSocket(socket, context.repositoryId, context.repositoryKey, context.runId, error);
185
+ }
186
+ }
187
+ function createRunSubscriptionHandler(options, logger, logGroup, basePath, verbose) {
188
+ return async function handleRunSubscription(socket, payload) {
189
+ const context = await resolveRunSubscriptionContext(options, socket, basePath, payload);
190
+ if (!context) {
191
+ emitMissingRunIdentity(socket);
192
+ return;
193
+ }
194
+ if (!context.repositoryId) {
195
+ emitMissingRepository(socket, context.repositoryKey);
196
+ return;
197
+ }
198
+ await runAuthorizedSubscription(options, socket, context, verbose, logger, logGroup);
199
+ };
200
+ }
201
+ export { createRunSubscriptionHandler };
202
+ //# sourceMappingURL=socket_subscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket_subscription.js","sourceRoot":"","sources":["../../../src/api/forge/socket_subscription.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/api/handler/action.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,iBAAe,eAAe,CAC5B,OAAO,EAAE,0BAA0B,EACnC,KAAK,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,EAC1C,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,eAAe,uiBAoD9B;AAkDD,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/api/handler/action.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA6B9C,iBAAe,eAAe,CAC5B,OAAO,EAAE,0BAA0B,EACnC,KAAK,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,EAC1C,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,eAAe,uiBAoC9B;AAkDD,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1,9 +1,33 @@
1
1
  import { GitHostError } from "../../errors.js";
2
2
  import { isTruthy, text } from "../../utils/text.js";
3
3
  import { parsePositiveInt } from "./response.js";
4
+ async function runParameterizedReadAction(options, route, repositoryId, searchParams) {
5
+ if (route.action === "blame") {
6
+ return await options.gitHost.readBlame(repositoryId, {
7
+ path: requireSearchPath(searchParams, "blame"),
8
+ ref: text(searchParams.get("ref")),
9
+ });
10
+ }
11
+ if (route.action === "blob") {
12
+ return await options.gitHost.readBlob(repositoryId, {
13
+ path: requireSearchPath(searchParams, "blob"),
14
+ ref: text(searchParams.get("ref")),
15
+ });
16
+ }
17
+ if (route.action === "search") {
18
+ return await options.gitHost.search(repositoryId, buildSearchOptions(searchParams));
19
+ }
20
+ if (route.action === "diff") {
21
+ return await options.gitHost.diff(repositoryId, buildDiffOptions(searchParams));
22
+ }
23
+ return null;
24
+ }
4
25
  async function runGitApiAction(options, route, repositoryId, searchParams) {
5
26
  if (!route)
6
27
  throw new GitHostError("git_command_failed", "API route is required.");
28
+ const handled = await runParameterizedReadAction(options, route, repositoryId, searchParams);
29
+ if (handled !== null)
30
+ return handled;
7
31
  switch (route.action) {
8
32
  case "summary":
9
33
  return await options.gitHost.readSummary(repositoryId, {
@@ -25,30 +49,12 @@ async function runGitApiAction(options, route, repositoryId, searchParams) {
25
49
  return await options.gitHost.readTag(repositoryId, route.tagName);
26
50
  case "tree":
27
51
  return await options.gitHost.listTree(repositoryId, buildTreeOptions(searchParams));
28
- case "blame": {
29
- return await options.gitHost.readBlame(repositoryId, {
30
- path: requireSearchPath(searchParams, "blame"),
31
- ref: text(searchParams.get("ref")),
32
- });
33
- }
34
- case "search": {
35
- return await options.gitHost.search(repositoryId, buildSearchOptions(searchParams));
36
- }
37
52
  case "archive":
38
53
  return await options.gitHost.readArchive(repositoryId, buildArchiveOptions(searchParams));
39
54
  case "linguist":
40
55
  return await options.gitHost.readLinguist(repositoryId, {
41
56
  ref: text(searchParams.get("ref")),
42
57
  });
43
- case "blob": {
44
- return await options.gitHost.readBlob(repositoryId, {
45
- path: requireSearchPath(searchParams, "blob"),
46
- ref: text(searchParams.get("ref")),
47
- });
48
- }
49
- case "diff": {
50
- return await options.gitHost.diff(repositoryId, buildDiffOptions(searchParams));
51
- }
52
58
  default:
53
59
  throw new GitHostError("git_command_failed", "Unsupported Git API action.");
54
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/api/handler/action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/api/handler/action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { Socket } from "socket.io";
2
+ import type { CreateGitApiSocketServerOptions } from "../../types.js";
3
+ import type { NormalizedGitHostLogger } from "../../types.js";
4
+ declare function createLinguistConnectionHandler(options: CreateGitApiSocketServerOptions, logger: NormalizedGitHostLogger, logGroup: string, basePath: string, verbose: boolean): (socket: Socket, payload?: {
5
+ ref?: string;
6
+ repositoryKey?: string;
7
+ }) => Promise<void>;
8
+ export { createLinguistConnectionHandler };
9
+ //# sourceMappingURL=linguist_connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linguist_connection.d.ts","sourceRoot":"","sources":["../../../src/api/socket/linguist_connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,KAAK,EACV,+BAA+B,EAEhC,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AA8N7D,iBAAS,+BAA+B,CACtC,OAAO,EAAE,+BAA+B,EACxC,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,IAGd,QAAQ,MAAM,EACd,UAAU;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,mBAarD;AAED,OAAO,EAAE,+BAA+B,EAAE,CAAC"}