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