patchwork-os 0.2.0-alpha.34 → 0.2.0-alpha.36
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 +202 -93
- package/deploy/bootstrap-new-vps.sh +12 -12
- package/deploy/bootstrap-vps.sh +6 -3
- package/deploy/deploy-landing.sh +59 -2
- package/dist/activityLog.d.ts +49 -0
- package/dist/activityLog.js +78 -0
- package/dist/activityLog.js.map +1 -1
- package/dist/approvalHttp.d.ts +25 -0
- package/dist/approvalHttp.js +74 -18
- package/dist/approvalHttp.js.map +1 -1
- package/dist/approvalInsights.d.ts +49 -0
- package/dist/approvalInsights.js +97 -0
- package/dist/approvalInsights.js.map +1 -0
- package/dist/approvalQueue.d.ts +11 -0
- package/dist/approvalQueue.js +80 -1
- package/dist/approvalQueue.js.map +1 -1
- package/dist/approvalSignals.d.ts +124 -0
- package/dist/approvalSignals.js +512 -0
- package/dist/approvalSignals.js.map +1 -0
- package/dist/automation.d.ts +37 -0
- package/dist/automation.js +105 -61
- package/dist/automation.js.map +1 -1
- package/dist/automationSuggestions.d.ts +79 -0
- package/dist/automationSuggestions.js +150 -0
- package/dist/automationSuggestions.js.map +1 -0
- package/dist/bridge.js +78 -1
- package/dist/bridge.js.map +1 -1
- package/dist/ccPermissions.d.ts +15 -0
- package/dist/ccPermissions.js +15 -0
- package/dist/ccPermissions.js.map +1 -1
- package/dist/claudeDriver.js +74 -16
- package/dist/claudeDriver.js.map +1 -1
- package/dist/commands/patchworkInit.d.ts +8 -0
- package/dist/commands/patchworkInit.js +41 -5
- package/dist/commands/patchworkInit.js.map +1 -1
- package/dist/commands/recipe.d.ts +20 -0
- package/dist/commands/recipe.js +212 -6
- package/dist/commands/recipe.js.map +1 -1
- package/dist/commands/recipeInstall.d.ts +79 -1
- package/dist/commands/recipeInstall.js +333 -16
- package/dist/commands/recipeInstall.js.map +1 -1
- package/dist/commands/tracesExport.d.ts +83 -0
- package/dist/commands/tracesExport.js +269 -0
- package/dist/commands/tracesExport.js.map +1 -0
- package/dist/commands/tracesImport.d.ts +56 -0
- package/dist/commands/tracesImport.js +161 -0
- package/dist/commands/tracesImport.js.map +1 -0
- package/dist/config.d.ts +8 -0
- package/dist/config.js +9 -1
- package/dist/config.js.map +1 -1
- package/dist/connectorRoutes.d.ts +43 -0
- package/dist/connectorRoutes.js +1023 -0
- package/dist/connectorRoutes.js.map +1 -0
- package/dist/connectors/asana.d.ts +198 -0
- package/dist/connectors/asana.js +679 -0
- package/dist/connectors/asana.js.map +1 -0
- package/dist/connectors/baseConnector.d.ts +36 -0
- package/dist/connectors/baseConnector.js +151 -28
- package/dist/connectors/baseConnector.js.map +1 -1
- package/dist/connectors/discord.d.ts +150 -0
- package/dist/connectors/discord.js +543 -0
- package/dist/connectors/discord.js.map +1 -0
- package/dist/connectors/github.js +11 -4
- package/dist/connectors/github.js.map +1 -1
- package/dist/connectors/gitlab.d.ts +180 -0
- package/dist/connectors/gitlab.js +582 -0
- package/dist/connectors/gitlab.js.map +1 -0
- package/dist/connectors/gmail.js +50 -10
- package/dist/connectors/gmail.js.map +1 -1
- package/dist/connectors/googleCalendar.js +36 -10
- package/dist/connectors/googleCalendar.js.map +1 -1
- package/dist/connectors/googleDrive.d.ts +34 -0
- package/dist/connectors/googleDrive.js +321 -0
- package/dist/connectors/googleDrive.js.map +1 -0
- package/dist/connectors/linear.js +23 -4
- package/dist/connectors/linear.js.map +1 -1
- package/dist/connectors/mcpOAuth.js +26 -2
- package/dist/connectors/mcpOAuth.js.map +1 -1
- package/dist/connectors/oauthStateStore.d.ts +31 -0
- package/dist/connectors/oauthStateStore.js +52 -0
- package/dist/connectors/oauthStateStore.js.map +1 -0
- package/dist/connectors/pagerduty.d.ts +160 -0
- package/dist/connectors/pagerduty.js +464 -0
- package/dist/connectors/pagerduty.js.map +1 -0
- package/dist/connectors/slack.d.ts +16 -1
- package/dist/connectors/slack.js +57 -5
- package/dist/connectors/slack.js.map +1 -1
- package/dist/connectors/tokenStorage.js +27 -2
- package/dist/connectors/tokenStorage.js.map +1 -1
- package/dist/connectors/zendesk.js +19 -1
- package/dist/connectors/zendesk.js.map +1 -1
- package/dist/cors.d.ts +10 -0
- package/dist/cors.js +29 -0
- package/dist/cors.js.map +1 -0
- package/dist/decisionReplay.d.ts +72 -0
- package/dist/decisionReplay.js +92 -0
- package/dist/decisionReplay.js.map +1 -0
- package/dist/decisionTraceLog.d.ts +6 -0
- package/dist/decisionTraceLog.js +54 -2
- package/dist/decisionTraceLog.js.map +1 -1
- package/dist/featureFlags.d.ts +17 -11
- package/dist/featureFlags.js +52 -47
- package/dist/featureFlags.js.map +1 -1
- package/dist/fp/automationInterpreter.js +25 -21
- package/dist/fp/automationInterpreter.js.map +1 -1
- package/dist/fp/automationState.js +4 -1
- package/dist/fp/automationState.js.map +1 -1
- package/dist/fp/policyParser.js +4 -1
- package/dist/fp/policyParser.js.map +1 -1
- package/dist/inboxRoutes.d.ts +22 -0
- package/dist/inboxRoutes.js +114 -0
- package/dist/inboxRoutes.js.map +1 -0
- package/dist/index.js +734 -144
- package/dist/index.js.map +1 -1
- package/dist/mcpRoutes.d.ts +37 -0
- package/dist/mcpRoutes.js +76 -0
- package/dist/mcpRoutes.js.map +1 -0
- package/dist/oauth.d.ts +3 -0
- package/dist/oauth.js +151 -26
- package/dist/oauth.js.map +1 -1
- package/dist/oauthRoutes.d.ts +32 -0
- package/dist/oauthRoutes.js +124 -0
- package/dist/oauthRoutes.js.map +1 -0
- package/dist/orchestrator/orchestratorBridge.js +2 -2
- package/dist/orchestrator/orchestratorBridge.js.map +1 -1
- package/dist/patchworkConfig.d.ts +7 -0
- package/dist/patchworkConfig.js.map +1 -1
- package/dist/pluginLoader.d.ts +12 -0
- package/dist/pluginLoader.js +43 -4
- package/dist/pluginLoader.js.map +1 -1
- package/dist/pluginWatcher.js +8 -3
- package/dist/pluginWatcher.js.map +1 -1
- package/dist/preToolUseHook.d.ts +12 -0
- package/dist/preToolUseHook.js +23 -0
- package/dist/preToolUseHook.js.map +1 -1
- package/dist/recipeOrchestration.d.ts +8 -0
- package/dist/recipeOrchestration.js +320 -39
- package/dist/recipeOrchestration.js.map +1 -1
- package/dist/recipeRoutes.d.ts +154 -0
- package/dist/recipeRoutes.js +1098 -0
- package/dist/recipeRoutes.js.map +1 -0
- package/dist/recipes/captureForRunlog.d.ts +27 -0
- package/dist/recipes/captureForRunlog.js +128 -0
- package/dist/recipes/captureForRunlog.js.map +1 -0
- package/dist/recipes/chainedRunner.d.ts +54 -3
- package/dist/recipes/chainedRunner.js +256 -36
- package/dist/recipes/chainedRunner.js.map +1 -1
- package/dist/recipes/compiler.js +3 -3
- package/dist/recipes/compiler.js.map +1 -1
- package/dist/recipes/detectSilentFail.d.ts +34 -0
- package/dist/recipes/detectSilentFail.js +105 -0
- package/dist/recipes/detectSilentFail.js.map +1 -0
- package/dist/recipes/installer.js +3 -3
- package/dist/recipes/installer.js.map +1 -1
- package/dist/recipes/manifest.js +21 -6
- package/dist/recipes/manifest.js.map +1 -1
- package/dist/recipes/migrationWarnings.d.ts +12 -0
- package/dist/recipes/migrationWarnings.js +44 -0
- package/dist/recipes/migrationWarnings.js.map +1 -0
- package/dist/recipes/replayRun.d.ts +62 -0
- package/dist/recipes/replayRun.js +97 -0
- package/dist/recipes/replayRun.js.map +1 -0
- package/dist/recipes/resolveRecipePath.d.ts +69 -0
- package/dist/recipes/resolveRecipePath.js +202 -0
- package/dist/recipes/resolveRecipePath.js.map +1 -0
- package/dist/recipes/scheduler.js +102 -11
- package/dist/recipes/scheduler.js.map +1 -1
- package/dist/recipes/schemaGenerator.js +3 -3
- package/dist/recipes/schemaGenerator.js.map +1 -1
- package/dist/recipes/toolRegistry.d.ts +5 -0
- package/dist/recipes/toolRegistry.js +9 -0
- package/dist/recipes/toolRegistry.js.map +1 -1
- package/dist/recipes/tools/asana.d.ts +16 -0
- package/dist/recipes/tools/asana.js +524 -0
- package/dist/recipes/tools/asana.js.map +1 -0
- package/dist/recipes/tools/discord.d.ts +18 -0
- package/dist/recipes/tools/discord.js +254 -0
- package/dist/recipes/tools/discord.js.map +1 -0
- package/dist/recipes/tools/file.d.ts +6 -0
- package/dist/recipes/tools/file.js +12 -8
- package/dist/recipes/tools/file.js.map +1 -1
- package/dist/recipes/tools/github.js +29 -4
- package/dist/recipes/tools/github.js.map +1 -1
- package/dist/recipes/tools/gitlab.d.ts +11 -0
- package/dist/recipes/tools/gitlab.js +285 -0
- package/dist/recipes/tools/gitlab.js.map +1 -0
- package/dist/recipes/tools/gmail.d.ts +1 -1
- package/dist/recipes/tools/gmail.js +230 -6
- package/dist/recipes/tools/gmail.js.map +1 -1
- package/dist/recipes/tools/googleDrive.d.ts +1 -0
- package/dist/recipes/tools/googleDrive.js +55 -0
- package/dist/recipes/tools/googleDrive.js.map +1 -0
- package/dist/recipes/tools/index.d.ts +8 -0
- package/dist/recipes/tools/index.js +8 -0
- package/dist/recipes/tools/index.js.map +1 -1
- package/dist/recipes/tools/jira.d.ts +14 -0
- package/dist/recipes/tools/jira.js +369 -0
- package/dist/recipes/tools/jira.js.map +1 -0
- package/dist/recipes/tools/linear.d.ts +2 -1
- package/dist/recipes/tools/linear.js +227 -3
- package/dist/recipes/tools/linear.js.map +1 -1
- package/dist/recipes/tools/meetingNotes.d.ts +21 -0
- package/dist/recipes/tools/meetingNotes.js +701 -0
- package/dist/recipes/tools/meetingNotes.js.map +1 -0
- package/dist/recipes/tools/pagerduty.d.ts +15 -0
- package/dist/recipes/tools/pagerduty.js +451 -0
- package/dist/recipes/tools/pagerduty.js.map +1 -0
- package/dist/recipes/tools/sentry.d.ts +12 -0
- package/dist/recipes/tools/sentry.js +73 -0
- package/dist/recipes/tools/sentry.js.map +1 -0
- package/dist/recipes/tools/slack.js +15 -5
- package/dist/recipes/tools/slack.js.map +1 -1
- package/dist/recipes/validation.js +83 -14
- package/dist/recipes/validation.js.map +1 -1
- package/dist/recipes/yamlRunner.d.ts +30 -2
- package/dist/recipes/yamlRunner.js +369 -70
- package/dist/recipes/yamlRunner.js.map +1 -1
- package/dist/recipesHttp.d.ts +76 -1
- package/dist/recipesHttp.js +474 -12
- package/dist/recipesHttp.js.map +1 -1
- package/dist/runLog.d.ts +78 -2
- package/dist/runLog.js +204 -6
- package/dist/runLog.js.map +1 -1
- package/dist/schemas/dry-run-plan.v1.json +139 -0
- package/dist/schemas/recipe.v1.json +684 -0
- package/dist/server.d.ts +79 -10
- package/dist/server.js +366 -1384
- package/dist/server.js.map +1 -1
- package/dist/ssrfGuard.d.ts +54 -0
- package/dist/ssrfGuard.js +122 -0
- package/dist/ssrfGuard.js.map +1 -0
- package/dist/streamableHttp.d.ts +39 -1
- package/dist/streamableHttp.js +126 -17
- package/dist/streamableHttp.js.map +1 -1
- package/dist/tools/getDocumentSymbols.d.ts +24 -0
- package/dist/tools/getDocumentSymbols.js +74 -8
- package/dist/tools/getDocumentSymbols.js.map +1 -1
- package/dist/tools/getSecurityAdvisories.js +10 -1
- package/dist/tools/getSecurityAdvisories.js.map +1 -1
- package/dist/tools/getSessionUsage.d.ts +3 -0
- package/dist/tools/getSessionUsage.js +3 -0
- package/dist/tools/getSessionUsage.js.map +1 -1
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.js +32 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/slackPostMessage.js +1 -1
- package/dist/tools/slackPostMessage.js.map +1 -1
- package/dist/tools/transaction.d.ts +19 -0
- package/dist/tools/transaction.js +29 -0
- package/dist/tools/transaction.js.map +1 -1
- package/dist/traceEncryption.d.ts +46 -0
- package/dist/traceEncryption.js +124 -0
- package/dist/traceEncryption.js.map +1 -0
- package/dist/transport.d.ts +39 -0
- package/dist/transport.js +88 -8
- package/dist/transport.js.map +1 -1
- package/package.json +22 -5
- package/templates/policies/README.md +72 -0
- package/templates/policies/conservative.json +14 -0
- package/templates/policies/developer.json +14 -0
- package/templates/policies/headless-ci.json +24 -0
- package/templates/policies/personal-assistant.json +15 -0
- package/templates/policies/regulated-industry.json +18 -0
- package/templates/recipes/project-health-check.yaml +1 -1
- package/templates/recipes/webhook/README.md +70 -0
- package/templates/recipes/webhook/capture-thought.yaml +26 -0
- package/templates/recipes/webhook/customer-escalation.yaml +49 -0
- package/templates/recipes/webhook/incident-intake.yaml +46 -0
- package/templates/recipes/webhook/meeting-prep.yaml +48 -0
- package/templates/recipes/webhook/morning-brief.yaml +57 -0
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitLab connector — read-only: projects, issues, merge requests, current user.
|
|
3
|
+
*
|
|
4
|
+
* OAuth 2.0 Authorization Code Grant. GitLab is a confidential client (bridge
|
|
5
|
+
* holds client secret), so PKCE is not used here. Refresh tokens are issued;
|
|
6
|
+
* access tokens default to 2 hours.
|
|
7
|
+
*
|
|
8
|
+
* Auth: standard OAuth 2.0 with `client_id` + `client_secret` + `redirect_uri`.
|
|
9
|
+
* - Env vars: GITLAB_CLIENT_ID, GITLAB_CLIENT_SECRET (mirrors asana/discord)
|
|
10
|
+
* - Optional: GITLAB_BASE_URL — override base for self-hosted GitLab.
|
|
11
|
+
* Default https://gitlab.com. `/api/v4` is appended internally.
|
|
12
|
+
* - Stored: getSecretJsonSync("gitlab") → GitLabTokens
|
|
13
|
+
* - Header: Authorization: Bearer <access_token>
|
|
14
|
+
*
|
|
15
|
+
* Read-only scopes: read_user read_api read_repository.
|
|
16
|
+
*
|
|
17
|
+
* Read tools: getCurrentUser, listProjects, listIssues, getIssue,
|
|
18
|
+
* listMergeRequests.
|
|
19
|
+
* Write methods (createIssue, createMergeRequestNote) are deferred to a
|
|
20
|
+
* follow-up PR.
|
|
21
|
+
*
|
|
22
|
+
* HTTP routes (wired in src/server.ts):
|
|
23
|
+
* GET /connections/gitlab/auth — redirect to GitLab consent
|
|
24
|
+
* GET /connections/gitlab/callback — exchange code for tokens
|
|
25
|
+
* POST /connections/gitlab/test — ping GitLab API
|
|
26
|
+
* DELETE /connections/gitlab — best-effort revoke + clear local
|
|
27
|
+
*
|
|
28
|
+
* Extends BaseConnector for unified auth, retry, rate-limit, error handling.
|
|
29
|
+
* Token refresh is delegated to BaseConnector.refreshToken() via apiCall.
|
|
30
|
+
*/
|
|
31
|
+
import { type AuthContext, BaseConnector, type ConnectorError, type ConnectorStatus, type OAuthConfig } from "./baseConnector.js";
|
|
32
|
+
/**
|
|
33
|
+
* Base host for the GitLab instance, e.g. `https://gitlab.com` (default) or
|
|
34
|
+
* `https://gitlab.example.com` for self-hosted. Trailing slash trimmed; the
|
|
35
|
+
* `/api/v4` path is appended internally so users only configure host.
|
|
36
|
+
*/
|
|
37
|
+
export declare function gitlabBaseUrl(): string;
|
|
38
|
+
export interface GitLabTokens {
|
|
39
|
+
access_token: string;
|
|
40
|
+
refresh_token?: string;
|
|
41
|
+
/** ms since epoch; absolute, not relative */
|
|
42
|
+
expires_at?: number;
|
|
43
|
+
scope?: string;
|
|
44
|
+
token_type?: string;
|
|
45
|
+
/** stored at auth time so refresh works even if env vars are absent */
|
|
46
|
+
_client_id?: string;
|
|
47
|
+
_client_secret?: string;
|
|
48
|
+
/** snapshot of base URL at connect time so refresh hits the right host */
|
|
49
|
+
_base_url?: string;
|
|
50
|
+
username?: string;
|
|
51
|
+
user_id?: number;
|
|
52
|
+
email?: string;
|
|
53
|
+
connected_at: string;
|
|
54
|
+
}
|
|
55
|
+
export interface GitLabUser {
|
|
56
|
+
id: number;
|
|
57
|
+
username: string;
|
|
58
|
+
name?: string;
|
|
59
|
+
email?: string;
|
|
60
|
+
avatar_url?: string | null;
|
|
61
|
+
}
|
|
62
|
+
export interface GitLabProject {
|
|
63
|
+
id: number;
|
|
64
|
+
name: string;
|
|
65
|
+
path_with_namespace: string;
|
|
66
|
+
description?: string | null;
|
|
67
|
+
web_url?: string;
|
|
68
|
+
default_branch?: string | null;
|
|
69
|
+
visibility?: string;
|
|
70
|
+
archived?: boolean;
|
|
71
|
+
}
|
|
72
|
+
export interface GitLabIssue {
|
|
73
|
+
id: number;
|
|
74
|
+
iid: number;
|
|
75
|
+
project_id: number;
|
|
76
|
+
title: string;
|
|
77
|
+
description?: string | null;
|
|
78
|
+
state: string;
|
|
79
|
+
web_url?: string;
|
|
80
|
+
author?: {
|
|
81
|
+
id: number;
|
|
82
|
+
username: string;
|
|
83
|
+
name?: string;
|
|
84
|
+
};
|
|
85
|
+
assignees?: Array<{
|
|
86
|
+
id: number;
|
|
87
|
+
username: string;
|
|
88
|
+
name?: string;
|
|
89
|
+
}>;
|
|
90
|
+
labels?: string[];
|
|
91
|
+
created_at?: string;
|
|
92
|
+
updated_at?: string;
|
|
93
|
+
}
|
|
94
|
+
export interface GitLabMergeRequest {
|
|
95
|
+
id: number;
|
|
96
|
+
iid: number;
|
|
97
|
+
project_id: number;
|
|
98
|
+
title: string;
|
|
99
|
+
description?: string | null;
|
|
100
|
+
state: string;
|
|
101
|
+
source_branch?: string;
|
|
102
|
+
target_branch?: string;
|
|
103
|
+
web_url?: string;
|
|
104
|
+
author?: {
|
|
105
|
+
id: number;
|
|
106
|
+
username: string;
|
|
107
|
+
name?: string;
|
|
108
|
+
};
|
|
109
|
+
draft?: boolean;
|
|
110
|
+
merge_status?: string;
|
|
111
|
+
created_at?: string;
|
|
112
|
+
updated_at?: string;
|
|
113
|
+
}
|
|
114
|
+
export declare function loadTokens(): GitLabTokens | null;
|
|
115
|
+
export declare function saveTokens(tokens: GitLabTokens): void;
|
|
116
|
+
export declare function clearTokens(): void;
|
|
117
|
+
export declare function isConnected(): boolean;
|
|
118
|
+
export declare class GitLabConnector extends BaseConnector {
|
|
119
|
+
readonly providerName = "gitlab";
|
|
120
|
+
protected getOAuthConfig(): OAuthConfig | null;
|
|
121
|
+
authenticate(): Promise<AuthContext>;
|
|
122
|
+
/**
|
|
123
|
+
* Persist refreshed tokens after BaseConnector.refreshToken() updates
|
|
124
|
+
* `this.auth`. Mirror to our GitLab-specific JSON so loadTokens() keeps
|
|
125
|
+
* working for HTTP probes.
|
|
126
|
+
*/
|
|
127
|
+
saveTokens(): Promise<void>;
|
|
128
|
+
healthCheck(): Promise<{
|
|
129
|
+
ok: boolean;
|
|
130
|
+
error?: ConnectorError;
|
|
131
|
+
}>;
|
|
132
|
+
normalizeError(error: unknown): ConnectorError;
|
|
133
|
+
getStatus(): ConnectorStatus;
|
|
134
|
+
getCurrentUser(): Promise<GitLabUser>;
|
|
135
|
+
listProjects(params?: {
|
|
136
|
+
membership?: boolean;
|
|
137
|
+
owned?: boolean;
|
|
138
|
+
search?: string;
|
|
139
|
+
limit?: number;
|
|
140
|
+
}): Promise<GitLabProject[]>;
|
|
141
|
+
listIssues(params?: {
|
|
142
|
+
projectId?: string | number;
|
|
143
|
+
assignedToMe?: boolean;
|
|
144
|
+
state?: "opened" | "closed" | "all";
|
|
145
|
+
limit?: number;
|
|
146
|
+
}): Promise<GitLabIssue[]>;
|
|
147
|
+
getIssue(projectId: string | number, issueIid: number): Promise<GitLabIssue>;
|
|
148
|
+
listMergeRequests(params?: {
|
|
149
|
+
projectId?: string | number;
|
|
150
|
+
state?: "opened" | "closed" | "merged" | "all";
|
|
151
|
+
scope?: "created_by_me" | "assigned_to_me" | "all";
|
|
152
|
+
limit?: number;
|
|
153
|
+
}): Promise<GitLabMergeRequest[]>;
|
|
154
|
+
private buildHeaders;
|
|
155
|
+
private captureRateLimit;
|
|
156
|
+
}
|
|
157
|
+
export declare function getGitLabConnector(): GitLabConnector;
|
|
158
|
+
export { getGitLabConnector as gitlab };
|
|
159
|
+
export interface ConnectorHandlerResult {
|
|
160
|
+
status: number;
|
|
161
|
+
body: string;
|
|
162
|
+
contentType?: string;
|
|
163
|
+
redirect?: string;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* GET /connections/gitlab/auth — redirect to GitLab consent screen.
|
|
167
|
+
*/
|
|
168
|
+
export declare function handleGitLabAuthorize(): ConnectorHandlerResult;
|
|
169
|
+
/**
|
|
170
|
+
* GET /connections/gitlab/callback — exchange code for tokens.
|
|
171
|
+
*/
|
|
172
|
+
export declare function handleGitLabCallback(code: string | null, state: string | null, error: string | null): Promise<ConnectorHandlerResult>;
|
|
173
|
+
/**
|
|
174
|
+
* POST /connections/gitlab/test — verify stored token works.
|
|
175
|
+
*/
|
|
176
|
+
export declare function handleGitLabTest(): Promise<ConnectorHandlerResult>;
|
|
177
|
+
/**
|
|
178
|
+
* DELETE /connections/gitlab — best-effort revoke at GitLab + drop locally.
|
|
179
|
+
*/
|
|
180
|
+
export declare function handleGitLabDisconnect(): Promise<ConnectorHandlerResult>;
|