@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.
- package/CHANGELOG.md +20 -0
- package/README.md +103 -11
- package/dist/api/forge/actions/filters.d.ts +10 -0
- package/dist/api/forge/actions/filters.d.ts.map +1 -0
- package/dist/api/forge/actions/filters.js +63 -0
- package/dist/api/forge/actions/filters.js.map +1 -0
- package/dist/api/forge/actions/run.d.ts +8 -0
- package/dist/api/forge/actions/run.d.ts.map +1 -0
- package/dist/api/forge/actions/run.js +129 -0
- package/dist/api/forge/actions/run.js.map +1 -0
- package/dist/api/forge/actions.d.ts +3 -12
- package/dist/api/forge/actions.d.ts.map +1 -1
- package/dist/api/forge/actions.js +2 -216
- package/dist/api/forge/actions.js.map +1 -1
- package/dist/api/handler/response.d.ts.map +1 -1
- package/dist/api/handler/response.js +55 -1
- package/dist/api/handler/response.js.map +1 -1
- package/dist/core/actions/environment.d.ts +9 -0
- package/dist/core/actions/environment.d.ts.map +1 -0
- package/dist/core/actions/environment.js +64 -0
- package/dist/core/actions/environment.js.map +1 -0
- package/dist/core/actions/expressions/read.d.ts +7 -0
- package/dist/core/actions/expressions/read.d.ts.map +1 -0
- package/dist/core/actions/expressions/read.js +148 -0
- package/dist/core/actions/expressions/read.js.map +1 -0
- package/dist/core/actions/expressions/tokenize.d.ts +4 -0
- package/dist/core/actions/expressions/tokenize.d.ts.map +1 -0
- package/dist/core/actions/expressions/tokenize.js +112 -0
- package/dist/core/actions/expressions/tokenize.js.map +1 -0
- package/dist/core/actions/expressions/types.d.ts +38 -0
- package/dist/core/actions/expressions/types.d.ts.map +1 -0
- package/dist/core/actions/expressions/types.js +2 -0
- package/dist/core/actions/expressions/types.js.map +1 -0
- package/dist/core/actions/expressions.d.ts +2 -9
- package/dist/core/actions/expressions.d.ts.map +1 -1
- package/dist/core/actions/expressions.js +2 -256
- package/dist/core/actions/expressions.js.map +1 -1
- package/dist/core/actions/local_runner.d.ts +5 -0
- package/dist/core/actions/local_runner.d.ts.map +1 -1
- package/dist/core/actions/local_runner.js +70 -18
- package/dist/core/actions/local_runner.js.map +1 -1
- package/dist/core/actions/node_runner.d.ts.map +1 -1
- package/dist/core/actions/node_runner.js +2 -1
- package/dist/core/actions/node_runner.js.map +1 -1
- package/dist/core/actions/normalize/finalize.d.ts +7 -0
- package/dist/core/actions/normalize/finalize.d.ts.map +1 -0
- package/dist/core/actions/normalize/finalize.js +70 -0
- package/dist/core/actions/normalize/finalize.js.map +1 -0
- package/dist/core/actions/normalize/shared.d.ts +19 -0
- package/dist/core/actions/normalize/shared.d.ts.map +1 -0
- package/dist/core/actions/normalize/shared.js +289 -0
- package/dist/core/actions/normalize/shared.js.map +1 -0
- package/dist/core/actions/normalize.d.ts +1 -3
- package/dist/core/actions/normalize.d.ts.map +1 -1
- package/dist/core/actions/normalize.js +2 -354
- package/dist/core/actions/normalize.js.map +1 -1
- package/dist/core/actions/redaction.d.ts +13 -2
- package/dist/core/actions/redaction.d.ts.map +1 -1
- package/dist/core/actions/redaction.js +20 -5
- package/dist/core/actions/redaction.js.map +1 -1
- package/dist/core/actions/release_assets.d.ts.map +1 -1
- package/dist/core/actions/release_assets.js.map +1 -1
- package/dist/core/actions/runner/launch.d.ts.map +1 -1
- package/dist/core/actions/runner/launch.js +12 -8
- package/dist/core/actions/runner/launch.js.map +1 -1
- package/dist/core/actions/sandbox.d.ts +4 -0
- package/dist/core/actions/sandbox.d.ts.map +1 -0
- package/dist/core/actions/sandbox.js +46 -0
- package/dist/core/actions/sandbox.js.map +1 -0
- package/dist/core/archive/commit.d.ts +6 -0
- package/dist/core/archive/commit.d.ts.map +1 -0
- package/dist/core/archive/commit.js +34 -0
- package/dist/core/archive/commit.js.map +1 -0
- package/dist/core/archive/context.d.ts +32 -0
- package/dist/core/archive/context.d.ts.map +1 -0
- package/dist/core/archive/context.js +61 -0
- package/dist/core/archive/context.js.map +1 -0
- package/dist/core/archive/generation.d.ts +11 -0
- package/dist/core/archive/generation.d.ts.map +1 -0
- package/dist/core/archive/generation.js +62 -0
- package/dist/core/archive/generation.js.map +1 -0
- package/dist/core/archive/links.d.ts +5 -0
- package/dist/core/archive/links.d.ts.map +1 -0
- package/dist/core/archive/links.js +62 -0
- package/dist/core/archive/links.js.map +1 -0
- package/dist/core/archive/open.d.ts +15 -0
- package/dist/core/archive/open.d.ts.map +1 -0
- package/dist/core/archive/open.js +159 -0
- package/dist/core/archive/open.js.map +1 -0
- package/dist/core/archive/read.d.ts +19 -0
- package/dist/core/archive/read.d.ts.map +1 -0
- package/dist/core/archive/read.js +62 -0
- package/dist/core/archive/read.js.map +1 -0
- package/dist/core/archive/resolve.d.ts +8 -0
- package/dist/core/archive/resolve.d.ts.map +1 -0
- package/dist/core/archive/resolve.js +67 -0
- package/dist/core/archive/resolve.js.map +1 -0
- package/dist/core/archive/shared.d.ts +50 -0
- package/dist/core/archive/shared.d.ts.map +1 -0
- package/dist/core/archive/shared.js +119 -0
- package/dist/core/archive/shared.js.map +1 -0
- package/dist/core/archive.d.ts +2 -18
- package/dist/core/archive.d.ts.map +1 -1
- package/dist/core/archive.js +16 -556
- package/dist/core/archive.js.map +1 -1
- package/dist/core/create/git/forge/base_methods.d.ts +5 -0
- package/dist/core/create/git/forge/base_methods.d.ts.map +1 -0
- package/dist/core/create/git/forge/base_methods.js +59 -0
- package/dist/core/create/git/forge/base_methods.js.map +1 -0
- package/dist/core/create/git/forge/context.d.ts +38 -0
- package/dist/core/create/git/forge/context.d.ts.map +1 -0
- package/dist/core/create/git/forge/context.js +174 -0
- package/dist/core/create/git/forge/context.js.map +1 -0
- package/dist/core/create/git/forge/fork_methods.d.ts +5 -0
- package/dist/core/create/git/forge/fork_methods.d.ts.map +1 -0
- package/dist/core/create/git/forge/fork_methods.js +133 -0
- package/dist/core/create/git/forge/fork_methods.js.map +1 -0
- package/dist/core/create/git/forge/release_methods.d.ts +5 -0
- package/dist/core/create/git/forge/release_methods.d.ts.map +1 -0
- package/dist/core/create/git/forge/release_methods.js +116 -0
- package/dist/core/create/git/forge/release_methods.js.map +1 -0
- package/dist/core/create/git/forge/shared.d.ts +9 -0
- package/dist/core/create/git/forge/shared.d.ts.map +1 -0
- package/dist/core/create/git/forge/shared.js +80 -0
- package/dist/core/create/git/forge/shared.js.map +1 -0
- package/dist/core/create/git/forge/social_methods.d.ts +5 -0
- package/dist/core/create/git/forge/social_methods.d.ts.map +1 -0
- package/dist/core/create/git/forge/social_methods.js +31 -0
- package/dist/core/create/git/forge/social_methods.js.map +1 -0
- package/dist/core/create/git/forge.d.ts.map +1 -1
- package/dist/core/create/git/forge.js +10 -594
- package/dist/core/create/git/forge.js.map +1 -1
- package/dist/core/create/git/host.d.ts.map +1 -1
- package/dist/core/create/git/host.js +139 -114
- package/dist/core/create/git/host.js.map +1 -1
- package/dist/core/create_git_host/remote_methods.d.ts.map +1 -1
- package/dist/core/create_git_host/remote_methods.js +92 -97
- package/dist/core/create_git_host/remote_methods.js.map +1 -1
- package/dist/core/forge_actions/job/release_asset.d.ts +17 -0
- package/dist/core/forge_actions/job/release_asset.d.ts.map +1 -0
- package/dist/core/forge_actions/job/release_asset.js +62 -0
- package/dist/core/forge_actions/job/release_asset.js.map +1 -0
- package/dist/core/forge_actions/job/steps.d.ts +37 -0
- package/dist/core/forge_actions/job/steps.d.ts.map +1 -0
- package/dist/core/forge_actions/job/steps.js +228 -0
- package/dist/core/forge_actions/job/steps.js.map +1 -0
- package/dist/core/forge_actions/runtime/api.d.ts +26 -0
- package/dist/core/forge_actions/runtime/api.d.ts.map +1 -0
- package/dist/core/forge_actions/runtime/api.js +210 -0
- package/dist/core/forge_actions/runtime/api.js.map +1 -0
- package/dist/core/forge_actions/runtime/engine.d.ts +25 -0
- package/dist/core/forge_actions/runtime/engine.d.ts.map +1 -0
- package/dist/core/forge_actions/runtime/engine.js +28 -0
- package/dist/core/forge_actions/runtime/engine.js.map +1 -0
- package/dist/core/forge_actions/runtime/job/execute.d.ts +19 -0
- package/dist/core/forge_actions/runtime/job/execute.d.ts.map +1 -0
- package/dist/core/forge_actions/runtime/job/execute.js +191 -0
- package/dist/core/forge_actions/runtime/job/execute.js.map +1 -0
- package/dist/core/forge_actions/runtime/job/step/execute.d.ts +7 -0
- package/dist/core/forge_actions/runtime/job/step/execute.d.ts.map +1 -0
- package/dist/core/forge_actions/runtime/job/step/execute.js +176 -0
- package/dist/core/forge_actions/runtime/job/step/execute.js.map +1 -0
- package/dist/core/forge_actions/runtime/queue.d.ts +11 -0
- package/dist/core/forge_actions/runtime/queue.d.ts.map +1 -0
- package/dist/core/forge_actions/runtime/queue.js +144 -0
- package/dist/core/forge_actions/runtime/queue.js.map +1 -0
- package/dist/core/forge_actions/runtime/run/execute.d.ts +9 -0
- package/dist/core/forge_actions/runtime/run/execute.d.ts.map +1 -0
- package/dist/core/forge_actions/runtime/run/execute.js +191 -0
- package/dist/core/forge_actions/runtime/run/execute.js.map +1 -0
- package/dist/core/forge_actions/runtime/types.d.ts +24 -0
- package/dist/core/forge_actions/runtime/types.d.ts.map +1 -0
- package/dist/core/forge_actions/runtime/types.js +2 -0
- package/dist/core/forge_actions/runtime/types.js.map +1 -0
- package/dist/core/forge_actions/runtime_support.d.ts +57 -0
- package/dist/core/forge_actions/runtime_support.d.ts.map +1 -0
- package/dist/core/forge_actions/runtime_support.js +276 -0
- package/dist/core/forge_actions/runtime_support.js.map +1 -0
- package/dist/core/forge_actions/shared.d.ts +92 -0
- package/dist/core/forge_actions/shared.d.ts.map +1 -0
- package/dist/core/forge_actions/shared.js +204 -0
- package/dist/core/forge_actions/shared.js.map +1 -0
- package/dist/core/forge_actions.d.ts +17 -24
- package/dist/core/forge_actions.d.ts.map +1 -1
- package/dist/core/forge_actions.js +33 -1459
- package/dist/core/forge_actions.js.map +1 -1
- package/dist/core/git_forge/storage_memory/actions.d.ts +5 -0
- package/dist/core/git_forge/storage_memory/actions.d.ts.map +1 -0
- package/dist/core/git_forge/storage_memory/actions.js +155 -0
- package/dist/core/git_forge/storage_memory/actions.js.map +1 -0
- package/dist/core/git_forge/storage_memory/adapter.d.ts +4 -0
- package/dist/core/git_forge/storage_memory/adapter.d.ts.map +1 -0
- package/dist/core/git_forge/storage_memory/adapter.js +118 -0
- package/dist/core/git_forge/storage_memory/adapter.js.map +1 -0
- package/dist/core/git_forge/storage_memory/state.d.ts +27 -0
- package/dist/core/git_forge/storage_memory/state.d.ts.map +1 -0
- package/dist/core/git_forge/storage_memory/state.js +53 -0
- package/dist/core/git_forge/storage_memory/state.js.map +1 -0
- package/dist/core/git_forge/storage_memory.d.ts +1 -3
- package/dist/core/git_forge/storage_memory.d.ts.map +1 -1
- package/dist/core/git_forge/storage_memory.js +1 -352
- package/dist/core/git_forge/storage_memory.js.map +1 -1
- package/dist/core/inspect/history.d.ts +13 -0
- package/dist/core/inspect/history.d.ts.map +1 -0
- package/dist/core/inspect/history.js +176 -0
- package/dist/core/inspect/history.js.map +1 -0
- package/dist/core/inspect/linguist.d.ts +12 -0
- package/dist/core/inspect/linguist.d.ts.map +1 -0
- package/dist/core/inspect/linguist.js +128 -0
- package/dist/core/inspect/linguist.js.map +1 -0
- package/dist/core/inspect/search_archive.d.ts +16 -0
- package/dist/core/inspect/search_archive.d.ts.map +1 -0
- package/dist/core/inspect/search_archive.js +88 -0
- package/dist/core/inspect/search_archive.js.map +1 -0
- package/dist/core/inspect/shared.d.ts +5 -0
- package/dist/core/inspect/shared.d.ts.map +1 -0
- package/dist/core/inspect/shared.js +47 -0
- package/dist/core/inspect/shared.js.map +1 -0
- package/dist/core/inspect/tree_blob.d.ts +16 -0
- package/dist/core/inspect/tree_blob.d.ts.map +1 -0
- package/dist/core/inspect/tree_blob.js +80 -0
- package/dist/core/inspect/tree_blob.js.map +1 -0
- package/dist/core/inspect.d.ts +3 -46
- package/dist/core/inspect.d.ts.map +1 -1
- package/dist/core/inspect.js +3 -546
- package/dist/core/inspect.js.map +1 -1
- package/dist/core/inspection/analysis.d.ts +4 -0
- package/dist/core/inspection/analysis.d.ts.map +1 -0
- package/dist/core/inspection/analysis.js +25 -0
- package/dist/core/inspection/analysis.js.map +1 -0
- package/dist/core/inspection/shared.d.ts +18 -0
- package/dist/core/inspection/shared.d.ts.map +1 -0
- package/dist/core/inspection/shared.js +112 -0
- package/dist/core/inspection/shared.js.map +1 -0
- package/dist/core/inspection/snapshots.d.ts +6 -0
- package/dist/core/inspection/snapshots.d.ts.map +1 -0
- package/dist/core/inspection/snapshots.js +270 -0
- package/dist/core/inspection/snapshots.js.map +1 -0
- package/dist/core/inspection/target.d.ts +4 -0
- package/dist/core/inspection/target.d.ts.map +1 -0
- package/dist/core/inspection/target.js +97 -0
- package/dist/core/inspection/target.js.map +1 -0
- package/dist/core/inspection/tree.d.ts +6 -0
- package/dist/core/inspection/tree.d.ts.map +1 -0
- package/dist/core/inspection/tree.js +103 -0
- package/dist/core/inspection/tree.js.map +1 -0
- package/dist/core/inspection.d.ts +6 -10
- package/dist/core/inspection.d.ts.map +1 -1
- package/dist/core/inspection.js +6 -592
- package/dist/core/inspection.js.map +1 -1
- package/dist/http/handler.d.ts.map +1 -1
- package/dist/http/handler.js +157 -133
- package/dist/http/handler.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ssh/server.d.ts.map +1 -1
- package/dist/ssh/server.js +171 -243
- package/dist/ssh/server.js.map +1 -1
- package/dist/types/forge/workflows/actions.d.ts +70 -0
- package/dist/types/forge/workflows/actions.d.ts.map +1 -0
- package/dist/types/forge/workflows/actions.js +3 -0
- package/dist/types/forge/workflows/actions.js.map +1 -0
- package/dist/types/forge/workflows/definition.d.ts +115 -0
- package/dist/types/forge/workflows/definition.d.ts.map +1 -0
- package/dist/types/forge/workflows/definition.js +2 -0
- package/dist/types/forge/workflows/definition.js.map +1 -0
- package/dist/types/forge/workflows/runs.d.ts +184 -0
- package/dist/types/forge/workflows/runs.d.ts.map +1 -0
- package/dist/types/forge/workflows/runs.js +2 -0
- package/dist/types/forge/workflows/runs.js.map +1 -0
- package/dist/types/forge/workflows.d.ts +3 -331
- package/dist/types/forge/workflows.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/{bin → native}/git-host-actions-runner-darwin-arm64 +0 -0
- package/{bin → native}/git-host-actions-runner-darwin-x64 +0 -0
- package/{bin → native}/git-host-actions-runner-linux-arm64-gnu +0 -0
- package/{bin → native}/git-host-actions-runner-linux-x64-gnu +0 -0
- package/package.json +63 -11
- package/dist/frontend/js/utils/text.d.ts +0 -2
- package/dist/frontend/js/utils/text.d.ts.map +0 -1
- package/dist/frontend/js/utils/text.js +0 -4
- package/dist/frontend/js/utils/text.js.map +0 -1
- /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
|
-
|
|
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
|
|
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
|
-
|
|
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 `
|
|
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 {
|
|
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;
|
|
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"}
|