@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
package/CHANGELOG.md CHANGED
@@ -4,6 +4,26 @@ All notable changes to `@trebired/git-host` will be documented here.
4
4
 
5
5
  This project follows semantic versioning once published.
6
6
 
7
+ ## 3.1.0
8
+
9
+ - Added `@trebired/result` as the touched backend API response outcome surface so internal host communication uses the shared Trebired result contract instead of package-local result wrappers.
10
+ - Enforced the current `@trebired/code-discipline` policy on the touched integration and packaging paths while keeping the public Git host runtime and APIs stable.
11
+ - Moved packaged Actions runner binaries into a package-owned `native/` sibling alongside `dist/`, matching the published binary layout pattern used by `@trebired/logger` and keeping runtime lookup aligned with the packed folder structure.
12
+ - Removed the unused browser and React integration layer so `@trebired/git-host` stays a backend/runtime package instead of carrying an internal frontend surface.
13
+
14
+ ## 3.0.0
15
+
16
+ - **Security (breaking):** the Actions execution engine no longer spreads the embedding process's full `process.env` into workflow steps. Previously every step inherited the entire host environment, so any caller who could trigger a run could read (and echo) host process secrets, and those inherited values were not redacted from logs. Steps now run with a minimal, clean base env.
17
+ - Added a documented default passthrough allowlist needed for tooling to work — `PATH`, `HOME`, `LANG`, `LC_ALL`, `TZ`, `TERM` (plus the platform equivalents on Windows) — with everything else opt-in.
18
+ - Added `actions.environment` configuration: `passthrough` (additive allowlist of `process.env` keys), `baseEnv` (explicit key/value pairs), `sensitiveKeys` (key names whose resolved values are always masked), and `inheritProcessEnv` (explicit, warning-logged opt-in that reproduces the pre-3.0 full-inheritance behavior exactly).
19
+ - Extended output redaction so all values from the secrets map plus any `environment.sensitiveKeys` are masked in `step.output`/`job.output` event chunks, step output previews, and step summaries derived from step/action errors.
20
+ - Added off-by-default local-runner isolation hooks under `actions.localRunner`: `uid`/`gid` privilege drop (passed to `spawn` where supported), `execTimeoutMs` per-step wall-clock kill (SIGTERM → SIGKILL), and a `beforeSpawn(childSpec)` hook so callers can wrap the step shell in their own sandbox (bwrap/nsjail/container) without forking. Documented the local-runner trust boundary: it executes arbitrary code as the host user, so only trusted workflows should run on it.
21
+ - Added `createBubblewrapSandbox()`, a batteries-included `beforeSpawn` sandbox for Linux that wraps each step in `bwrap` with an isolated filesystem view (read-only system paths plus a writable job workspace), no network by default, and fresh pid/ipc/uts/user namespaces — configurable via `allowNetwork`, `roBind`, `bind`, `systemPaths`, and `bwrapPath`.
22
+ - Added a startup warning when the local runner would execute steps as root with no `localRunner.uid` drop and no `beforeSpawn` sandbox (workflow code would run as root on the host).
23
+ - Corrected the published package `license` metadata to `AGPL-3.0-only` to match the bundled `LICENSE`.
24
+
25
+ **Migration:** if a workflow relied on an inherited host env variable, add it to `actions.environment.passthrough` (or `actions.environment.baseEnv`), or set `actions.environment.inheritProcessEnv: true` to restore the previous behavior.
26
+
7
27
  ## 2.2.0
8
28
 
9
29
  - Added a GitHub-Actions-inspired workflow schema (`gha-subset-v1`) alongside the existing flat shell-step format: `on.workflow_dispatch.inputs`, `on.push.branches`/`tags`, top-level `env`/`permissions`/`concurrency`, and multiple `jobs` with `runs-on`, `needs`, `if`, `env`, and `strategy.matrix`, normalized and validated against an explicit supported subset. Old flat workflow files keep running unchanged.
package/README.md CHANGED
@@ -209,8 +209,8 @@ Supported subset:
209
209
  download time — the same asset shape and download path the release API already
210
210
  serves. GitHub Actions has no built-in equivalent for this (you'd reach for a
211
211
  marketplace action like `softprops/action-gh-release`); this is an intentional
212
- Operlorn-only addition, not an attempt to mirror GitHub syntax for something GitHub
213
- doesn't ship itself.
212
+ first-party addition to git-host's Actions, not an attempt to mirror GitHub syntax
213
+ for something GitHub doesn't ship itself.
214
214
 
215
215
  ```yaml
216
216
  - uses: actions/publish-release-asset@v1
@@ -364,20 +364,116 @@ const forge = createGitForge({
364
364
  });
365
365
  ```
366
366
 
367
- Runtime env merge order:
367
+ Runtime env merge order (later layers win):
368
368
 
369
- - base process env
369
+ - clean base env (see below — **not** the full host `process.env` by default)
370
370
  - static `actions.env`
371
371
  - host-provided execution env
372
372
  - workflow `env`
373
373
  - job `env`
374
374
  - step `env`
375
+ - host-provided secrets
375
376
 
376
- Secrets are available to expressions and the runtime env, but their values are redacted from:
377
+ #### Step environment isolation
378
+
379
+ By default the runtime does **not** spread the embedding process's `process.env`
380
+ into workflow steps, so host process secrets can never leak into (or be echoed
381
+ by) a workflow. Instead it builds a minimal base env from a small passthrough
382
+ allowlist needed for tooling to work: `PATH`, `HOME`, `LANG`, `LC_ALL`, `TZ`,
383
+ `TERM` (plus the platform equivalents on Windows). Everything else is opt-in via
384
+ `actions.environment`:
385
+
386
+ ```ts
387
+ const forge = createGitForge({
388
+ actions: {
389
+ environment: {
390
+ // Additive allowlist of extra process.env keys to expose to steps.
391
+ passthrough: ["NODE_EXTRA_CA_CERTS"],
392
+ // Explicit key/value pairs injected into the clean base env.
393
+ baseEnv: { CI: "true" },
394
+ // Key names whose resolved values are always masked from logs/output.
395
+ sensitiveKeys: ["DEPLOY_KEY"],
396
+ // Escape hatch: restore the pre-2.x behavior of inheriting the ENTIRE host
397
+ // process env. Explicit opt-in, logged with a warning. Not redacted.
398
+ inheritProcessEnv: false,
399
+ },
400
+ },
401
+ gitHost,
402
+ storage,
403
+ });
404
+ ```
405
+
406
+ > **Migration note (breaking):** before this release every step inherited the
407
+ > full host `process.env`. If a workflow relied on an inherited variable, add it
408
+ > to `environment.passthrough` (or `environment.baseEnv`), or set
409
+ > `environment.inheritProcessEnv: true` to reproduce the old behavior exactly.
410
+
411
+ Secrets are available to expressions and the runtime env, but their values —
412
+ along with the resolved values of any `environment.sensitiveKeys` — are redacted
413
+ from:
377
414
 
378
415
  - live socket output
379
- - persisted event payloads
416
+ - persisted event payloads (`step.output`/`job.output` chunks)
380
417
  - step output previews
418
+ - step summaries derived from step/action errors
419
+
420
+ #### Local runner trust boundary and isolation hooks
421
+
422
+ The local runner executes each step as `spawn(shell, ["-lc", command])` **as the
423
+ host user, unsandboxed by default**, with full filesystem reach; only the per-job
424
+ git workspace is scratch. **Only run untrusted workflows behind a sandbox.** If
425
+ the runtime detects it is running as root with no `localRunner.uid` drop and no
426
+ `beforeSpawn` sandbox, it logs a warning at startup.
427
+
428
+ For a batteries-included sandbox on Linux, pass `createBubblewrapSandbox()` as the
429
+ `beforeSpawn` hook. It wraps each step in [bubblewrap](https://github.com/containers/bubblewrap)
430
+ (`bwrap` must be on `PATH`) with an isolated filesystem view (read-only system
431
+ paths plus a writable job workspace), no network, and fresh pid/ipc/uts/user
432
+ namespaces:
433
+
434
+ ```ts
435
+ import { createBubblewrapSandbox, createGitForge } from "@trebired/git-host";
436
+
437
+ const forge = createGitForge({
438
+ actions: {
439
+ localRunner: {
440
+ beforeSpawn: createBubblewrapSandbox({
441
+ allowNetwork: false, // default: no network for steps
442
+ roBind: ["/opt/toolchain"], // extra read-only host paths
443
+ bind: [], // extra writable host paths
444
+ }),
445
+ },
446
+ },
447
+ gitHost,
448
+ storage,
449
+ });
450
+ ```
451
+
452
+ For finer control (or a different sandbox such as nsjail or a container),
453
+ `actions.localRunner` also exposes lower-level off-by-default knobs:
454
+
455
+ ```ts
456
+ const forge = createGitForge({
457
+ actions: {
458
+ localRunner: {
459
+ uid: 65534, // drop privileges (passed to spawn where supported)
460
+ gid: 65534,
461
+ execTimeoutMs: 600_000, // per-step wall-clock kill (SIGTERM -> SIGKILL)
462
+ // Wrap the shell in your own sandbox (bwrap/nsjail/container). Return a
463
+ // modified child spec, or nothing to keep the default.
464
+ beforeSpawn(child) {
465
+ return {
466
+ ...child,
467
+ command: "bwrap",
468
+ args: ["--unshare-all", "--", child.command, ...child.args],
469
+ };
470
+ },
471
+ },
472
+ },
473
+ gitHost,
474
+ storage,
475
+ });
476
+ ```
381
477
 
382
478
  ### Workflow APIs
383
479
 
@@ -527,7 +623,7 @@ The forge socket server supports live workflow run viewing with replay from a se
527
623
  The npm package ships:
528
624
 
529
625
  - the backend TypeScript runtime
530
- - packaged Actions runner binaries under `bin/`
626
+ - packaged Actions runner binaries under `native/`
531
627
  - no browser or React entrypoints
532
628
 
533
629
  Repository Actions workflow binaries are built in CI for:
@@ -536,7 +632,3 @@ Repository Actions workflow binaries are built in CI for:
536
632
  - Linux arm64 GNU
537
633
  - macOS x64
538
634
  - macOS arm64
539
-
540
- ## License
541
-
542
- MIT
@@ -0,0 +1,10 @@
1
+ import type { GitForgeActivityFilters, GitForgeWorkflowFilters, GitForgeWorkflowRunArtifactFilters, GitForgeWorkflowRunEventFilters, GitForgeWorkflowRunFilters, GitForgeWorkflowRunJobFilters, GitForgeWorkflowRunStepFilters } from "../../../types.js";
2
+ declare function readActivityFilters(searchParams: URLSearchParams): GitForgeActivityFilters;
3
+ declare function readWorkflowFilters(searchParams: URLSearchParams): GitForgeWorkflowFilters;
4
+ declare function readWorkflowRunFilters(searchParams: URLSearchParams): GitForgeWorkflowRunFilters;
5
+ declare function readWorkflowRunEventFilters(searchParams: URLSearchParams): GitForgeWorkflowRunEventFilters;
6
+ declare function readWorkflowRunJobFilters(searchParams: URLSearchParams): GitForgeWorkflowRunJobFilters;
7
+ declare function readWorkflowRunStepFilters(searchParams: URLSearchParams): GitForgeWorkflowRunStepFilters;
8
+ declare function readWorkflowRunArtifactFilters(searchParams: URLSearchParams): GitForgeWorkflowRunArtifactFilters;
9
+ export { readActivityFilters, readWorkflowFilters, readWorkflowRunArtifactFilters, readWorkflowRunEventFilters, readWorkflowRunFilters, readWorkflowRunJobFilters, readWorkflowRunStepFilters, };
10
+ //# sourceMappingURL=filters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../src/api/forge/actions/filters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACvB,kCAAkC,EAClC,+BAA+B,EAC/B,0BAA0B,EAC1B,6BAA6B,EAC7B,8BAA8B,EAC/B,MAAM,eAAe,CAAC;AAGvB,iBAAS,mBAAmB,CAAC,YAAY,EAAE,eAAe,GAAG,uBAAuB,CAUnF;AAED,iBAAS,mBAAmB,CAAC,YAAY,EAAE,eAAe,GAAG,uBAAuB,CAOnF;AAED,iBAAS,sBAAsB,CAAC,YAAY,EAAE,eAAe,GAAG,0BAA0B,CAczF;AAED,iBAAS,2BAA2B,CAAC,YAAY,EAAE,eAAe,GAAG,+BAA+B,CAKnG;AAED,iBAAS,yBAAyB,CAAC,YAAY,EAAE,eAAe,GAAG,6BAA6B,CAM/F;AAED,iBAAS,0BAA0B,CAAC,YAAY,EAAE,eAAe,GAAG,8BAA8B,CAMjG;AAED,iBAAS,8BAA8B,CAAC,YAAY,EAAE,eAAe,GAAG,kCAAkC,CAKzG;AAED,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,8BAA8B,EAC9B,2BAA2B,EAC3B,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,GAC3B,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { text } from "../../../utils/text.js";
2
+ function readActivityFilters(searchParams) {
3
+ const kind = text(searchParams.get("kind"));
4
+ const source = text(searchParams.get("source"));
5
+ return {
6
+ actor: text(searchParams.get("actor")),
7
+ createdAfter: text(searchParams.get("createdAfter")),
8
+ createdBefore: text(searchParams.get("createdBefore")),
9
+ ...(kind ? { kind: kind.split(",").map((entry) => text(entry)).filter(Boolean) } : {}),
10
+ ...(source ? { source: source.split(",").map((entry) => text(entry)).filter(Boolean) } : {}),
11
+ };
12
+ }
13
+ function readWorkflowFilters(searchParams) {
14
+ const trigger = text(searchParams.get("trigger"));
15
+ return {
16
+ enabled: searchParams.has("enabled") ? text(searchParams.get("enabled")) === "true" : undefined,
17
+ query: text(searchParams.get("query")),
18
+ ...(trigger ? { trigger: trigger.split(",").map((entry) => text(entry)).filter(Boolean) } : {}),
19
+ };
20
+ }
21
+ function readWorkflowRunFilters(searchParams) {
22
+ const status = text(searchParams.get("status"));
23
+ const triggerKind = text(searchParams.get("triggerKind"));
24
+ return {
25
+ actor: text(searchParams.get("actor")),
26
+ branch: text(searchParams.get("branch")),
27
+ createdAfter: text(searchParams.get("createdAfter")),
28
+ createdBefore: text(searchParams.get("createdBefore")),
29
+ query: text(searchParams.get("query")),
30
+ ref: text(searchParams.get("ref")),
31
+ ...(status ? { status: status.split(",").map((entry) => text(entry)).filter(Boolean) } : {}),
32
+ ...(triggerKind ? { triggerKind: triggerKind.split(",").map((entry) => text(entry)).filter(Boolean) } : {}),
33
+ workflowId: text(searchParams.get("workflowId")),
34
+ };
35
+ }
36
+ function readWorkflowRunEventFilters(searchParams) {
37
+ return {
38
+ afterSequence: searchParams.has("afterSequence") ? Number(searchParams.get("afterSequence")) || 0 : undefined,
39
+ limit: searchParams.has("limit") ? Number(searchParams.get("limit")) || undefined : undefined,
40
+ };
41
+ }
42
+ function readWorkflowRunJobFilters(searchParams) {
43
+ const status = text(searchParams.get("status"));
44
+ return {
45
+ jobId: text(searchParams.get("jobId")),
46
+ ...(status ? { status: status.split(",").map((entry) => text(entry)).filter(Boolean) } : {}),
47
+ };
48
+ }
49
+ function readWorkflowRunStepFilters(searchParams) {
50
+ const status = text(searchParams.get("status"));
51
+ return {
52
+ jobRunId: text(searchParams.get("jobRunId")),
53
+ ...(status ? { status: status.split(",").map((entry) => text(entry)).filter(Boolean) } : {}),
54
+ };
55
+ }
56
+ function readWorkflowRunArtifactFilters(searchParams) {
57
+ return {
58
+ jobRunId: text(searchParams.get("jobRunId")),
59
+ name: text(searchParams.get("name")),
60
+ };
61
+ }
62
+ export { readActivityFilters, readWorkflowFilters, readWorkflowRunArtifactFilters, readWorkflowRunEventFilters, readWorkflowRunFilters, readWorkflowRunJobFilters, readWorkflowRunStepFilters, };
63
+ //# sourceMappingURL=filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../../src/api/forge/actions/filters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { CreateGitForgeApiHandlerOptions, GitForgeActor } from "../../../types.js";
2
+ import type { GitForgeApiRoute } from "../route.js";
3
+ declare function runForgeAction(options: CreateGitForgeApiHandlerOptions, route: GitForgeApiRoute, repositoryId: string, actor: GitForgeActor | null, body: Record<string, unknown>, searchParams: URLSearchParams): Promise<import("../../../types.js").GitArchive | import("../../../types.js").GitCommitDetail | import("../../../types.js").GitCommitSummary[] | import("../../../types.js").GitCompareSummary | import("../../../types.js").GitTagDetail | import("../../../types.js").GitBlame | import("../../../types.js").GitSearchResult | import("../../../types.js").GitBlob | import("../../../types.js").GitBranchSummary[] | import("../../../types.js").GitRepositorySummary | import("../../../types.js").GitRepositoryLinguist | import("../../../types.js").GitTreeEntry[] | import("../../../types.js").GitForgeActivityEntry[] | import("../../../types.js").GitForgeRelease | import("../../../types.js").GitForgeRelease[] | import("../../../types.js").GitForgeSocialState | import("../../../types.js").GitForgeFork | import("../../../types.js").GitForgeWorkflow | import("../../../types.js").GitForgeWorkflowRun | import("../../../types.js").GitForgeRepositoryOverview | import("../../../types.js").GitForgeWorkflowRunArtifact[] | import("../../../types.js").GitForgeWorkflowRunEvent[] | import("../../../types.js").GitForgeWorkflowRunJob[] | import("../../../types.js").GitForgeWorkflowRunStep[] | import("../../../types.js").GitForgeWorkflowRun[] | import("../../../types.js").GitForgeFork[] | import("../../../types.js").GitForgeWorkflow[] | import("../../../types.js").GitTagSummary[] | {
4
+ deleted: boolean;
5
+ release_id: string;
6
+ }>;
7
+ export { runForgeAction };
8
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../src/api/forge/actions/run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,+BAA+B,EAC/B,aAAa,EACd,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AA0GtD,iBAAe,cAAc,CAC3B,OAAO,EAAE,+BAA+B,EACxC,KAAK,EAAE,gBAAgB,EACvB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,aAAa,GAAG,IAAI,EAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,EAAE,eAAe;;;GAmD9B;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,129 @@
1
+ import { GitHostError } from "../../../errors.js";
2
+ import { text } from "../../../utils/text.js";
3
+ import { runGitApiAction } from "../../handler/action.js";
4
+ import { readActivityFilters, readWorkflowFilters, readWorkflowRunArtifactFilters, readWorkflowRunEventFilters, readWorkflowRunFilters, readWorkflowRunJobFilters, readWorkflowRunStepFilters, } from "./filters.js";
5
+ function normalizeStringMap(value) {
6
+ if (!value || typeof value !== "object")
7
+ return undefined;
8
+ return Object.fromEntries(Object.entries(value)
9
+ .map(([key, entry]) => [text(key), text(entry)])
10
+ .filter(([key, entry]) => key && entry));
11
+ }
12
+ function buildCreateTagInput(value) {
13
+ if (!value || typeof value !== "object")
14
+ return undefined;
15
+ const createTag = value;
16
+ return {
17
+ annotatedMessage: text(createTag.annotatedMessage),
18
+ name: text(createTag.name),
19
+ targetRef: text(createTag.targetRef),
20
+ };
21
+ }
22
+ async function runReleaseCollectionAction(options, route, repositoryId, actor, body) {
23
+ if (route.action !== "releases" || body._method !== "POST") {
24
+ return await options.forge.listReleases(repositoryId);
25
+ }
26
+ return await options.forge.createRelease(repositoryId, {
27
+ actor: actor,
28
+ assets: Array.isArray(body.assets) ? body.assets : undefined,
29
+ createTag: buildCreateTagInput(body.createTag),
30
+ draft: body.draft === true,
31
+ existingTagName: text(body.existingTagName),
32
+ notes: text(body.notes),
33
+ prerelease: body.prerelease === true,
34
+ publishedAt: body.publishedAt === null ? null : text(body.publishedAt),
35
+ title: text(body.title),
36
+ });
37
+ }
38
+ async function runReleaseAction(options, route, repositoryId, actor, body) {
39
+ if (route.action !== "release")
40
+ throw new GitHostError("git_command_failed", "release route is required.");
41
+ if (body._method === "PATCH") {
42
+ return await options.forge.updateRelease(repositoryId, route.releaseId, {
43
+ actor: actor,
44
+ assets: Array.isArray(body.assets) ? body.assets : undefined,
45
+ draft: body.draft === true,
46
+ notes: text(body.notes),
47
+ prerelease: body.prerelease === true,
48
+ publishedAt: body.publishedAt === null ? null : (body.publishedAt === undefined ? undefined : text(body.publishedAt)),
49
+ title: body.title === undefined ? undefined : text(body.title),
50
+ });
51
+ }
52
+ if (body._method === "DELETE") {
53
+ await options.forge.deleteRelease(repositoryId, route.releaseId, {
54
+ actor: actor,
55
+ deleteTag: body.deleteTag === true,
56
+ });
57
+ return { deleted: true, release_id: route.releaseId };
58
+ }
59
+ return await options.forge.readRelease(repositoryId, route.releaseId);
60
+ }
61
+ async function runWorkflowRunCollectionAction(options, repositoryId, actor, body, searchParams) {
62
+ if (body._method !== "POST") {
63
+ return await options.forge.listWorkflowRuns(repositoryId, readWorkflowRunFilters(searchParams));
64
+ }
65
+ return await options.forge.runWorkflow(repositoryId, text(body.workflowId), {
66
+ actor: actor,
67
+ branch: text(body.branch),
68
+ commitHash: text(body.commitHash),
69
+ env: normalizeStringMap(body.env),
70
+ executionContext: body.executionContext && typeof body.executionContext === "object" ? body.executionContext : undefined,
71
+ inputs: body.inputs && typeof body.inputs === "object" ? body.inputs : undefined,
72
+ ref: text(body.ref),
73
+ secrets: normalizeStringMap(body.secrets),
74
+ triggerContext: body.triggerContext && typeof body.triggerContext === "object" ? body.triggerContext : undefined,
75
+ });
76
+ }
77
+ async function runForgeAction(options, route, repositoryId, actor, body, searchParams) {
78
+ switch (route.action) {
79
+ case "actions":
80
+ return await options.forge.listWorkflows(repositoryId, readWorkflowFilters(searchParams));
81
+ case "action":
82
+ return await options.forge.readWorkflow(repositoryId, route.workflowId);
83
+ case "action_runs":
84
+ return await runWorkflowRunCollectionAction(options, repositoryId, actor, body, searchParams);
85
+ case "action_run":
86
+ return await options.forge.readWorkflowRun(repositoryId, route.runId);
87
+ case "action_run_artifacts":
88
+ return await options.forge.listWorkflowRunArtifacts(repositoryId, route.runId, readWorkflowRunArtifactFilters(searchParams));
89
+ case "action_run_steps":
90
+ return await options.forge.listWorkflowRunSteps(repositoryId, route.runId, readWorkflowRunStepFilters(searchParams));
91
+ case "action_run_jobs":
92
+ return await options.forge.listWorkflowRunJobs(repositoryId, route.runId, readWorkflowRunJobFilters(searchParams));
93
+ case "action_run_events":
94
+ return await options.forge.listWorkflowRunEvents(repositoryId, route.runId, readWorkflowRunEventFilters(searchParams));
95
+ case "action_run_cancel":
96
+ return await options.forge.cancelWorkflowRun(repositoryId, route.runId, { actor: actor });
97
+ case "overview":
98
+ return await options.forge.readOverview(repositoryId, { actorId: actor?.id });
99
+ case "social":
100
+ return await options.forge.readSocialState(repositoryId, { actorId: actor?.id });
101
+ case "stars":
102
+ return body._method === "DELETE"
103
+ ? await options.forge.unstarRepository(repositoryId, { actor: actor })
104
+ : await options.forge.starRepository(repositoryId, { actor: actor });
105
+ case "watch":
106
+ return body._method === "DELETE"
107
+ ? await options.forge.unwatchRepository(repositoryId, { actor: actor })
108
+ : await options.forge.watchRepository(repositoryId, { actor: actor });
109
+ case "releases":
110
+ return await runReleaseCollectionAction(options, route, repositoryId, actor, body);
111
+ case "release":
112
+ return await runReleaseAction(options, route, repositoryId, actor, body);
113
+ case "forks":
114
+ return body._method === "POST"
115
+ ? await options.forge.createFork(repositoryId, { actor: actor })
116
+ : await options.forge.listForks(repositoryId);
117
+ case "fork_sync":
118
+ return await options.forge.syncFork(route.forkId, {
119
+ actor: actor,
120
+ strategy: text(body.strategy) === "merge" ? "merge" : undefined,
121
+ });
122
+ case "activity":
123
+ return await options.forge.listActivity(repositoryId, readActivityFilters(searchParams));
124
+ default:
125
+ return await runGitApiAction({ gitHost: options.gitHost }, route, repositoryId, new URLSearchParams());
126
+ }
127
+ }
128
+ export { runForgeAction };
129
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/api/forge/actions/run.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,11 @@
1
1
  import type { IncomingMessage } from "node:http";
2
- import type { CreateGitForgeApiHandlerOptions, GitForgeActivityFilters, GitForgeActor, GitForgeOperation, GitForgeRelease, GitForgeWorkflowFilters, GitForgeWorkflowRunArtifactFilters, GitForgeWorkflowRunFilters, GitForgeWorkflowRunJobFilters, GitForgeWorkflowRunEventFilters, GitForgeWorkflowRunStepFilters } from "../../types.js";
2
+ import type { GitForgeOperation, GitForgeRelease } from "../../types.js";
3
+ import { readActivityFilters, readWorkflowFilters, readWorkflowRunArtifactFilters, readWorkflowRunEventFilters, readWorkflowRunFilters, readWorkflowRunJobFilters, readWorkflowRunStepFilters } from "./actions/filters.js";
4
+ import { runForgeAction } from "./actions/run.js";
3
5
  import type { GitForgeApiRoute } from "./route.js";
4
6
  declare function routeOperation(route: GitForgeApiRoute, method: string): GitForgeOperation;
5
7
  declare function allowedMethodsForRoute(route: GitForgeApiRoute): string[];
6
8
  declare function readJsonBody(req: IncomingMessage): Promise<Record<string, unknown>>;
7
- declare function runForgeAction(options: CreateGitForgeApiHandlerOptions, route: GitForgeApiRoute, repositoryId: string, actor: GitForgeActor | null, body: Record<string, unknown>, searchParams: URLSearchParams): Promise<import("../../types.js").GitArchive | import("../../types.js").GitCommitDetail | import("../../types.js").GitCommitSummary[] | import("../../types.js").GitCompareSummary | import("../../types.js").GitTagDetail | import("../../types.js").GitBlame | import("../../types.js").GitSearchResult | import("../../types.js").GitBlob | import("../../types.js").GitBranchSummary[] | import("../../types.js").GitRepositorySummary | import("../../types.js").GitRepositoryLinguist | import("../../types.js").GitTreeEntry[] | import("../../types.js").GitForgeActivityEntry[] | GitForgeRelease | GitForgeRelease[] | import("../../types.js").GitForgeSocialState | import("../../types.js").GitForgeFork | import("../../types.js").GitForgeWorkflow | import("../../types.js").GitForgeWorkflowRun | import("../../types.js").GitForgeRepositoryOverview | import("../../types.js").GitForgeWorkflowRunArtifact[] | import("../../types.js").GitForgeWorkflowRunEvent[] | import("../../types.js").GitForgeWorkflowRunJob[] | import("../../types.js").GitForgeWorkflowRunStep[] | import("../../types.js").GitForgeWorkflowRun[] | import("../../types.js").GitForgeFork[] | import("../../types.js").GitForgeWorkflow[] | import("../../types.js").GitTagSummary[] | {
8
- deleted: boolean;
9
- release_id: string;
10
- }>;
11
- declare function readActivityFilters(searchParams: URLSearchParams): GitForgeActivityFilters;
12
- declare function readWorkflowFilters(searchParams: URLSearchParams): GitForgeWorkflowFilters;
13
- declare function readWorkflowRunFilters(searchParams: URLSearchParams): GitForgeWorkflowRunFilters;
14
- declare function readWorkflowRunEventFilters(searchParams: URLSearchParams): GitForgeWorkflowRunEventFilters;
15
- declare function readWorkflowRunJobFilters(searchParams: URLSearchParams): GitForgeWorkflowRunJobFilters;
16
- declare function readWorkflowRunStepFilters(searchParams: URLSearchParams): GitForgeWorkflowRunStepFilters;
17
- declare function readWorkflowRunArtifactFilters(searchParams: URLSearchParams): GitForgeWorkflowRunArtifactFilters;
18
9
  declare function isForgeReleasePayload(value: unknown): value is GitForgeRelease;
19
10
  export { allowedMethodsForRoute, isForgeReleasePayload, readActivityFilters, readJsonBody, readWorkflowFilters, readWorkflowRunArtifactFilters, readWorkflowRunEventFilters, readWorkflowRunFilters, readWorkflowRunJobFilters, readWorkflowRunStepFilters, routeOperation, runForgeAction, };
20
11
  //# sourceMappingURL=actions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/api/forge/actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGjD,OAAO,KAAK,EAEV,+BAA+B,EAC/B,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,kCAAkC,EAClC,0BAA0B,EAC1B,6BAA6B,EAC7B,+BAA+B,EAC/B,8BAA8B,EAC/B,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,iBAAS,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAmClF;AAED,iBAAS,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,EAAE,CA+BjE;AAED,iBAAe,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CASlF;AAED,iBAAe,cAAc,CAC3B,OAAO,EAAE,+BAA+B,EACxC,KAAK,EAAE,gBAAgB,EACvB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,aAAa,GAAG,IAAI,EAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,EAAE,eAAe;;;GA+C9B;AAED,iBAAS,mBAAmB,CAAC,YAAY,EAAE,eAAe,GAAG,uBAAuB,CAUnF;AAED,iBAAS,mBAAmB,CAAC,YAAY,EAAE,eAAe,GAAG,uBAAuB,CAOnF;AAED,iBAAS,sBAAsB,CAAC,YAAY,EAAE,eAAe,GAAG,0BAA0B,CAczF;AAED,iBAAS,2BAA2B,CAAC,YAAY,EAAE,eAAe,GAAG,+BAA+B,CAKnG;AAED,iBAAS,yBAAyB,CAAC,YAAY,EAAE,eAAe,GAAG,6BAA6B,CAM/F;AAED,iBAAS,0BAA0B,CAAC,YAAY,EAAE,eAAe,GAAG,8BAA8B,CAMjG;AAED,iBAAS,8BAA8B,CAAC,YAAY,EAAE,eAAe,GAAG,kCAAkC,CAKzG;AAED,iBAAS,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAMvE;AAqKD,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,8BAA8B,EAC9B,2BAA2B,EAC3B,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC1B,cAAc,EACd,cAAc,GACf,CAAC"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/api/forge/actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,8BAA8B,EAC9B,2BAA2B,EAC3B,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,iBAAS,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAmClF;AAED,iBAAS,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,EAAE,CA+BjE;AAED,iBAAe,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CASlF;AAED,iBAAS,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAMvE;AAED,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,8BAA8B,EAC9B,2BAA2B,EAC3B,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC1B,cAAc,EACd,cAAc,GACf,CAAC"}