@ipul-labs/forge 1.16.8 → 1.17.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/README.md +39 -21
- package/lib/bin/cli/analyze.d.ts +9 -0
- package/lib/bin/cli/analyze.d.ts.map +1 -0
- package/lib/bin/cli/analyze.js +491 -0
- package/lib/bin/cli/analyze.js.map +1 -0
- package/lib/bin/cli/apply.d.ts +2 -0
- package/lib/bin/cli/apply.d.ts.map +1 -0
- package/lib/bin/cli/apply.js +262 -0
- package/lib/bin/cli/apply.js.map +1 -0
- package/lib/bin/cli/cifix.d.ts +2 -0
- package/lib/bin/cli/cifix.d.ts.map +1 -0
- package/lib/bin/cli/cifix.js +310 -0
- package/lib/bin/cli/cifix.js.map +1 -0
- package/lib/bin/cli/close.d.ts +2 -0
- package/lib/bin/cli/close.d.ts.map +1 -0
- package/lib/bin/cli/close.js +113 -0
- package/lib/bin/cli/close.js.map +1 -0
- package/lib/bin/cli/createIssue.d.ts +2 -0
- package/lib/bin/cli/createIssue.d.ts.map +1 -0
- package/lib/bin/cli/createIssue.js +108 -0
- package/lib/bin/cli/createIssue.js.map +1 -0
- package/lib/bin/cli/doctor.d.ts +2 -0
- package/lib/bin/cli/doctor.d.ts.map +1 -0
- package/lib/bin/cli/doctor.js +145 -0
- package/lib/bin/cli/doctor.js.map +1 -0
- package/lib/bin/cli/init.d.ts +4 -0
- package/lib/bin/cli/init.d.ts.map +1 -0
- package/lib/bin/cli/init.js +288 -0
- package/lib/bin/cli/init.js.map +1 -0
- package/lib/bin/cli/ink.d.ts +23 -0
- package/lib/bin/cli/ink.d.ts.map +1 -0
- package/{bin → lib/bin}/cli/ink.js +18 -19
- package/lib/bin/cli/ink.js.map +1 -0
- package/lib/bin/cli/issue.d.ts +2 -0
- package/lib/bin/cli/issue.d.ts.map +1 -0
- package/lib/bin/cli/issue.js +114 -0
- package/lib/bin/cli/issue.js.map +1 -0
- package/lib/bin/cli/issues.d.ts +2 -0
- package/lib/bin/cli/issues.d.ts.map +1 -0
- package/lib/bin/cli/issues.js +149 -0
- package/lib/bin/cli/issues.js.map +1 -0
- package/lib/bin/cli/merge.d.ts +2 -0
- package/lib/bin/cli/merge.d.ts.map +1 -0
- package/lib/bin/cli/merge.js +162 -0
- package/lib/bin/cli/merge.js.map +1 -0
- package/lib/bin/cli/refine.d.ts +2 -0
- package/lib/bin/cli/refine.d.ts.map +1 -0
- package/lib/bin/cli/refine.js +249 -0
- package/lib/bin/cli/refine.js.map +1 -0
- package/lib/bin/cli/repl.d.ts +2 -0
- package/lib/bin/cli/repl.d.ts.map +1 -0
- package/lib/bin/cli/repl.js +309 -0
- package/lib/bin/cli/repl.js.map +1 -0
- package/lib/bin/cli/repos.d.ts +2 -0
- package/lib/bin/cli/repos.d.ts.map +1 -0
- package/lib/bin/cli/repos.js +86 -0
- package/lib/bin/cli/repos.js.map +1 -0
- package/lib/bin/cli/resolution.d.ts +2 -0
- package/lib/bin/cli/resolution.d.ts.map +1 -0
- package/lib/bin/cli/resolution.js +139 -0
- package/lib/bin/cli/resolution.js.map +1 -0
- package/lib/bin/cli/serverClient.d.ts +26 -0
- package/lib/bin/cli/serverClient.d.ts.map +1 -0
- package/lib/bin/cli/serverClient.js +111 -0
- package/lib/bin/cli/serverClient.js.map +1 -0
- package/lib/bin/cli/session.d.ts +8 -0
- package/lib/bin/cli/session.d.ts.map +1 -0
- package/lib/bin/cli/session.js +212 -0
- package/lib/bin/cli/session.js.map +1 -0
- package/lib/bin/cli/sessionStore.d.ts +69 -0
- package/lib/bin/cli/sessionStore.d.ts.map +1 -0
- package/lib/bin/cli/sessionStore.js +196 -0
- package/lib/bin/cli/sessionStore.js.map +1 -0
- package/lib/bin/cli/ship.d.ts +33 -0
- package/lib/bin/cli/ship.d.ts.map +1 -0
- package/lib/bin/cli/ship.js +737 -0
- package/lib/bin/cli/ship.js.map +1 -0
- package/lib/bin/cli/types.d.ts +59 -0
- package/lib/bin/cli/types.d.ts.map +1 -0
- package/lib/bin/cli/types.js +2 -0
- package/lib/bin/cli/types.js.map +1 -0
- package/lib/bin/cli/update.d.ts +2 -0
- package/lib/bin/cli/update.d.ts.map +1 -0
- package/lib/bin/cli/update.js +87 -0
- package/lib/bin/cli/update.js.map +1 -0
- package/lib/bin/cli/utils.d.ts +43 -0
- package/lib/bin/cli/utils.d.ts.map +1 -0
- package/lib/bin/cli/utils.js +171 -0
- package/lib/bin/cli/utils.js.map +1 -0
- package/lib/bin/cli/validate.d.ts +2 -0
- package/lib/bin/cli/validate.d.ts.map +1 -0
- package/lib/bin/cli/validate.js +283 -0
- package/lib/bin/cli/validate.js.map +1 -0
- package/lib/bin/cli/watch.d.ts +5 -0
- package/lib/bin/cli/watch.d.ts.map +1 -0
- package/lib/bin/cli/watch.js +263 -0
- package/lib/bin/cli/watch.js.map +1 -0
- package/lib/bin/forge-agent.d.ts +3 -0
- package/lib/bin/forge-agent.d.ts.map +1 -0
- package/{bin → lib/bin}/forge-agent.js +104 -105
- package/lib/bin/forge-agent.js.map +1 -0
- package/lib/server/forge/core/ForgeAgent.d.ts +260 -0
- package/lib/server/forge/core/ForgeAgent.d.ts.map +1 -0
- package/lib/server/forge/core/ForgeAgent.js +995 -0
- package/lib/server/forge/core/ForgeAgent.js.map +1 -0
- package/lib/server/forge/core/agentClient.d.ts +39 -0
- package/lib/server/forge/core/agentClient.d.ts.map +1 -0
- package/{server → lib/server}/forge/core/agentClient.js +7 -12
- package/lib/server/forge/core/agentClient.js.map +1 -0
- package/lib/server/forge/core/branchName.d.ts +20 -0
- package/lib/server/forge/core/branchName.d.ts.map +1 -0
- package/lib/server/forge/core/branchName.js +39 -0
- package/lib/server/forge/core/branchName.js.map +1 -0
- package/lib/server/forge/core/claudeClient.d.ts +60 -0
- package/lib/server/forge/core/claudeClient.d.ts.map +1 -0
- package/lib/server/forge/core/claudeClient.js +347 -0
- package/lib/server/forge/core/claudeClient.js.map +1 -0
- package/lib/server/forge/core/configStore.d.ts +76 -0
- package/lib/server/forge/core/configStore.d.ts.map +1 -0
- package/lib/server/forge/core/configStore.js +213 -0
- package/lib/server/forge/core/configStore.js.map +1 -0
- package/lib/server/forge/core/gitlabClient.d.ts +144 -0
- package/lib/server/forge/core/gitlabClient.d.ts.map +1 -0
- package/{server → lib/server}/forge/core/gitlabClient.js +98 -180
- package/lib/server/forge/core/gitlabClient.js.map +1 -0
- package/lib/server/forge/core/jobs.d.ts +67 -0
- package/lib/server/forge/core/jobs.d.ts.map +1 -0
- package/lib/server/forge/core/jobs.js +185 -0
- package/lib/server/forge/core/jobs.js.map +1 -0
- package/lib/server/forge/core/k8s.d.ts +18 -0
- package/lib/server/forge/core/k8s.d.ts.map +1 -0
- package/lib/server/forge/core/k8s.js +49 -0
- package/lib/server/forge/core/k8s.js.map +1 -0
- package/lib/server/forge/core/localRepo.d.ts +36 -0
- package/lib/server/forge/core/localRepo.d.ts.map +1 -0
- package/lib/server/forge/core/localRepo.js +165 -0
- package/lib/server/forge/core/localRepo.js.map +1 -0
- package/lib/server/forge/core/openclawClient.d.ts +61 -0
- package/lib/server/forge/core/openclawClient.d.ts.map +1 -0
- package/lib/server/forge/core/openclawClient.js +111 -0
- package/lib/server/forge/core/openclawClient.js.map +1 -0
- package/lib/server/forge/core/prompts.d.ts +96 -0
- package/lib/server/forge/core/prompts.d.ts.map +1 -0
- package/lib/server/forge/core/prompts.js +450 -0
- package/lib/server/forge/core/prompts.js.map +1 -0
- package/lib/server/forge/core/providers/azuredevops.d.ts +134 -0
- package/lib/server/forge/core/providers/azuredevops.d.ts.map +1 -0
- package/lib/server/forge/core/providers/azuredevops.js +360 -0
- package/lib/server/forge/core/providers/azuredevops.js.map +1 -0
- package/lib/server/forge/core/providers/base.d.ts +114 -0
- package/lib/server/forge/core/providers/base.d.ts.map +1 -0
- package/lib/server/forge/core/providers/base.js +98 -0
- package/lib/server/forge/core/providers/base.js.map +1 -0
- package/lib/server/forge/core/providers/github.d.ts +133 -0
- package/lib/server/forge/core/providers/github.d.ts.map +1 -0
- package/lib/server/forge/core/providers/github.js +307 -0
- package/lib/server/forge/core/providers/github.js.map +1 -0
- package/lib/server/forge/core/providers/gitlab.d.ts +144 -0
- package/lib/server/forge/core/providers/gitlab.d.ts.map +1 -0
- package/lib/server/forge/core/providers/gitlab.js +407 -0
- package/lib/server/forge/core/providers/gitlab.js.map +1 -0
- package/lib/server/forge/core/providers/index.d.ts +21 -0
- package/lib/server/forge/core/providers/index.d.ts.map +1 -0
- package/lib/server/forge/core/providers/index.js +43 -0
- package/lib/server/forge/core/providers/index.js.map +1 -0
- package/lib/server/forge/core/providers/types.d.ts +80 -0
- package/lib/server/forge/core/providers/types.d.ts.map +1 -0
- package/lib/server/forge/core/providers/types.js +2 -0
- package/lib/server/forge/core/providers/types.js.map +1 -0
- package/lib/server/forge/core/quotaClient.d.ts +48 -0
- package/lib/server/forge/core/quotaClient.d.ts.map +1 -0
- package/lib/server/forge/core/quotaClient.js +88 -0
- package/lib/server/forge/core/quotaClient.js.map +1 -0
- package/lib/server/forge/core/types.d.ts +160 -0
- package/lib/server/forge/core/types.d.ts.map +1 -0
- package/lib/server/forge/core/types.js +2 -0
- package/lib/server/forge/core/types.js.map +1 -0
- package/lib/server/forge/core/validator/attribute.d.ts +31 -0
- package/lib/server/forge/core/validator/attribute.d.ts.map +1 -0
- package/lib/server/forge/core/validator/attribute.js +82 -0
- package/lib/server/forge/core/validator/attribute.js.map +1 -0
- package/lib/server/forge/core/validator/clone.d.ts +14 -0
- package/lib/server/forge/core/validator/clone.d.ts.map +1 -0
- package/lib/server/forge/core/validator/clone.js +99 -0
- package/lib/server/forge/core/validator/clone.js.map +1 -0
- package/lib/server/forge/core/validator/cmd.d.ts +23 -0
- package/lib/server/forge/core/validator/cmd.d.ts.map +1 -0
- package/lib/server/forge/core/validator/cmd.js +87 -0
- package/lib/server/forge/core/validator/cmd.js.map +1 -0
- package/lib/server/forge/core/validator/fs.d.ts +5 -0
- package/lib/server/forge/core/validator/fs.d.ts.map +1 -0
- package/{server → lib/server}/forge/core/validator/fs.js +8 -3
- package/lib/server/forge/core/validator/fs.js.map +1 -0
- package/lib/server/forge/core/validator/overlay.d.ts +13 -0
- package/lib/server/forge/core/validator/overlay.d.ts.map +1 -0
- package/lib/server/forge/core/validator/overlay.js +53 -0
- package/lib/server/forge/core/validator/overlay.js.map +1 -0
- package/lib/server/forge/core/validator/projectType.d.ts +20 -0
- package/lib/server/forge/core/validator/projectType.d.ts.map +1 -0
- package/lib/server/forge/core/validator/projectType.js +94 -0
- package/lib/server/forge/core/validator/projectType.js.map +1 -0
- package/lib/server/forge/core/validator/runners/go.d.ts +21 -0
- package/lib/server/forge/core/validator/runners/go.d.ts.map +1 -0
- package/lib/server/forge/core/validator/runners/go.js +99 -0
- package/lib/server/forge/core/validator/runners/go.js.map +1 -0
- package/lib/server/forge/core/validator/runners/node.d.ts +12 -0
- package/lib/server/forge/core/validator/runners/node.d.ts.map +1 -0
- package/lib/server/forge/core/validator/runners/node.js +75 -0
- package/lib/server/forge/core/validator/runners/node.js.map +1 -0
- package/lib/server/forge/core/validator/tdd.d.ts +30 -0
- package/lib/server/forge/core/validator/tdd.d.ts.map +1 -0
- package/lib/server/forge/core/validator/tdd.js +96 -0
- package/lib/server/forge/core/validator/tdd.js.map +1 -0
- package/lib/server/forge/core/validator.d.ts +58 -0
- package/lib/server/forge/core/validator.d.ts.map +1 -0
- package/lib/server/forge/core/validator.js +150 -0
- package/lib/server/forge/core/validator.js.map +1 -0
- package/lib/server/forge/routes.d.ts +22 -0
- package/lib/server/forge/routes.d.ts.map +1 -0
- package/lib/server/forge/routes.js +984 -0
- package/lib/server/forge/routes.js.map +1 -0
- package/lib/server.d.ts +2 -0
- package/lib/server.d.ts.map +1 -0
- package/lib/server.js +52 -0
- package/lib/server.js.map +1 -0
- package/lib/shared/events.d.ts +12 -0
- package/lib/shared/events.d.ts.map +1 -0
- package/lib/shared/events.js +12 -0
- package/lib/shared/events.js.map +1 -0
- package/package.json +15 -13
- package/scripts/fix-shebang.cjs +10 -0
- package/bin/cli/analyze.js +0 -516
- package/bin/cli/apply.js +0 -264
- package/bin/cli/cifix.js +0 -300
- package/bin/cli/close.js +0 -125
- package/bin/cli/createIssue.js +0 -112
- package/bin/cli/doctor.js +0 -161
- package/bin/cli/init.js +0 -306
- package/bin/cli/issue.js +0 -116
- package/bin/cli/issues.js +0 -155
- package/bin/cli/merge.js +0 -175
- package/bin/cli/refine.js +0 -253
- package/bin/cli/repl.js +0 -301
- package/bin/cli/repos.js +0 -91
- package/bin/cli/resolution.js +0 -126
- package/bin/cli/session.js +0 -230
- package/bin/cli/sessionStore.js +0 -211
- package/bin/cli/ship.js +0 -762
- package/bin/cli/update.js +0 -95
- package/bin/cli/utils.js +0 -145
- package/bin/cli/validate.js +0 -280
- package/bin/cli/watch.js +0 -274
- package/server/forge/core/ForgeAgent.js +0 -1179
- package/server/forge/core/ForgeAgent.test.js +0 -179
- package/server/forge/core/branchName.js +0 -41
- package/server/forge/core/claudeClient.js +0 -378
- package/server/forge/core/configStore.js +0 -229
- package/server/forge/core/configStore.test.js +0 -89
- package/server/forge/core/jobs.js +0 -180
- package/server/forge/core/k8s.js +0 -54
- package/server/forge/core/localRepo.js +0 -163
- package/server/forge/core/openclawClient.js +0 -125
- package/server/forge/core/prompts.js +0 -483
- package/server/forge/core/prompts.test.js +0 -219
- package/server/forge/core/providers/azuredevops.js +0 -409
- package/server/forge/core/providers/base.js +0 -208
- package/server/forge/core/providers/github.js +0 -348
- package/server/forge/core/providers/gitlab.js +0 -529
- package/server/forge/core/providers/index.js +0 -47
- package/server/forge/core/quotaClient.js +0 -101
- package/server/forge/core/validator/attribute.js +0 -84
- package/server/forge/core/validator/clone.js +0 -116
- package/server/forge/core/validator/cmd.js +0 -98
- package/server/forge/core/validator/overlay.js +0 -52
- package/server/forge/core/validator/projectType.js +0 -87
- package/server/forge/core/validator/runners/go.js +0 -107
- package/server/forge/core/validator/runners/node.js +0 -84
- package/server/forge/core/validator/tdd.js +0 -105
- package/server/forge/core/validator.js +0 -167
- package/server/forge/routes.js +0 -1027
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configStore.js","sourceRoot":"","sources":["../../../../server/forge/core/configStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* server/forge/core/gitlabClient.js
|
|
3
|
+
*
|
|
4
|
+
* Thin wrapper around the GitLab REST API v4.
|
|
5
|
+
* All calls use process.env.GITLAB_TOKEN for auth and
|
|
6
|
+
* process.env.FORGE_GITLAB_PROJECT for the default project path.
|
|
7
|
+
*
|
|
8
|
+
* Required env vars:
|
|
9
|
+
* GITLAB_TOKEN — personal access token or CI job token
|
|
10
|
+
* FORGE_GITLAB_PROJECT — project path, e.g. "ipul/web-app"
|
|
11
|
+
*/
|
|
12
|
+
import type { CommitAction } from "./providers/types.ts";
|
|
13
|
+
interface CreateMRParams {
|
|
14
|
+
sourceBranch: string;
|
|
15
|
+
targetBranch?: string;
|
|
16
|
+
title: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
}
|
|
19
|
+
interface UpdateIssueFields {
|
|
20
|
+
title?: string;
|
|
21
|
+
description?: string;
|
|
22
|
+
}
|
|
23
|
+
interface GitLabMR {
|
|
24
|
+
source_branch?: string;
|
|
25
|
+
[key: string]: unknown;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Returns open issues for the project, newest first.
|
|
29
|
+
* @param {string} [project]
|
|
30
|
+
*/
|
|
31
|
+
export declare function createIssue(title: string, description?: string, project?: string): Promise<unknown>;
|
|
32
|
+
export declare function updateIssue(issueIid: number | string, { title, description }: UpdateIssueFields, project?: string): Promise<unknown>;
|
|
33
|
+
export declare function closeIssue(issueIid: number | string, project?: string): Promise<unknown>;
|
|
34
|
+
export declare function listOpenIssues(project?: string): Promise<unknown>;
|
|
35
|
+
/**
|
|
36
|
+
* Returns a single issue by internal ID (iid).
|
|
37
|
+
* @param {number} issueIid
|
|
38
|
+
* @param {string} [project]
|
|
39
|
+
*/
|
|
40
|
+
export declare function getIssue(issueIid: number | string, project?: string): Promise<unknown>;
|
|
41
|
+
/**
|
|
42
|
+
* Returns the recursive file tree under `srcPath`.
|
|
43
|
+
* Filters to source files only (skips build artifacts, lock files, etc.).
|
|
44
|
+
* @param {string} [srcPath]
|
|
45
|
+
* @param {string} [ref]
|
|
46
|
+
* @param {string} [project]
|
|
47
|
+
*/
|
|
48
|
+
export declare function getFileTree(srcPath?: string, ref?: string, project?: string): Promise<string[]>;
|
|
49
|
+
/**
|
|
50
|
+
* Returns the decoded UTF-8 content of a single file.
|
|
51
|
+
* @param {string} filePath
|
|
52
|
+
* @param {string} [ref]
|
|
53
|
+
* @param {string} [project]
|
|
54
|
+
*/
|
|
55
|
+
export declare function getFileContent(filePath: string, ref?: string, project?: string): Promise<string>;
|
|
56
|
+
/**
|
|
57
|
+
* Creates a new branch from `ref`.
|
|
58
|
+
* @param {string} branchName
|
|
59
|
+
* @param {string} [ref]
|
|
60
|
+
* @param {string} [project]
|
|
61
|
+
*/
|
|
62
|
+
export declare function createBranch(branchName: string, ref?: string, project?: string): Promise<unknown>;
|
|
63
|
+
/**
|
|
64
|
+
* Commits multiple file changes in a single commit.
|
|
65
|
+
* @param {string} branch
|
|
66
|
+
* @param {string} commitMessage
|
|
67
|
+
* @param {Array<{action: string, file_path: string, content: string}>} actions
|
|
68
|
+
* @param {string} [project]
|
|
69
|
+
*/
|
|
70
|
+
export declare function commitFiles(branch: string, commitMessage: string, actions: CommitAction[], project?: string): Promise<unknown>;
|
|
71
|
+
/**
|
|
72
|
+
* Opens a merge request from `sourceBranch` into `targetBranch`.
|
|
73
|
+
* @param {{ sourceBranch: string, targetBranch?: string, title: string, description?: string }} opts
|
|
74
|
+
* @param {string} [project]
|
|
75
|
+
*/
|
|
76
|
+
export declare function createMR({ sourceBranch, targetBranch, title, description }: CreateMRParams, project?: string): Promise<unknown>;
|
|
77
|
+
/**
|
|
78
|
+
* Returns open MRs created by Forge for a specific issue (branch prefix forge/issue-{iid}-).
|
|
79
|
+
* @param {number} issueIid
|
|
80
|
+
* @param {string} [project]
|
|
81
|
+
*/
|
|
82
|
+
/**
|
|
83
|
+
* Returns all open MRs created by Forge (branch prefix forge/).
|
|
84
|
+
* Includes head_pipeline for quick status display.
|
|
85
|
+
* @param {string} [project]
|
|
86
|
+
*/
|
|
87
|
+
export declare function listAllForgeMRs(project?: string): Promise<GitLabMR[]>;
|
|
88
|
+
export declare function listForgeMRsForIssue(issueIid: number | string, project?: string): Promise<GitLabMR[]>;
|
|
89
|
+
/**
|
|
90
|
+
* Returns merged MRs created by Forge for a specific issue.
|
|
91
|
+
* @param {number} issueIid
|
|
92
|
+
* @param {string} [project]
|
|
93
|
+
*/
|
|
94
|
+
export declare function listMergedForgeMRsForIssue(issueIid: number | string, project?: string): Promise<GitLabMR[]>;
|
|
95
|
+
/**
|
|
96
|
+
* Returns the plain-text trace (log output) for a single job.
|
|
97
|
+
* @param {number} jobId
|
|
98
|
+
* @param {string} [project]
|
|
99
|
+
*/
|
|
100
|
+
export declare function getJobTrace(jobId: number | string, project?: string): Promise<string>;
|
|
101
|
+
/**
|
|
102
|
+
* Returns a single MR with full detail including conflict/rebase status.
|
|
103
|
+
* @param {number} mrIid
|
|
104
|
+
* @param {string} [project]
|
|
105
|
+
*/
|
|
106
|
+
export declare function getMR(mrIid: number | string, project?: string): Promise<unknown>;
|
|
107
|
+
/**
|
|
108
|
+
* Triggers a rebase of the MR source branch onto the target branch.
|
|
109
|
+
* @param {number} mrIid
|
|
110
|
+
* @param {string} [project]
|
|
111
|
+
*/
|
|
112
|
+
export declare function rebaseMR(mrIid: number | string, project?: string): Promise<unknown>;
|
|
113
|
+
/**
|
|
114
|
+
* Returns the diff for a merge request (all changed files).
|
|
115
|
+
* @param {number} mrIid
|
|
116
|
+
* @param {string} [project]
|
|
117
|
+
*/
|
|
118
|
+
export declare function getMRDiffs(mrIid: number | string, project?: string): Promise<Record<string, unknown>[]>;
|
|
119
|
+
/**
|
|
120
|
+
* Returns all pipelines associated with an MR.
|
|
121
|
+
* @param {number} mrIid
|
|
122
|
+
* @param {string} [project]
|
|
123
|
+
*/
|
|
124
|
+
export declare function getMRPipelines(mrIid: number | string, project?: string): Promise<unknown>;
|
|
125
|
+
/**
|
|
126
|
+
* Returns a single pipeline with full status detail.
|
|
127
|
+
* @param {number} pipelineId
|
|
128
|
+
* @param {string} [project]
|
|
129
|
+
*/
|
|
130
|
+
export declare function getPipeline(pipelineId: number | string, project?: string): Promise<unknown>;
|
|
131
|
+
/**
|
|
132
|
+
* Returns all jobs for a pipeline.
|
|
133
|
+
* @param {number} pipelineId
|
|
134
|
+
* @param {string} [project]
|
|
135
|
+
*/
|
|
136
|
+
export declare function getPipelineJobs(pipelineId: number | string, project?: string): Promise<unknown>;
|
|
137
|
+
/**
|
|
138
|
+
* Returns pipelines that ran on a specific commit SHA.
|
|
139
|
+
* @param {string} sha
|
|
140
|
+
* @param {string} [project]
|
|
141
|
+
*/
|
|
142
|
+
export declare function getProjectPipelinesBySha(sha: string, project?: string): Promise<unknown>;
|
|
143
|
+
export {};
|
|
144
|
+
//# sourceMappingURL=gitlabClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitlabClient.d.ts","sourceRoot":"","sources":["../../../../server/forge/core/gitlabClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,86 +9,63 @@
|
|
|
9
9
|
* GITLAB_TOKEN — personal access token or CI job token
|
|
10
10
|
* FORGE_GITLAB_PROJECT — project path, e.g. "ipul/web-app"
|
|
11
11
|
*/
|
|
12
|
-
|
|
13
12
|
const GITLAB_API = "https://gitlab.com/api/v4";
|
|
14
|
-
|
|
15
|
-
// ─── Internal helpers ─────────────────────────────────────────────────────────
|
|
16
|
-
|
|
17
13
|
function authHeaders() {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
return {
|
|
15
|
+
"PRIVATE-TOKEN": process.env.GITLAB_TOKEN,
|
|
16
|
+
"Content-Type": "application/json",
|
|
17
|
+
};
|
|
22
18
|
}
|
|
23
|
-
|
|
24
19
|
async function request(path, options = {}) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return res.json();
|
|
20
|
+
const url = `${GITLAB_API}${path}`;
|
|
21
|
+
const res = await fetch(url, {
|
|
22
|
+
...options,
|
|
23
|
+
headers: { ...authHeaders(), ...options.headers },
|
|
24
|
+
});
|
|
25
|
+
if (!res.ok) {
|
|
26
|
+
const text = await res.text().catch(() => "");
|
|
27
|
+
throw new Error(`GitLab ${res.status} on ${path}: ${text}`);
|
|
28
|
+
}
|
|
29
|
+
return res.json();
|
|
37
30
|
}
|
|
38
|
-
|
|
39
31
|
function encodeProject(project) {
|
|
40
|
-
|
|
32
|
+
return encodeURIComponent(project ?? process.env.FORGE_GITLAB_PROJECT);
|
|
41
33
|
}
|
|
42
|
-
|
|
43
34
|
// ─── Issues ───────────────────────────────────────────────────────────────────
|
|
44
|
-
|
|
45
35
|
/**
|
|
46
36
|
* Returns open issues for the project, newest first.
|
|
47
37
|
* @param {string} [project]
|
|
48
38
|
*/
|
|
49
39
|
export async function createIssue(title, description = "", project) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
body: JSON.stringify({ title, description }),
|
|
55
|
-
},
|
|
56
|
-
);
|
|
40
|
+
return request(`/projects/${encodeProject(project)}/issues`, {
|
|
41
|
+
method: "POST",
|
|
42
|
+
body: JSON.stringify({ title, description }),
|
|
43
|
+
});
|
|
57
44
|
}
|
|
58
|
-
|
|
59
45
|
export async function updateIssue(issueIid, { title, description }, project) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
46
|
+
return request(`/projects/${encodeProject(project)}/issues/${issueIid}`, {
|
|
47
|
+
method: "PUT",
|
|
48
|
+
body: JSON.stringify({ title, description }),
|
|
49
|
+
});
|
|
64
50
|
}
|
|
65
|
-
|
|
66
51
|
export async function closeIssue(issueIid, project) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
52
|
+
return request(`/projects/${encodeProject(project)}/issues/${issueIid}`, {
|
|
53
|
+
method: "PUT",
|
|
54
|
+
body: JSON.stringify({ state_event: "close" }),
|
|
55
|
+
});
|
|
71
56
|
}
|
|
72
|
-
|
|
73
57
|
export async function listOpenIssues(project) {
|
|
74
|
-
|
|
75
|
-
`/projects/${encodeProject(project)}/issues?state=opened&order_by=updated_at&per_page=25`,
|
|
76
|
-
);
|
|
58
|
+
return request(`/projects/${encodeProject(project)}/issues?state=opened&order_by=updated_at&per_page=25`);
|
|
77
59
|
}
|
|
78
|
-
|
|
79
60
|
/**
|
|
80
61
|
* Returns a single issue by internal ID (iid).
|
|
81
62
|
* @param {number} issueIid
|
|
82
63
|
* @param {string} [project]
|
|
83
64
|
*/
|
|
84
65
|
export async function getIssue(issueIid, project) {
|
|
85
|
-
|
|
86
|
-
`/projects/${encodeProject(project)}/issues/${issueIid}`,
|
|
87
|
-
);
|
|
66
|
+
return request(`/projects/${encodeProject(project)}/issues/${issueIid}`);
|
|
88
67
|
}
|
|
89
|
-
|
|
90
68
|
// ─── Repository ───────────────────────────────────────────────────────────────
|
|
91
|
-
|
|
92
69
|
/**
|
|
93
70
|
* Returns the recursive file tree under `srcPath`.
|
|
94
71
|
* Filters to source files only (skips build artifacts, lock files, etc.).
|
|
@@ -97,26 +74,22 @@ export async function getIssue(issueIid, project) {
|
|
|
97
74
|
* @param {string} [project]
|
|
98
75
|
*/
|
|
99
76
|
export async function getFileTree(srcPath = "src", ref = "main", project) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
.filter((item) => item.type === "blob")
|
|
116
|
-
.filter((item) => /\.(ts|tsx|js|jsx|json|css|yaml|yml|md)$/.test(item.path))
|
|
117
|
-
.map((item) => item.path);
|
|
77
|
+
const proj = encodeProject(project);
|
|
78
|
+
const allItems = [];
|
|
79
|
+
let page = 1;
|
|
80
|
+
while (true) {
|
|
81
|
+
const items = await request(`/projects/${proj}/repository/tree` +
|
|
82
|
+
`?path=${srcPath}&recursive=true&ref=${ref}&per_page=100&page=${page}`);
|
|
83
|
+
allItems.push(...items);
|
|
84
|
+
if (items.length < 100)
|
|
85
|
+
break;
|
|
86
|
+
page++;
|
|
87
|
+
}
|
|
88
|
+
return allItems
|
|
89
|
+
.filter((item) => item.type === "blob")
|
|
90
|
+
.filter((item) => /\.(ts|tsx|js|jsx|json|css|yaml|yml|md)$/.test(item.path))
|
|
91
|
+
.map((item) => item.path);
|
|
118
92
|
}
|
|
119
|
-
|
|
120
93
|
/**
|
|
121
94
|
* Returns the decoded UTF-8 content of a single file.
|
|
122
95
|
* @param {string} filePath
|
|
@@ -124,15 +97,11 @@ export async function getFileTree(srcPath = "src", ref = "main", project) {
|
|
|
124
97
|
* @param {string} [project]
|
|
125
98
|
*/
|
|
126
99
|
export async function getFileContent(filePath, ref = "main", project) {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
);
|
|
131
|
-
return Buffer.from(data.content, "base64").toString("utf-8");
|
|
100
|
+
const encoded = encodeURIComponent(filePath);
|
|
101
|
+
const data = await request(`/projects/${encodeProject(project)}/repository/files/${encoded}?ref=${ref}`);
|
|
102
|
+
return Buffer.from(data.content, "base64").toString("utf-8");
|
|
132
103
|
}
|
|
133
|
-
|
|
134
104
|
// ─── Mutations ────────────────────────────────────────────────────────────────
|
|
135
|
-
|
|
136
105
|
/**
|
|
137
106
|
* Creates a new branch from `ref`.
|
|
138
107
|
* @param {string} branchName
|
|
@@ -140,15 +109,11 @@ export async function getFileContent(filePath, ref = "main", project) {
|
|
|
140
109
|
* @param {string} [project]
|
|
141
110
|
*/
|
|
142
111
|
export async function createBranch(branchName, ref = "main", project) {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
body: JSON.stringify({ branch: branchName, ref }),
|
|
148
|
-
},
|
|
149
|
-
);
|
|
112
|
+
return request(`/projects/${encodeProject(project)}/repository/branches`, {
|
|
113
|
+
method: "POST",
|
|
114
|
+
body: JSON.stringify({ branch: branchName, ref }),
|
|
115
|
+
});
|
|
150
116
|
}
|
|
151
|
-
|
|
152
117
|
/**
|
|
153
118
|
* Commits multiple file changes in a single commit.
|
|
154
119
|
* @param {string} branch
|
|
@@ -157,39 +122,28 @@ export async function createBranch(branchName, ref = "main", project) {
|
|
|
157
122
|
* @param {string} [project]
|
|
158
123
|
*/
|
|
159
124
|
export async function commitFiles(branch, commitMessage, actions, project) {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
body: JSON.stringify({ branch, commit_message: commitMessage, actions }),
|
|
165
|
-
},
|
|
166
|
-
);
|
|
125
|
+
return request(`/projects/${encodeProject(project)}/repository/commits`, {
|
|
126
|
+
method: "POST",
|
|
127
|
+
body: JSON.stringify({ branch, commit_message: commitMessage, actions }),
|
|
128
|
+
});
|
|
167
129
|
}
|
|
168
|
-
|
|
169
130
|
/**
|
|
170
131
|
* Opens a merge request from `sourceBranch` into `targetBranch`.
|
|
171
132
|
* @param {{ sourceBranch: string, targetBranch?: string, title: string, description?: string }} opts
|
|
172
133
|
* @param {string} [project]
|
|
173
134
|
*/
|
|
174
|
-
export async function createMR(
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
title,
|
|
186
|
-
description,
|
|
187
|
-
remove_source_branch: true,
|
|
188
|
-
}),
|
|
189
|
-
},
|
|
190
|
-
);
|
|
135
|
+
export async function createMR({ sourceBranch, targetBranch = "main", title, description = "" }, project) {
|
|
136
|
+
return request(`/projects/${encodeProject(project)}/merge_requests`, {
|
|
137
|
+
method: "POST",
|
|
138
|
+
body: JSON.stringify({
|
|
139
|
+
source_branch: sourceBranch,
|
|
140
|
+
target_branch: targetBranch,
|
|
141
|
+
title,
|
|
142
|
+
description,
|
|
143
|
+
remove_source_branch: true,
|
|
144
|
+
}),
|
|
145
|
+
});
|
|
191
146
|
}
|
|
192
|
-
|
|
193
147
|
/**
|
|
194
148
|
* Returns open MRs created by Forge for a specific issue (branch prefix forge/issue-{iid}-).
|
|
195
149
|
* @param {number} issueIid
|
|
@@ -201,140 +155,104 @@ export async function createMR(
|
|
|
201
155
|
* @param {string} [project]
|
|
202
156
|
*/
|
|
203
157
|
export async function listAllForgeMRs(project) {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
);
|
|
207
|
-
return all.filter((mr) => mr.source_branch?.startsWith("forge/"));
|
|
158
|
+
const all = await request(`/projects/${encodeProject(project)}/merge_requests?state=opened&per_page=50`);
|
|
159
|
+
return all.filter((mr) => mr.source_branch?.startsWith("forge/"));
|
|
208
160
|
}
|
|
209
|
-
|
|
210
161
|
export async function listForgeMRsForIssue(issueIid, project) {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
);
|
|
214
|
-
return all.filter((mr) =>
|
|
215
|
-
mr.source_branch?.startsWith(`forge/issue-${issueIid}-`),
|
|
216
|
-
);
|
|
162
|
+
const all = await request(`/projects/${encodeProject(project)}/merge_requests?state=opened&per_page=50`);
|
|
163
|
+
return all.filter((mr) => mr.source_branch?.startsWith(`forge/issue-${issueIid}-`));
|
|
217
164
|
}
|
|
218
|
-
|
|
219
165
|
/**
|
|
220
166
|
* Returns merged MRs created by Forge for a specific issue.
|
|
221
167
|
* @param {number} issueIid
|
|
222
168
|
* @param {string} [project]
|
|
223
169
|
*/
|
|
224
170
|
export async function listMergedForgeMRsForIssue(issueIid, project) {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
);
|
|
228
|
-
return all.filter((mr) =>
|
|
229
|
-
mr.source_branch?.startsWith(`forge/issue-${issueIid}-`),
|
|
230
|
-
);
|
|
171
|
+
const all = await request(`/projects/${encodeProject(project)}/merge_requests?state=merged&per_page=50`);
|
|
172
|
+
return all.filter((mr) => mr.source_branch?.startsWith(`forge/issue-${issueIid}-`));
|
|
231
173
|
}
|
|
232
|
-
|
|
233
174
|
// ─── Jobs ─────────────────────────────────────────────────────────────────────
|
|
234
|
-
|
|
235
175
|
/**
|
|
236
176
|
* Returns the plain-text trace (log output) for a single job.
|
|
237
177
|
* @param {number} jobId
|
|
238
178
|
* @param {string} [project]
|
|
239
179
|
*/
|
|
240
180
|
export async function getJobTrace(jobId, project) {
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
181
|
+
const proj = encodeProject(project);
|
|
182
|
+
const url = `${GITLAB_API}/projects/${proj}/jobs/${jobId}/trace`;
|
|
183
|
+
const res = await fetch(url, { headers: authHeaders() });
|
|
184
|
+
if (!res.ok) {
|
|
185
|
+
const text = await res.text().catch(() => "");
|
|
186
|
+
throw new Error(`GitLab ${res.status} on jobs/${jobId}/trace: ${text}`);
|
|
187
|
+
}
|
|
188
|
+
return res.text();
|
|
249
189
|
}
|
|
250
|
-
|
|
251
190
|
// ─── MR detail + rebase ───────────────────────────────────────────────────────
|
|
252
|
-
|
|
253
191
|
/**
|
|
254
192
|
* Returns a single MR with full detail including conflict/rebase status.
|
|
255
193
|
* @param {number} mrIid
|
|
256
194
|
* @param {string} [project]
|
|
257
195
|
*/
|
|
258
196
|
export async function getMR(mrIid, project) {
|
|
259
|
-
|
|
260
|
-
`/projects/${encodeProject(project)}/merge_requests/${mrIid}`,
|
|
261
|
-
);
|
|
197
|
+
return request(`/projects/${encodeProject(project)}/merge_requests/${mrIid}`);
|
|
262
198
|
}
|
|
263
|
-
|
|
264
199
|
/**
|
|
265
200
|
* Triggers a rebase of the MR source branch onto the target branch.
|
|
266
201
|
* @param {number} mrIid
|
|
267
202
|
* @param {string} [project]
|
|
268
203
|
*/
|
|
269
204
|
export async function rebaseMR(mrIid, project) {
|
|
270
|
-
|
|
271
|
-
`/projects/${encodeProject(project)}/merge_requests/${mrIid}/rebase`,
|
|
272
|
-
{ method: "PUT" },
|
|
273
|
-
);
|
|
205
|
+
return request(`/projects/${encodeProject(project)}/merge_requests/${mrIid}/rebase`, { method: "PUT" });
|
|
274
206
|
}
|
|
275
|
-
|
|
276
207
|
/**
|
|
277
208
|
* Returns the diff for a merge request (all changed files).
|
|
278
209
|
* @param {number} mrIid
|
|
279
210
|
* @param {string} [project]
|
|
280
211
|
*/
|
|
281
212
|
export async function getMRDiffs(mrIid, project) {
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
return allDiffs;
|
|
213
|
+
const proj = encodeProject(project);
|
|
214
|
+
const allDiffs = [];
|
|
215
|
+
let page = 1;
|
|
216
|
+
while (true) {
|
|
217
|
+
const items = await request(`/projects/${proj}/merge_requests/${mrIid}/diffs?per_page=20&page=${page}`);
|
|
218
|
+
allDiffs.push(...items);
|
|
219
|
+
if (items.length < 20)
|
|
220
|
+
break;
|
|
221
|
+
page++;
|
|
222
|
+
}
|
|
223
|
+
return allDiffs;
|
|
294
224
|
}
|
|
295
|
-
|
|
296
225
|
// ─── Pipelines ────────────────────────────────────────────────────────────────
|
|
297
|
-
|
|
298
226
|
/**
|
|
299
227
|
* Returns all pipelines associated with an MR.
|
|
300
228
|
* @param {number} mrIid
|
|
301
229
|
* @param {string} [project]
|
|
302
230
|
*/
|
|
303
231
|
export async function getMRPipelines(mrIid, project) {
|
|
304
|
-
|
|
305
|
-
`/projects/${encodeProject(project)}/merge_requests/${mrIid}/pipelines`,
|
|
306
|
-
);
|
|
232
|
+
return request(`/projects/${encodeProject(project)}/merge_requests/${mrIid}/pipelines`);
|
|
307
233
|
}
|
|
308
|
-
|
|
309
234
|
/**
|
|
310
235
|
* Returns a single pipeline with full status detail.
|
|
311
236
|
* @param {number} pipelineId
|
|
312
237
|
* @param {string} [project]
|
|
313
238
|
*/
|
|
314
239
|
export async function getPipeline(pipelineId, project) {
|
|
315
|
-
|
|
316
|
-
`/projects/${encodeProject(project)}/pipelines/${pipelineId}`,
|
|
317
|
-
);
|
|
240
|
+
return request(`/projects/${encodeProject(project)}/pipelines/${pipelineId}`);
|
|
318
241
|
}
|
|
319
|
-
|
|
320
242
|
/**
|
|
321
243
|
* Returns all jobs for a pipeline.
|
|
322
244
|
* @param {number} pipelineId
|
|
323
245
|
* @param {string} [project]
|
|
324
246
|
*/
|
|
325
247
|
export async function getPipelineJobs(pipelineId, project) {
|
|
326
|
-
|
|
327
|
-
`/projects/${encodeProject(project)}/pipelines/${pipelineId}/jobs`,
|
|
328
|
-
);
|
|
248
|
+
return request(`/projects/${encodeProject(project)}/pipelines/${pipelineId}/jobs`);
|
|
329
249
|
}
|
|
330
|
-
|
|
331
250
|
/**
|
|
332
251
|
* Returns pipelines that ran on a specific commit SHA.
|
|
333
252
|
* @param {string} sha
|
|
334
253
|
* @param {string} [project]
|
|
335
254
|
*/
|
|
336
255
|
export async function getProjectPipelinesBySha(sha, project) {
|
|
337
|
-
|
|
338
|
-
`/projects/${encodeProject(project)}/pipelines?sha=${encodeURIComponent(sha)}&per_page=5`,
|
|
339
|
-
);
|
|
256
|
+
return request(`/projects/${encodeProject(project)}/pipelines?sha=${encodeURIComponent(sha)}&per_page=5`);
|
|
340
257
|
}
|
|
258
|
+
//# sourceMappingURL=gitlabClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitlabClient.js","sourceRoot":"","sources":["../../../../server/forge/core/gitlabClient.ts"],"names":[],"mappings":"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"}
|