@serve.zone/gitops 2.13.1 → 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 +23 -0
- package/deno.json +1 -1
- package/dist_serve/bundle.js +726 -694
- package/dist_ts/00_commitinfo_data.js +2 -2
- package/dist_ts/classes/connectionmanager.d.ts +5 -1
- package/dist_ts/classes/connectionmanager.js +62 -7
- package/dist_ts/classes/syncmanager.d.ts +40 -0
- package/dist_ts/classes/syncmanager.js +804 -111
- package/dist_ts/classes/syncpath.d.ts +13 -0
- package/dist_ts/classes/syncpath.js +53 -0
- package/dist_ts/opsserver/handlers/connections.handler.js +8 -2
- package/dist_ts/opsserver/handlers/sync.handler.js +5 -1
- package/dist_ts/providers/classes.baseprovider.d.ts +22 -0
- package/dist_ts/providers/classes.baseprovider.js +93 -1
- package/dist_ts/providers/classes.giteaprovider.d.ts +18 -1
- package/dist_ts/providers/classes.giteaprovider.js +236 -1
- package/dist_ts/providers/classes.gitlabprovider.d.ts +16 -1
- package/dist_ts/providers/classes.gitlabprovider.js +235 -1
- package/dist_ts_interfaces/data/artifact.d.ts +39 -0
- package/dist_ts_interfaces/data/artifact.js +2 -0
- package/dist_ts_interfaces/data/connection.d.ts +3 -0
- package/dist_ts_interfaces/data/index.d.ts +1 -0
- package/dist_ts_interfaces/data/index.js +2 -1
- package/dist_ts_interfaces/data/sync.d.ts +21 -0
- package/dist_ts_interfaces/requests/connections.d.ts +6 -0
- package/dist_ts_interfaces/requests/sync.d.ts +4 -0
- package/package.json +3 -3
- package/readme.md +8 -4
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes/connectionmanager.ts +61 -6
- package/ts/classes/syncmanager.ts +1095 -119
- package/ts/classes/syncpath.ts +71 -0
- package/ts/opsserver/handlers/connections.handler.ts +9 -0
- package/ts/opsserver/handlers/sync.handler.ts +4 -0
- package/ts/providers/classes.baseprovider.ts +137 -0
- package/ts/providers/classes.giteaprovider.ts +293 -1
- package/ts/providers/classes.gitlabprovider.ts +292 -1
- package/ts_interfaces/data/artifact.ts +43 -0
- package/ts_interfaces/data/connection.ts +3 -0
- package/ts_interfaces/data/index.ts +1 -0
- package/ts_interfaces/data/sync.ts +22 -0
- package/ts_interfaces/requests/connections.ts +6 -0
- package/ts_interfaces/requests/sync.ts +4 -0
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/appstate.ts +10 -0
- package/ts_web/elements/views/connections/index.ts +26 -0
- package/ts_web/elements/views/sync/index.ts +26 -4
|
@@ -141,7 +141,242 @@ export class GiteaProvider extends BaseProvider {
|
|
|
141
141
|
return null;
|
|
142
142
|
}
|
|
143
143
|
}
|
|
144
|
+
// --- Releases / Release Assets ---
|
|
145
|
+
async getReleases(projectFullPath) {
|
|
146
|
+
const { owner, repo } = this.splitOwnerRepo(projectFullPath);
|
|
147
|
+
try {
|
|
148
|
+
const releases = await this.requestPaginated(`/api/v1/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/releases`);
|
|
149
|
+
return releases.map((release) => this.mapRelease(release));
|
|
150
|
+
}
|
|
151
|
+
catch (err) {
|
|
152
|
+
if (this.isNotFoundError(err))
|
|
153
|
+
return [];
|
|
154
|
+
throw err;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
async upsertRelease(projectFullPath, release) {
|
|
158
|
+
const { owner, repo } = this.splitOwnerRepo(projectFullPath);
|
|
159
|
+
const basePath = `/api/v1/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}`;
|
|
160
|
+
const body = {
|
|
161
|
+
tag_name: release.tagName,
|
|
162
|
+
name: release.name || release.tagName,
|
|
163
|
+
body: release.description || '',
|
|
164
|
+
draft: !!release.draft,
|
|
165
|
+
prerelease: !!release.preRelease,
|
|
166
|
+
};
|
|
167
|
+
if (release.targetCommitish)
|
|
168
|
+
body.target_commitish = release.targetCommitish;
|
|
169
|
+
try {
|
|
170
|
+
const existing = await this.requestJson('GET', `${basePath}/releases/tags/${encodeURIComponent(release.tagName)}`);
|
|
171
|
+
const updated = await this.requestJson('PATCH', `${basePath}/releases/${existing.id}`, body);
|
|
172
|
+
return this.mapRelease(updated);
|
|
173
|
+
}
|
|
174
|
+
catch (err) {
|
|
175
|
+
if (!this.isNotFoundError(err))
|
|
176
|
+
throw err;
|
|
177
|
+
const created = await this.requestJson('POST', `${basePath}/releases`, body);
|
|
178
|
+
return this.mapRelease(created);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
async deleteRelease(projectFullPath, tagName) {
|
|
182
|
+
const { owner, repo } = this.splitOwnerRepo(projectFullPath);
|
|
183
|
+
try {
|
|
184
|
+
const release = await this.getReleaseByTag(projectFullPath, tagName);
|
|
185
|
+
if (!release?.id)
|
|
186
|
+
return;
|
|
187
|
+
await this.requestVoid('DELETE', `/api/v1/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/releases/${encodeURIComponent(release.id)}`);
|
|
188
|
+
}
|
|
189
|
+
catch (err) {
|
|
190
|
+
if (!this.isNotFoundError(err))
|
|
191
|
+
throw err;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
async deleteReleaseAsset(projectFullPath, release, asset) {
|
|
195
|
+
if (asset.kind !== 'attachment' || !asset.id || !release.id)
|
|
196
|
+
return;
|
|
197
|
+
const { owner, repo } = this.splitOwnerRepo(projectFullPath);
|
|
198
|
+
await this.requestVoid('DELETE', `/api/v1/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/releases/${encodeURIComponent(release.id)}/assets/${encodeURIComponent(asset.id)}`);
|
|
199
|
+
}
|
|
200
|
+
async downloadReleaseAsset(_projectFullPath, _release, asset, options) {
|
|
201
|
+
const url = asset.downloadUrl || asset.url;
|
|
202
|
+
if (!url)
|
|
203
|
+
return null;
|
|
204
|
+
const resolvedUrl = url.startsWith('http') ? url : `${this.baseUrl}${url}`;
|
|
205
|
+
const response = await fetch(resolvedUrl, {
|
|
206
|
+
headers: { Authorization: `token ${this.token}` },
|
|
207
|
+
signal: options?.signal,
|
|
208
|
+
});
|
|
209
|
+
if (!response.ok) {
|
|
210
|
+
const text = await response.text();
|
|
211
|
+
throw new Error(`GET release asset ${asset.name}: ${response.status} - ${text}`);
|
|
212
|
+
}
|
|
213
|
+
return await this.readReleaseAssetPayload(response, asset.name, asset.contentType, options);
|
|
214
|
+
}
|
|
215
|
+
async uploadReleaseAsset(projectFullPath, release, asset, payload, options) {
|
|
216
|
+
const releaseId = release.id || (await this.getReleaseByTag(projectFullPath, release.tagName))?.id;
|
|
217
|
+
if (!releaseId) {
|
|
218
|
+
throw new Error(`Cannot upload release asset ${asset.name}: target release has no ID`);
|
|
219
|
+
}
|
|
220
|
+
const { owner, repo } = this.splitOwnerRepo(projectFullPath);
|
|
221
|
+
const formData = new FormData();
|
|
222
|
+
const blob = new Blob([this.getPayloadArrayBuffer(payload)], {
|
|
223
|
+
type: payload.contentType || asset.contentType || 'application/octet-stream',
|
|
224
|
+
});
|
|
225
|
+
formData.append('attachment', blob, asset.name);
|
|
226
|
+
const response = await fetch(`${this.baseUrl}/api/v1/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/releases/${encodeURIComponent(releaseId)}/assets?name=${encodeURIComponent(asset.name)}`, {
|
|
227
|
+
method: 'POST',
|
|
228
|
+
headers: { Authorization: `token ${this.token}` },
|
|
229
|
+
body: formData,
|
|
230
|
+
signal: options?.signal,
|
|
231
|
+
});
|
|
232
|
+
if (!response.ok) {
|
|
233
|
+
const text = await response.text();
|
|
234
|
+
throw new Error(`POST release asset ${asset.name}: ${response.status} - ${text}`);
|
|
235
|
+
}
|
|
236
|
+
return this.mapReleaseAsset(await response.json());
|
|
237
|
+
}
|
|
238
|
+
async createReleaseAssetLink(_projectFullPath, _release, asset) {
|
|
239
|
+
throw new Error(`Gitea releases do not support link-only asset "${asset.name}"`);
|
|
240
|
+
}
|
|
241
|
+
// --- Container Images ---
|
|
242
|
+
async getContainerImageRepositories(projectFullPath) {
|
|
243
|
+
const { owner, repo } = this.splitOwnerRepo(projectFullPath);
|
|
244
|
+
try {
|
|
245
|
+
const packages = await this.requestPaginated(`/api/v1/packages/${encodeURIComponent(owner)}?type=container&q=${encodeURIComponent(repo)}`);
|
|
246
|
+
const byName = new Map();
|
|
247
|
+
for (const packageItem of packages) {
|
|
248
|
+
if (packageItem.type !== 'container')
|
|
249
|
+
continue;
|
|
250
|
+
const repositoryFullName = packageItem.repository?.full_name;
|
|
251
|
+
if (!repositoryFullName || repositoryFullName !== projectFullPath)
|
|
252
|
+
continue;
|
|
253
|
+
const name = packageItem.name || repo;
|
|
254
|
+
const list = byName.get(name) || [];
|
|
255
|
+
list.push(packageItem);
|
|
256
|
+
byName.set(name, list);
|
|
257
|
+
}
|
|
258
|
+
const registryHost = new URL(this.baseUrl).host;
|
|
259
|
+
return [...byName.entries()].map(([packageName, versions]) => {
|
|
260
|
+
const imagePath = packageName.startsWith(`${owner}/`) ? packageName : `${owner}/${packageName}`;
|
|
261
|
+
return {
|
|
262
|
+
id: imagePath,
|
|
263
|
+
name: packageName,
|
|
264
|
+
path: imagePath,
|
|
265
|
+
location: `${registryHost}/${imagePath}`,
|
|
266
|
+
projectFullPath,
|
|
267
|
+
tags: versions.map((version) => ({
|
|
268
|
+
name: version.version,
|
|
269
|
+
location: `${registryHost}/${imagePath}:${version.version}`,
|
|
270
|
+
createdAt: version.created_at,
|
|
271
|
+
})),
|
|
272
|
+
};
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
catch (err) {
|
|
276
|
+
if (this.isNotFoundError(err))
|
|
277
|
+
return [];
|
|
278
|
+
throw err;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
async deleteContainerImageTag(_projectFullPath, repositoryId, tagName) {
|
|
282
|
+
const [owner, ...packageNameParts] = repositoryId.split('/');
|
|
283
|
+
const packageName = packageNameParts.join('/');
|
|
284
|
+
if (!owner || !packageName) {
|
|
285
|
+
throw new Error(`Invalid Gitea container repository ID: ${repositoryId}`);
|
|
286
|
+
}
|
|
287
|
+
try {
|
|
288
|
+
await this.requestVoid('DELETE', `/api/v1/packages/${encodeURIComponent(owner)}/container/${encodeURIComponent(packageName)}/${encodeURIComponent(tagName)}`);
|
|
289
|
+
}
|
|
290
|
+
catch (err) {
|
|
291
|
+
if (!this.isNotFoundError(err))
|
|
292
|
+
throw err;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
144
295
|
// --- Mappers ---
|
|
296
|
+
splitOwnerRepo(projectFullPath) {
|
|
297
|
+
const [owner, ...repoParts] = projectFullPath.split('/');
|
|
298
|
+
const repo = repoParts.join('/');
|
|
299
|
+
if (!owner || !repo) {
|
|
300
|
+
throw new Error(`Invalid Gitea repository path: ${projectFullPath}`);
|
|
301
|
+
}
|
|
302
|
+
return { owner, repo };
|
|
303
|
+
}
|
|
304
|
+
async requestPaginated(path) {
|
|
305
|
+
const items = [];
|
|
306
|
+
const limit = 100;
|
|
307
|
+
const maxPages = 1000;
|
|
308
|
+
for (let page = 1; page <= maxPages; page++) {
|
|
309
|
+
const separator = path.includes('?') ? '&' : '?';
|
|
310
|
+
const requestPath = `${path}${separator}page=${page}&limit=${limit}`;
|
|
311
|
+
const pageItems = await this.requestJson('GET', requestPath);
|
|
312
|
+
if (!Array.isArray(pageItems) || pageItems.length === 0)
|
|
313
|
+
break;
|
|
314
|
+
items.push(...pageItems);
|
|
315
|
+
if (pageItems.length < limit)
|
|
316
|
+
break;
|
|
317
|
+
}
|
|
318
|
+
if (items.length >= limit * maxPages) {
|
|
319
|
+
throw new Error(`Pagination exceeded ${maxPages} pages for ${path}`);
|
|
320
|
+
}
|
|
321
|
+
return items;
|
|
322
|
+
}
|
|
323
|
+
async requestJson(method, path, body) {
|
|
324
|
+
const headers = { Authorization: `token ${this.token}` };
|
|
325
|
+
if (body)
|
|
326
|
+
headers['Content-Type'] = 'application/json';
|
|
327
|
+
return await this.fetchJsonWithTimeout(`${this.baseUrl.replace(/\/+$/, '')}${path}`, {
|
|
328
|
+
method,
|
|
329
|
+
headers,
|
|
330
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
331
|
+
}, `Gitea ${method} ${path}`);
|
|
332
|
+
}
|
|
333
|
+
async requestVoid(method, path) {
|
|
334
|
+
await this.fetchVoidWithTimeout(`${this.baseUrl.replace(/\/+$/, '')}${path}`, {
|
|
335
|
+
method,
|
|
336
|
+
headers: { Authorization: `token ${this.token}` },
|
|
337
|
+
}, `Gitea ${method} ${path}`);
|
|
338
|
+
}
|
|
339
|
+
isNotFoundError(err) {
|
|
340
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
341
|
+
return errMsg.includes(': 404 ') || errMsg.includes(': 404 -') || errMsg.includes(' 404 Not Found');
|
|
342
|
+
}
|
|
343
|
+
async getReleaseByTag(projectFullPath, tagName) {
|
|
344
|
+
const { owner, repo } = this.splitOwnerRepo(projectFullPath);
|
|
345
|
+
try {
|
|
346
|
+
const release = await this.requestJson('GET', `/api/v1/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/releases/tags/${encodeURIComponent(tagName)}`);
|
|
347
|
+
return this.mapRelease(release);
|
|
348
|
+
}
|
|
349
|
+
catch (err) {
|
|
350
|
+
if (this.isNotFoundError(err))
|
|
351
|
+
return null;
|
|
352
|
+
throw err;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
mapRelease(raw) {
|
|
356
|
+
const assets = Array.isArray(raw.assets) ? raw.assets : [];
|
|
357
|
+
return {
|
|
358
|
+
id: raw.id ? String(raw.id) : undefined,
|
|
359
|
+
tagName: raw.tag_name,
|
|
360
|
+
name: raw.name || raw.tag_name,
|
|
361
|
+
description: raw.body || '',
|
|
362
|
+
releasedAt: raw.published_at,
|
|
363
|
+
createdAt: raw.created_at,
|
|
364
|
+
draft: !!raw.draft,
|
|
365
|
+
preRelease: !!raw.prerelease,
|
|
366
|
+
targetCommitish: raw.target_commitish,
|
|
367
|
+
assets: assets.map((asset) => this.mapReleaseAsset(asset)),
|
|
368
|
+
};
|
|
369
|
+
}
|
|
370
|
+
mapReleaseAsset(raw) {
|
|
371
|
+
return {
|
|
372
|
+
id: raw.id ? String(raw.id) : undefined,
|
|
373
|
+
name: raw.name || '',
|
|
374
|
+
kind: 'attachment',
|
|
375
|
+
url: raw.browser_download_url,
|
|
376
|
+
downloadUrl: raw.browser_download_url,
|
|
377
|
+
size: raw.size,
|
|
378
|
+
};
|
|
379
|
+
}
|
|
145
380
|
mapProject(r) {
|
|
146
381
|
return {
|
|
147
382
|
id: r.fullName || String(r.id),
|
|
@@ -221,4 +456,4 @@ export class GiteaProvider extends BaseProvider {
|
|
|
221
456
|
return map[status?.toLowerCase()] || 'pending';
|
|
222
457
|
}
|
|
223
458
|
}
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5naXRlYXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvcHJvdmlkZXJzL2NsYXNzZXMuZ2l0ZWFwcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUE0RSxNQUFNLDJCQUEyQixDQUFDO0FBRW5JOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWMsU0FBUSxZQUFZO0lBQ3JDLE1BQU0sQ0FBa0M7SUFFaEQsWUFBWSxZQUFvQixFQUFFLE9BQWUsRUFBRSxLQUFhLEVBQUUsYUFBc0I7UUFDdEYsS0FBSyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFtQjtRQUNuQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYTtZQUM5QixDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNyRSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENB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
|
|
459
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5naXRlYXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvcHJvdmlkZXJzL2NsYXNzZXMuZ2l0ZWFwcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUEwSSxNQUFNLDJCQUEyQixDQUFDO0FBRWpNOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWMsU0FBUSxZQUFZO0lBQ3JDLE1BQU0sQ0FBa0M7SUFFaEQsWUFBWSxZQUFvQixFQUFFLE9BQWUsRUFBRSxLQUFhLEVBQUUsYUFBc0I7UUFDdEYsS0FBSyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFtQjtRQUNuQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYTtZQUM5QixDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNyRSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENB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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type * as interfaces from '../../dist_ts_interfaces/index.js';
|
|
2
|
-
import { BaseProvider, type ITestConnectionResult, type IListOptions, type IPipelineListOptions } from './classes.baseprovider.js';
|
|
2
|
+
import { BaseProvider, type IReleaseAssetPayload, type IReleaseAssetTransferOptions, type ITestConnectionResult, type IListOptions, type IPipelineListOptions } from './classes.baseprovider.js';
|
|
3
3
|
/**
|
|
4
4
|
* GitLab API v4 provider implementation
|
|
5
5
|
*/
|
|
@@ -31,6 +31,21 @@ export declare class GitLabProvider extends BaseProvider {
|
|
|
31
31
|
path: string;
|
|
32
32
|
type: string;
|
|
33
33
|
}[] | null>;
|
|
34
|
+
getReleases(projectFullPath: string): Promise<interfaces.data.IRelease[]>;
|
|
35
|
+
upsertRelease(projectFullPath: string, release: interfaces.data.IRelease): Promise<interfaces.data.IRelease>;
|
|
36
|
+
deleteRelease(projectFullPath: string, tagName: string): Promise<void>;
|
|
37
|
+
deleteReleaseAsset(projectFullPath: string, release: interfaces.data.IRelease, asset: interfaces.data.IReleaseAsset): Promise<void>;
|
|
38
|
+
downloadReleaseAsset(projectFullPath: string, release: interfaces.data.IRelease, asset: interfaces.data.IReleaseAsset, options?: IReleaseAssetTransferOptions): Promise<IReleaseAssetPayload | null>;
|
|
39
|
+
uploadReleaseAsset(projectFullPath: string, release: interfaces.data.IRelease, asset: interfaces.data.IReleaseAsset, payload: IReleaseAssetPayload, options?: IReleaseAssetTransferOptions): Promise<interfaces.data.IReleaseAsset>;
|
|
40
|
+
createReleaseAssetLink(projectFullPath: string, release: interfaces.data.IRelease, asset: interfaces.data.IReleaseAsset): Promise<interfaces.data.IReleaseAsset>;
|
|
41
|
+
getContainerImageRepositories(projectFullPath: string): Promise<interfaces.data.IContainerImageRepository[]>;
|
|
42
|
+
deleteContainerImageTag(projectFullPath: string, repositoryId: string, tagName: string): Promise<void>;
|
|
43
|
+
private requestPaginated;
|
|
44
|
+
private requestJson;
|
|
45
|
+
private requestVoid;
|
|
46
|
+
private isNotFoundError;
|
|
47
|
+
private mapRelease;
|
|
48
|
+
private mapReleaseLink;
|
|
34
49
|
private mapProject;
|
|
35
50
|
private mapGroup;
|
|
36
51
|
private mapVariable;
|