@kilnci/cli 0.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/bin/kiln.js +5 -0
- package/dist/base-command.d.ts +21 -0
- package/dist/base-command.d.ts.map +1 -0
- package/dist/base-command.js +30 -0
- package/dist/base-command.js.map +1 -0
- package/dist/client.d.ts +166 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +321 -0
- package/dist/client.js.map +1 -0
- package/dist/commands/artifacts.d.ts +17 -0
- package/dist/commands/artifacts.d.ts.map +1 -0
- package/dist/commands/artifacts.js +96 -0
- package/dist/commands/artifacts.js.map +1 -0
- package/dist/commands/build.d.ts +15 -0
- package/dist/commands/build.d.ts.map +1 -0
- package/dist/commands/build.js +79 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/cancel.d.ts +10 -0
- package/dist/commands/cancel.d.ts.map +1 -0
- package/dist/commands/cancel.js +27 -0
- package/dist/commands/cancel.js.map +1 -0
- package/dist/commands/login.d.ts +18 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +188 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +7 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +17 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/logs.d.ts +18 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +139 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/org/create.d.ts +13 -0
- package/dist/commands/org/create.d.ts.map +1 -0
- package/dist/commands/org/create.js +39 -0
- package/dist/commands/org/create.js.map +1 -0
- package/dist/commands/org/delete.d.ts +13 -0
- package/dist/commands/org/delete.d.ts.map +1 -0
- package/dist/commands/org/delete.js +44 -0
- package/dist/commands/org/delete.js.map +1 -0
- package/dist/commands/org/gitlab/remove.d.ts +13 -0
- package/dist/commands/org/gitlab/remove.d.ts.map +1 -0
- package/dist/commands/org/gitlab/remove.js +51 -0
- package/dist/commands/org/gitlab/remove.js.map +1 -0
- package/dist/commands/org/gitlab/setup.d.ts +17 -0
- package/dist/commands/org/gitlab/setup.d.ts.map +1 -0
- package/dist/commands/org/gitlab/setup.js +83 -0
- package/dist/commands/org/gitlab/setup.js.map +1 -0
- package/dist/commands/org/gitlab/show.d.ts +10 -0
- package/dist/commands/org/gitlab/show.d.ts.map +1 -0
- package/dist/commands/org/gitlab/show.js +54 -0
- package/dist/commands/org/gitlab/show.js.map +1 -0
- package/dist/commands/org/gitlab/sync.d.ts +10 -0
- package/dist/commands/org/gitlab/sync.d.ts.map +1 -0
- package/dist/commands/org/gitlab/sync.js +38 -0
- package/dist/commands/org/gitlab/sync.js.map +1 -0
- package/dist/commands/org/index.d.ts +11 -0
- package/dist/commands/org/index.d.ts.map +1 -0
- package/dist/commands/org/index.js +46 -0
- package/dist/commands/org/index.js.map +1 -0
- package/dist/commands/org/repos/disable.d.ts +11 -0
- package/dist/commands/org/repos/disable.d.ts.map +1 -0
- package/dist/commands/org/repos/disable.js +32 -0
- package/dist/commands/org/repos/disable.js.map +1 -0
- package/dist/commands/org/repos/enable.d.ts +11 -0
- package/dist/commands/org/repos/enable.d.ts.map +1 -0
- package/dist/commands/org/repos/enable.js +32 -0
- package/dist/commands/org/repos/enable.js.map +1 -0
- package/dist/commands/org/repos.d.ts +14 -0
- package/dist/commands/org/repos.d.ts.map +1 -0
- package/dist/commands/org/repos.js +54 -0
- package/dist/commands/org/repos.js.map +1 -0
- package/dist/commands/status.d.ts +17 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +73 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/workers/create.d.ts +15 -0
- package/dist/commands/workers/create.d.ts.map +1 -0
- package/dist/commands/workers/create.js +74 -0
- package/dist/commands/workers/create.js.map +1 -0
- package/dist/commands/workers/delete.d.ts +13 -0
- package/dist/commands/workers/delete.d.ts.map +1 -0
- package/dist/commands/workers/delete.js +40 -0
- package/dist/commands/workers/delete.js.map +1 -0
- package/dist/commands/workers/index.d.ts +10 -0
- package/dist/commands/workers/index.d.ts.map +1 -0
- package/dist/commands/workers/index.js +42 -0
- package/dist/commands/workers/index.js.map +1 -0
- package/dist/commands/workers/logs.d.ts +11 -0
- package/dist/commands/workers/logs.d.ts.map +1 -0
- package/dist/commands/workers/logs.js +54 -0
- package/dist/commands/workers/logs.js.map +1 -0
- package/dist/commands/workers/revoke.d.ts +10 -0
- package/dist/commands/workers/revoke.d.ts.map +1 -0
- package/dist/commands/workers/revoke.js +27 -0
- package/dist/commands/workers/revoke.js.map +1 -0
- package/dist/commands/workers/start.d.ts +19 -0
- package/dist/commands/workers/start.d.ts.map +1 -0
- package/dist/commands/workers/start.js +329 -0
- package/dist/commands/workers/start.js.map +1 -0
- package/dist/commands/workers/status.d.ts +7 -0
- package/dist/commands/workers/status.d.ts.map +1 -0
- package/dist/commands/workers/status.js +75 -0
- package/dist/commands/workers/status.js.map +1 -0
- package/dist/commands/workers/stop.d.ts +10 -0
- package/dist/commands/workers/stop.d.ts.map +1 -0
- package/dist/commands/workers/stop.js +79 -0
- package/dist/commands/workers/stop.js.map +1 -0
- package/dist/commands/workers/token.d.ts +13 -0
- package/dist/commands/workers/token.d.ts.map +1 -0
- package/dist/commands/workers/token.js +38 -0
- package/dist/commands/workers/token.js.map +1 -0
- package/dist/config.d.ts +38 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +68 -0
- package/dist/config.js.map +1 -0
- package/dist/formatters.d.ts +42 -0
- package/dist/formatters.d.ts.map +1 -0
- package/dist/formatters.js +194 -0
- package/dist/formatters.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/workers-helpers.d.ts +20 -0
- package/dist/lib/workers-helpers.d.ts.map +1 -0
- package/dist/lib/workers-helpers.js +51 -0
- package/dist/lib/workers-helpers.js.map +1 -0
- package/package.json +56 -0
package/bin/kiln.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
import { type Config } from './config.js';
|
|
3
|
+
import { ApiClient } from './client.js';
|
|
4
|
+
/**
|
|
5
|
+
* Base command class with common functionality for authenticated commands.
|
|
6
|
+
*/
|
|
7
|
+
export declare abstract class BaseCommand extends Command {
|
|
8
|
+
protected appConfig: Config;
|
|
9
|
+
protected client: ApiClient;
|
|
10
|
+
/**
|
|
11
|
+
* Initialize the command with authentication.
|
|
12
|
+
* Call this at the start of run() for commands that require auth.
|
|
13
|
+
*/
|
|
14
|
+
protected requireAuth(): void;
|
|
15
|
+
/**
|
|
16
|
+
* Handle API errors consistently.
|
|
17
|
+
* Use this in catch blocks to format error messages.
|
|
18
|
+
*/
|
|
19
|
+
protected handleError(error: unknown, action: string): never;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=base-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-command.d.ts","sourceRoot":"","sources":["../src/base-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;GAEG;AACH,8BAAsB,WAAY,SAAQ,OAAO;IAC/C,SAAS,CAAC,SAAS,EAAG,MAAM,CAAC;IAC7B,SAAS,CAAC,MAAM,EAAG,SAAS,CAAC;IAE7B;;;OAGG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;IAU7B;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK;CAI7D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
import { loadConfig } from './config.js';
|
|
3
|
+
import { ApiClient } from './client.js';
|
|
4
|
+
/**
|
|
5
|
+
* Base command class with common functionality for authenticated commands.
|
|
6
|
+
*/
|
|
7
|
+
export class BaseCommand extends Command {
|
|
8
|
+
appConfig;
|
|
9
|
+
client;
|
|
10
|
+
/**
|
|
11
|
+
* Initialize the command with authentication.
|
|
12
|
+
* Call this at the start of run() for commands that require auth.
|
|
13
|
+
*/
|
|
14
|
+
requireAuth() {
|
|
15
|
+
this.appConfig = loadConfig();
|
|
16
|
+
if (!this.appConfig.token) {
|
|
17
|
+
this.error('Authentication required. Set KILN_TOKEN or configure ~/.kiln.yml');
|
|
18
|
+
}
|
|
19
|
+
this.client = new ApiClient(this.appConfig);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Handle API errors consistently.
|
|
23
|
+
* Use this in catch blocks to format error messages.
|
|
24
|
+
*/
|
|
25
|
+
handleError(error, action) {
|
|
26
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
27
|
+
this.error(`Failed to ${action}: ${message}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=base-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-command.js","sourceRoot":"","sources":["../src/base-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,UAAU,EAAe,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;GAEG;AACH,MAAM,OAAgB,WAAY,SAAQ,OAAO;IACrC,SAAS,CAAU;IACnB,MAAM,CAAa;IAE7B;;;OAGG;IACO,WAAW;QACnB,IAAI,CAAC,SAAS,GAAG,UAAU,EAAE,CAAC;QAE9B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACO,WAAW,CAAC,KAAc,EAAE,MAAc;QAClD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACzE,IAAI,CAAC,KAAK,CAAC,aAAa,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;CACF"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import type { Build, Worker, WorkerCreate, WorkerCreated, Organization, OrganizationCreate, OrganizationUpdate, GitLabIntegration, GitLabIntegrationConfig, Repository, RepositoryUpdate } from '@kilnci/shared';
|
|
2
|
+
import type { Config } from './config.js';
|
|
3
|
+
interface CreateBuildInput {
|
|
4
|
+
repositoryId: string;
|
|
5
|
+
branch?: string;
|
|
6
|
+
}
|
|
7
|
+
interface PaginatedResponse<T> {
|
|
8
|
+
items: T[];
|
|
9
|
+
total: number;
|
|
10
|
+
page: number;
|
|
11
|
+
pageSize: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* HTTP client for the Kiln API
|
|
15
|
+
*/
|
|
16
|
+
export declare class ApiClient {
|
|
17
|
+
private baseUrl;
|
|
18
|
+
private token?;
|
|
19
|
+
constructor(config: Config);
|
|
20
|
+
/**
|
|
21
|
+
* Create a new build
|
|
22
|
+
*/
|
|
23
|
+
createBuild(request: CreateBuildInput): Promise<Build>;
|
|
24
|
+
/**
|
|
25
|
+
* Get a build by ID
|
|
26
|
+
*/
|
|
27
|
+
getBuild(id: string): Promise<Build>;
|
|
28
|
+
/**
|
|
29
|
+
* List builds with optional filters
|
|
30
|
+
*/
|
|
31
|
+
listBuilds(params?: {
|
|
32
|
+
page?: number;
|
|
33
|
+
pageSize?: number;
|
|
34
|
+
repo?: string;
|
|
35
|
+
branch?: string;
|
|
36
|
+
status?: string;
|
|
37
|
+
}): Promise<PaginatedResponse<Build>>;
|
|
38
|
+
/**
|
|
39
|
+
* Cancel a build
|
|
40
|
+
*/
|
|
41
|
+
cancelBuild(id: string): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* List all workers
|
|
44
|
+
*/
|
|
45
|
+
listWorkers(): Promise<Worker[]>;
|
|
46
|
+
/**
|
|
47
|
+
* Create a new worker (admin only)
|
|
48
|
+
* Returns the worker with a one-time registration token
|
|
49
|
+
*/
|
|
50
|
+
createWorker(data: WorkerCreate): Promise<WorkerCreated>;
|
|
51
|
+
/**
|
|
52
|
+
* Delete a worker by ID
|
|
53
|
+
*/
|
|
54
|
+
deleteWorker(id: string): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Revoke all sessions for a worker
|
|
57
|
+
*/
|
|
58
|
+
revokeWorkerSessions(id: string): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Regenerate registration token for a pending worker
|
|
61
|
+
*/
|
|
62
|
+
regenerateWorkerToken(id: string, tokenTtlMinutes?: number): Promise<{
|
|
63
|
+
workerToken: string;
|
|
64
|
+
tokenExpiresAt: string;
|
|
65
|
+
}>;
|
|
66
|
+
/**
|
|
67
|
+
* List organizations
|
|
68
|
+
*/
|
|
69
|
+
listOrganizations(params?: {
|
|
70
|
+
page?: number;
|
|
71
|
+
pageSize?: number;
|
|
72
|
+
}): Promise<PaginatedResponse<Organization>>;
|
|
73
|
+
/**
|
|
74
|
+
* Get an organization by slug
|
|
75
|
+
*/
|
|
76
|
+
getOrganization(slug: string): Promise<Organization>;
|
|
77
|
+
/**
|
|
78
|
+
* Create an organization
|
|
79
|
+
*/
|
|
80
|
+
createOrganization(data: OrganizationCreate): Promise<Organization>;
|
|
81
|
+
/**
|
|
82
|
+
* Update an organization
|
|
83
|
+
*/
|
|
84
|
+
updateOrganization(slug: string, data: OrganizationUpdate): Promise<Organization>;
|
|
85
|
+
/**
|
|
86
|
+
* Delete an organization
|
|
87
|
+
*/
|
|
88
|
+
deleteOrganization(slug: string): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Get GitLab integration config
|
|
91
|
+
*/
|
|
92
|
+
getGitLabIntegration(orgSlug: string): Promise<GitLabIntegration>;
|
|
93
|
+
/**
|
|
94
|
+
* Configure GitLab integration
|
|
95
|
+
*/
|
|
96
|
+
configureGitLabIntegration(orgSlug: string, config: GitLabIntegrationConfig): Promise<GitLabIntegration>;
|
|
97
|
+
/**
|
|
98
|
+
* Delete GitLab integration
|
|
99
|
+
*/
|
|
100
|
+
deleteGitLabIntegration(orgSlug: string): Promise<void>;
|
|
101
|
+
/**
|
|
102
|
+
* Sync repositories from GitLab
|
|
103
|
+
*/
|
|
104
|
+
syncGitLabRepositories(orgSlug: string): Promise<{
|
|
105
|
+
synced: number;
|
|
106
|
+
removed: number;
|
|
107
|
+
repositories: Repository[];
|
|
108
|
+
}>;
|
|
109
|
+
/**
|
|
110
|
+
* List repositories for an organization
|
|
111
|
+
*/
|
|
112
|
+
listRepositories(orgSlug: string, params?: {
|
|
113
|
+
page?: number;
|
|
114
|
+
pageSize?: number;
|
|
115
|
+
}): Promise<PaginatedResponse<Repository>>;
|
|
116
|
+
/**
|
|
117
|
+
* Update repository configuration
|
|
118
|
+
*/
|
|
119
|
+
updateRepository(orgSlug: string, repoId: string, data: RepositoryUpdate): Promise<Repository>;
|
|
120
|
+
/**
|
|
121
|
+
* Get the download URL for build logs
|
|
122
|
+
*/
|
|
123
|
+
getLogsDownloadUrl(buildId: string): Promise<string>;
|
|
124
|
+
/**
|
|
125
|
+
* Get the download URL for workspace artifact
|
|
126
|
+
*/
|
|
127
|
+
getWorkspaceDownloadUrl(buildId: string): Promise<string>;
|
|
128
|
+
/**
|
|
129
|
+
* Download a file from a URL and return its content as a buffer
|
|
130
|
+
*/
|
|
131
|
+
downloadFile(url: string): Promise<Buffer>;
|
|
132
|
+
private get;
|
|
133
|
+
private post;
|
|
134
|
+
private put;
|
|
135
|
+
private delete;
|
|
136
|
+
private getHeaders;
|
|
137
|
+
private handleResponse;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* WebSocket client for real-time log streaming
|
|
141
|
+
*/
|
|
142
|
+
export declare class LogStreamClient {
|
|
143
|
+
private baseUrl;
|
|
144
|
+
private token?;
|
|
145
|
+
private ws?;
|
|
146
|
+
constructor(config: Config);
|
|
147
|
+
/**
|
|
148
|
+
* Connect to a build's log stream
|
|
149
|
+
*/
|
|
150
|
+
connect(buildId: string, handlers: {
|
|
151
|
+
onLog?: (line: {
|
|
152
|
+
timestamp: Date;
|
|
153
|
+
stream: string;
|
|
154
|
+
line: string;
|
|
155
|
+
}) => void;
|
|
156
|
+
onStatus?: (status: string) => void;
|
|
157
|
+
onError?: (error: string) => void;
|
|
158
|
+
onClose?: () => void;
|
|
159
|
+
}): void;
|
|
160
|
+
/**
|
|
161
|
+
* Close the WebSocket connection
|
|
162
|
+
*/
|
|
163
|
+
close(): void;
|
|
164
|
+
}
|
|
165
|
+
export {};
|
|
166
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
import WebSocket from 'ws';
|
|
2
|
+
/**
|
|
3
|
+
* HTTP client for the Kiln API
|
|
4
|
+
*/
|
|
5
|
+
export class ApiClient {
|
|
6
|
+
baseUrl;
|
|
7
|
+
token;
|
|
8
|
+
constructor(config) {
|
|
9
|
+
this.baseUrl = config.url.replace(/\/$/, '');
|
|
10
|
+
this.token = config.token;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Create a new build
|
|
14
|
+
*/
|
|
15
|
+
async createBuild(request) {
|
|
16
|
+
return this.post('/api/builds', request);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get a build by ID
|
|
20
|
+
*/
|
|
21
|
+
async getBuild(id) {
|
|
22
|
+
return this.get(`/api/builds/${id}`);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* List builds with optional filters
|
|
26
|
+
*/
|
|
27
|
+
async listBuilds(params) {
|
|
28
|
+
const query = new URLSearchParams();
|
|
29
|
+
if (params?.page)
|
|
30
|
+
query.set('page', params.page.toString());
|
|
31
|
+
if (params?.pageSize)
|
|
32
|
+
query.set('pageSize', params.pageSize.toString());
|
|
33
|
+
if (params?.repo)
|
|
34
|
+
query.set('repo', params.repo);
|
|
35
|
+
if (params?.branch)
|
|
36
|
+
query.set('branch', params.branch);
|
|
37
|
+
if (params?.status)
|
|
38
|
+
query.set('status', params.status);
|
|
39
|
+
const queryString = query.toString();
|
|
40
|
+
const url = queryString ? `/api/builds?${queryString}` : '/api/builds';
|
|
41
|
+
return this.get(url);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Cancel a build
|
|
45
|
+
*/
|
|
46
|
+
async cancelBuild(id) {
|
|
47
|
+
await this.post(`/api/builds/${id}/cancel`, {});
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* List all workers
|
|
51
|
+
*/
|
|
52
|
+
async listWorkers() {
|
|
53
|
+
return this.get('/api/workers');
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Create a new worker (admin only)
|
|
57
|
+
* Returns the worker with a one-time registration token
|
|
58
|
+
*/
|
|
59
|
+
async createWorker(data) {
|
|
60
|
+
return this.post('/api/workers', data);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Delete a worker by ID
|
|
64
|
+
*/
|
|
65
|
+
async deleteWorker(id) {
|
|
66
|
+
await this.delete(`/api/workers/${id}`);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Revoke all sessions for a worker
|
|
70
|
+
*/
|
|
71
|
+
async revokeWorkerSessions(id) {
|
|
72
|
+
await this.post(`/api/workers/${id}/revoke`, {});
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Regenerate registration token for a pending worker
|
|
76
|
+
*/
|
|
77
|
+
async regenerateWorkerToken(id, tokenTtlMinutes) {
|
|
78
|
+
return this.post(`/api/workers/${id}/token`, { tokenTtlMinutes });
|
|
79
|
+
}
|
|
80
|
+
// ============================================
|
|
81
|
+
// Organization methods
|
|
82
|
+
// ============================================
|
|
83
|
+
/**
|
|
84
|
+
* List organizations
|
|
85
|
+
*/
|
|
86
|
+
async listOrganizations(params) {
|
|
87
|
+
const query = new URLSearchParams();
|
|
88
|
+
if (params?.page)
|
|
89
|
+
query.set('page', params.page.toString());
|
|
90
|
+
if (params?.pageSize)
|
|
91
|
+
query.set('pageSize', params.pageSize.toString());
|
|
92
|
+
const queryString = query.toString();
|
|
93
|
+
const url = queryString ? `/api/organizations?${queryString}` : '/api/organizations';
|
|
94
|
+
return this.get(url);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get an organization by slug
|
|
98
|
+
*/
|
|
99
|
+
async getOrganization(slug) {
|
|
100
|
+
return this.get(`/api/organizations/${slug}`);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Create an organization
|
|
104
|
+
*/
|
|
105
|
+
async createOrganization(data) {
|
|
106
|
+
return this.post('/api/organizations', data);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Update an organization
|
|
110
|
+
*/
|
|
111
|
+
async updateOrganization(slug, data) {
|
|
112
|
+
return this.put(`/api/organizations/${slug}`, data);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Delete an organization
|
|
116
|
+
*/
|
|
117
|
+
async deleteOrganization(slug) {
|
|
118
|
+
await this.delete(`/api/organizations/${slug}`);
|
|
119
|
+
}
|
|
120
|
+
// ============================================
|
|
121
|
+
// GitLab integration methods
|
|
122
|
+
// ============================================
|
|
123
|
+
/**
|
|
124
|
+
* Get GitLab integration config
|
|
125
|
+
*/
|
|
126
|
+
async getGitLabIntegration(orgSlug) {
|
|
127
|
+
return this.get(`/api/organizations/${orgSlug}/gitlab`);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Configure GitLab integration
|
|
131
|
+
*/
|
|
132
|
+
async configureGitLabIntegration(orgSlug, config) {
|
|
133
|
+
return this.put(`/api/organizations/${orgSlug}/gitlab`, config);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Delete GitLab integration
|
|
137
|
+
*/
|
|
138
|
+
async deleteGitLabIntegration(orgSlug) {
|
|
139
|
+
await this.delete(`/api/organizations/${orgSlug}/gitlab`);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Sync repositories from GitLab
|
|
143
|
+
*/
|
|
144
|
+
async syncGitLabRepositories(orgSlug) {
|
|
145
|
+
return this.post(`/api/organizations/${orgSlug}/gitlab/sync`, {});
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* List repositories for an organization
|
|
149
|
+
*/
|
|
150
|
+
async listRepositories(orgSlug, params) {
|
|
151
|
+
const query = new URLSearchParams();
|
|
152
|
+
if (params?.page)
|
|
153
|
+
query.set('page', params.page.toString());
|
|
154
|
+
if (params?.pageSize)
|
|
155
|
+
query.set('pageSize', params.pageSize.toString());
|
|
156
|
+
const queryString = query.toString();
|
|
157
|
+
const url = queryString
|
|
158
|
+
? `/api/organizations/${orgSlug}/repos?${queryString}`
|
|
159
|
+
: `/api/organizations/${orgSlug}/repos`;
|
|
160
|
+
return this.get(url);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Update repository configuration
|
|
164
|
+
*/
|
|
165
|
+
async updateRepository(orgSlug, repoId, data) {
|
|
166
|
+
return this.put(`/api/organizations/${orgSlug}/repos/${repoId}`, data);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Get the download URL for build logs
|
|
170
|
+
*/
|
|
171
|
+
async getLogsDownloadUrl(buildId) {
|
|
172
|
+
const response = await this.get(`/api/builds/${buildId}/logs/download`);
|
|
173
|
+
return response.downloadUrl;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Get the download URL for workspace artifact
|
|
177
|
+
*/
|
|
178
|
+
async getWorkspaceDownloadUrl(buildId) {
|
|
179
|
+
const response = await this.get(`/api/builds/${buildId}/artifacts/workspace`);
|
|
180
|
+
return response.downloadUrl;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Download a file from a URL and return its content as a buffer
|
|
184
|
+
*/
|
|
185
|
+
async downloadFile(url) {
|
|
186
|
+
const response = await fetch(url);
|
|
187
|
+
if (!response.ok) {
|
|
188
|
+
throw new Error(`Failed to download: HTTP ${response.status}`);
|
|
189
|
+
}
|
|
190
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
191
|
+
return Buffer.from(arrayBuffer);
|
|
192
|
+
}
|
|
193
|
+
async get(path) {
|
|
194
|
+
const response = await fetch(`${this.baseUrl}${path}`, {
|
|
195
|
+
method: 'GET',
|
|
196
|
+
headers: this.getHeaders(),
|
|
197
|
+
});
|
|
198
|
+
return this.handleResponse(response);
|
|
199
|
+
}
|
|
200
|
+
async post(path, body) {
|
|
201
|
+
const response = await fetch(`${this.baseUrl}${path}`, {
|
|
202
|
+
method: 'POST',
|
|
203
|
+
headers: {
|
|
204
|
+
...this.getHeaders(),
|
|
205
|
+
'Content-Type': 'application/json',
|
|
206
|
+
},
|
|
207
|
+
body: JSON.stringify(body),
|
|
208
|
+
});
|
|
209
|
+
return this.handleResponse(response);
|
|
210
|
+
}
|
|
211
|
+
async put(path, body) {
|
|
212
|
+
const response = await fetch(`${this.baseUrl}${path}`, {
|
|
213
|
+
method: 'PUT',
|
|
214
|
+
headers: {
|
|
215
|
+
...this.getHeaders(),
|
|
216
|
+
'Content-Type': 'application/json',
|
|
217
|
+
},
|
|
218
|
+
body: JSON.stringify(body),
|
|
219
|
+
});
|
|
220
|
+
return this.handleResponse(response);
|
|
221
|
+
}
|
|
222
|
+
async delete(path) {
|
|
223
|
+
const response = await fetch(`${this.baseUrl}${path}`, {
|
|
224
|
+
method: 'DELETE',
|
|
225
|
+
headers: this.getHeaders(),
|
|
226
|
+
});
|
|
227
|
+
if (!response.ok && response.status !== 204) {
|
|
228
|
+
const error = (await response.json());
|
|
229
|
+
throw new Error(error.message || `HTTP ${response.status}`);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
getHeaders() {
|
|
233
|
+
const headers = {};
|
|
234
|
+
if (this.token) {
|
|
235
|
+
headers['Authorization'] = `Bearer ${this.token}`;
|
|
236
|
+
}
|
|
237
|
+
return headers;
|
|
238
|
+
}
|
|
239
|
+
async handleResponse(response) {
|
|
240
|
+
if (!response.ok) {
|
|
241
|
+
const error = (await response.json());
|
|
242
|
+
throw new Error(error.message || `HTTP ${response.status}`);
|
|
243
|
+
}
|
|
244
|
+
return response.json();
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* WebSocket client for real-time log streaming
|
|
249
|
+
*/
|
|
250
|
+
export class LogStreamClient {
|
|
251
|
+
baseUrl;
|
|
252
|
+
token;
|
|
253
|
+
ws;
|
|
254
|
+
constructor(config) {
|
|
255
|
+
// Convert http(s) to ws(s)
|
|
256
|
+
this.baseUrl = config.url.replace(/^http/, 'ws').replace(/\/$/, '');
|
|
257
|
+
this.token = config.token;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Connect to a build's log stream
|
|
261
|
+
*/
|
|
262
|
+
connect(buildId, handlers) {
|
|
263
|
+
const url = `${this.baseUrl}/api/builds/${buildId}/logs?token=${this.token}`;
|
|
264
|
+
this.ws = new WebSocket(url);
|
|
265
|
+
this.ws.on('open', () => {
|
|
266
|
+
// Connection established
|
|
267
|
+
});
|
|
268
|
+
this.ws.on('message', (data) => {
|
|
269
|
+
try {
|
|
270
|
+
const message = JSON.parse(data.toString());
|
|
271
|
+
switch (message.type) {
|
|
272
|
+
case 'log':
|
|
273
|
+
if (handlers.onLog) {
|
|
274
|
+
const payload = message.payload;
|
|
275
|
+
handlers.onLog({
|
|
276
|
+
timestamp: new Date(payload.timestamp),
|
|
277
|
+
stream: payload.stream,
|
|
278
|
+
line: payload.line,
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
break;
|
|
282
|
+
case 'status':
|
|
283
|
+
if (handlers.onStatus) {
|
|
284
|
+
const payload = message.payload;
|
|
285
|
+
handlers.onStatus(payload.status);
|
|
286
|
+
}
|
|
287
|
+
break;
|
|
288
|
+
case 'error':
|
|
289
|
+
if (handlers.onError) {
|
|
290
|
+
const payload = message.payload;
|
|
291
|
+
handlers.onError(payload.error);
|
|
292
|
+
}
|
|
293
|
+
break;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
catch {
|
|
297
|
+
// Ignore invalid messages
|
|
298
|
+
}
|
|
299
|
+
});
|
|
300
|
+
this.ws.on('close', () => {
|
|
301
|
+
if (handlers.onClose) {
|
|
302
|
+
handlers.onClose();
|
|
303
|
+
}
|
|
304
|
+
});
|
|
305
|
+
this.ws.on('error', (error) => {
|
|
306
|
+
if (handlers.onError) {
|
|
307
|
+
handlers.onError(error.message);
|
|
308
|
+
}
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Close the WebSocket connection
|
|
313
|
+
*/
|
|
314
|
+
close() {
|
|
315
|
+
if (this.ws) {
|
|
316
|
+
this.ws.close();
|
|
317
|
+
this.ws = undefined;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BaseCommand } from '../base-command.js';
|
|
2
|
+
export default class Artifacts extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
buildId: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
static flags: {
|
|
9
|
+
download: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
output: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
private listArtifacts;
|
|
14
|
+
private downloadWorkspace;
|
|
15
|
+
private formatSize;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=artifacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/commands/artifacts.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAChD,OAAgB,WAAW,SAAsC;IAEjE,OAAgB,QAAQ,WAItB;IAEF,OAAgB,IAAI;;MAKlB;IAEF,OAAgB,KAAK;;;MAUnB;IAEW,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBjC,OAAO,CAAC,aAAa;YA0BP,iBAAiB;IAuB/B,OAAO,CAAC,UAAU;CAKnB"}
|