@apiclient.xyz/gitlab 2.4.0 → 2.6.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.
Files changed (43) hide show
  1. package/dist_ts/00_commitinfo_data.js +1 -1
  2. package/dist_ts/gitlab.classes.branch.d.ts +7 -0
  3. package/dist_ts/gitlab.classes.branch.js +13 -0
  4. package/dist_ts/gitlab.classes.gitlabclient.d.ts +117 -32
  5. package/dist_ts/gitlab.classes.gitlabclient.js +278 -96
  6. package/dist_ts/gitlab.classes.group.d.ts +47 -0
  7. package/dist_ts/gitlab.classes.group.js +97 -0
  8. package/dist_ts/gitlab.classes.job.d.ts +29 -0
  9. package/dist_ts/gitlab.classes.job.js +74 -0
  10. package/dist_ts/gitlab.classes.pipeline.d.ts +32 -0
  11. package/dist_ts/gitlab.classes.pipeline.js +87 -0
  12. package/dist_ts/gitlab.classes.project.d.ts +63 -0
  13. package/dist_ts/gitlab.classes.project.js +122 -0
  14. package/dist_ts/gitlab.classes.protectedbranch.d.ts +8 -0
  15. package/dist_ts/gitlab.classes.protectedbranch.js +15 -0
  16. package/dist_ts/gitlab.classes.tag.d.ts +7 -0
  17. package/dist_ts/gitlab.classes.tag.js +13 -0
  18. package/dist_ts/gitlab.classes.testreport.d.ts +34 -0
  19. package/dist_ts/gitlab.classes.testreport.js +67 -0
  20. package/dist_ts/gitlab.classes.variable.d.ts +18 -0
  21. package/dist_ts/gitlab.classes.variable.js +35 -0
  22. package/dist_ts/gitlab.helpers.d.ts +8 -0
  23. package/dist_ts/gitlab.helpers.js +23 -0
  24. package/dist_ts/gitlab.interfaces.d.ts +114 -9
  25. package/dist_ts/gitlab.interfaces.js +4 -1
  26. package/dist_ts/index.d.ts +11 -1
  27. package/dist_ts/index.js +15 -1
  28. package/package.json +1 -1
  29. package/readme.md +468 -163
  30. package/ts/00_commitinfo_data.ts +1 -1
  31. package/ts/gitlab.classes.branch.ts +18 -0
  32. package/ts/gitlab.classes.gitlabclient.ts +354 -114
  33. package/ts/gitlab.classes.group.ts +137 -0
  34. package/ts/gitlab.classes.job.ts +104 -0
  35. package/ts/gitlab.classes.pipeline.ts +122 -0
  36. package/ts/gitlab.classes.project.ts +177 -0
  37. package/ts/gitlab.classes.protectedbranch.ts +21 -0
  38. package/ts/gitlab.classes.tag.ts +18 -0
  39. package/ts/gitlab.classes.testreport.ts +97 -0
  40. package/ts/gitlab.classes.variable.ts +50 -0
  41. package/ts/gitlab.helpers.ts +26 -0
  42. package/ts/gitlab.interfaces.ts +162 -11
  43. package/ts/index.ts +25 -0
@@ -0,0 +1,97 @@
1
+ import { GitLabProject } from './gitlab.classes.project.js';
2
+ import { GitLabVariable } from './gitlab.classes.variable.js';
3
+ import { autoPaginate } from './gitlab.helpers.js';
4
+ export class GitLabGroup {
5
+ /** @internal */
6
+ constructor(client, raw) {
7
+ this.client = client;
8
+ this.id = raw.id;
9
+ this.name = raw.name || '';
10
+ this.fullPath = raw.full_path || '';
11
+ this.description = raw.description || '';
12
+ this.webUrl = raw.web_url || '';
13
+ this.visibility = raw.visibility || 'private';
14
+ }
15
+ // ---------------------------------------------------------------------------
16
+ // Projects
17
+ // ---------------------------------------------------------------------------
18
+ async getProjects(opts) {
19
+ return autoPaginate((page, perPage) => this.client.requestGetGroupProjects(this.id, { ...opts, page, perPage }), opts).then(projects => projects.map(p => new GitLabProject(this.client, p)));
20
+ }
21
+ // ---------------------------------------------------------------------------
22
+ // Descendant Groups
23
+ // ---------------------------------------------------------------------------
24
+ async getDescendantGroups(opts) {
25
+ return autoPaginate((page, perPage) => this.client.requestGetDescendantGroups(this.id, { ...opts, page, perPage }), opts).then(groups => groups.map(g => new GitLabGroup(this.client, g)));
26
+ }
27
+ // ---------------------------------------------------------------------------
28
+ // Variables (CI/CD)
29
+ // ---------------------------------------------------------------------------
30
+ async getVariables() {
31
+ const vars = await this.client.requestGetGroupVariables(this.id);
32
+ return vars.map(v => new GitLabVariable(v));
33
+ }
34
+ async createVariable(key, value, opts) {
35
+ const raw = await this.client.requestCreateGroupVariable(this.id, key, value, opts);
36
+ return new GitLabVariable(raw);
37
+ }
38
+ async updateVariable(key, value, opts) {
39
+ const raw = await this.client.requestUpdateGroupVariable(this.id, key, value, opts);
40
+ return new GitLabVariable(raw);
41
+ }
42
+ async deleteVariable(key) {
43
+ await this.client.requestDeleteGroupVariable(this.id, key);
44
+ }
45
+ // ---------------------------------------------------------------------------
46
+ // Mutation
47
+ // ---------------------------------------------------------------------------
48
+ /**
49
+ * Update group properties.
50
+ */
51
+ async update(data) {
52
+ await this.client.requestUpdateGroup(this.id, {
53
+ name: data.name,
54
+ path: data.path,
55
+ description: data.description,
56
+ visibility: data.visibility,
57
+ });
58
+ }
59
+ /**
60
+ * Upload an avatar image for this group (multipart FormData).
61
+ */
62
+ async setAvatar(imageData, filename) {
63
+ await this.client.requestSetGroupAvatar(this.id, imageData, filename);
64
+ }
65
+ /**
66
+ * Remove the group's avatar.
67
+ */
68
+ async deleteAvatar() {
69
+ await this.client.requestUpdateGroup(this.id, { avatar: '' });
70
+ }
71
+ /**
72
+ * Transfer this group to be a child of another group.
73
+ */
74
+ async transfer(parentGroupId) {
75
+ await this.client.requestTransferGroup(this.id, parentGroupId);
76
+ }
77
+ /**
78
+ * Delete this group.
79
+ */
80
+ async delete() {
81
+ await this.client.requestDeleteGroup(this.id);
82
+ }
83
+ // ---------------------------------------------------------------------------
84
+ // Serialization
85
+ // ---------------------------------------------------------------------------
86
+ toJSON() {
87
+ return {
88
+ id: this.id,
89
+ name: this.name,
90
+ full_path: this.fullPath,
91
+ description: this.description,
92
+ web_url: this.webUrl,
93
+ visibility: this.visibility,
94
+ };
95
+ }
96
+ }
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0bGFiLmNsYXNzZXMuZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9naXRsYWIuY2xhc3Nlcy5ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxNQUFNLE9BQU8sV0FBVztJQVN0QixnQkFBZ0I7SUFDaEIsWUFDVSxNQUFvQixFQUM1QixHQUFpQjtRQURULFdBQU0sR0FBTixNQUFNLENBQWM7UUFHNUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsVUFBVSxJQUFJLFNBQVMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsOEVBQThFO0lBQzlFLFdBQVc7SUFDWCw4RUFBOEU7SUFFOUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFtQjtRQUNuQyxPQUFPLFlBQVksQ0FDakIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENB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
@@ -0,0 +1,29 @@
1
+ import type { GitLabClient } from './gitlab.classes.gitlabclient.js';
2
+ import type { IGitLabJob } from './gitlab.interfaces.js';
3
+ export declare class GitLabJob {
4
+ private client;
5
+ private projectId;
6
+ readonly id: number;
7
+ readonly name: string;
8
+ readonly stage: string;
9
+ readonly status: string;
10
+ readonly ref: string;
11
+ readonly tag: boolean;
12
+ readonly webUrl: string;
13
+ readonly createdAt: string;
14
+ readonly startedAt: string;
15
+ readonly finishedAt: string;
16
+ readonly duration: number;
17
+ readonly queuedDuration: number;
18
+ readonly coverage: number;
19
+ readonly allowFailure: boolean;
20
+ readonly failureReason: string;
21
+ /** @internal */
22
+ constructor(client: GitLabClient, projectId: number | string, raw: IGitLabJob);
23
+ getLog(): Promise<string>;
24
+ retry(): Promise<GitLabJob>;
25
+ cancel(): Promise<GitLabJob>;
26
+ play(): Promise<GitLabJob>;
27
+ erase(): Promise<void>;
28
+ toJSON(): IGitLabJob;
29
+ }
@@ -0,0 +1,74 @@
1
+ export class GitLabJob {
2
+ /** @internal */
3
+ constructor(client, projectId, raw) {
4
+ this.client = client;
5
+ this.projectId = projectId;
6
+ this.id = raw.id;
7
+ this.name = raw.name || '';
8
+ this.stage = raw.stage || '';
9
+ this.status = raw.status || '';
10
+ this.ref = raw.ref || '';
11
+ this.tag = raw.tag ?? false;
12
+ this.webUrl = raw.web_url || '';
13
+ this.createdAt = raw.created_at || '';
14
+ this.startedAt = raw.started_at || '';
15
+ this.finishedAt = raw.finished_at || '';
16
+ this.duration = raw.duration || 0;
17
+ this.queuedDuration = raw.queued_duration || 0;
18
+ this.coverage = raw.coverage || 0;
19
+ this.allowFailure = raw.allow_failure ?? false;
20
+ this.failureReason = raw.failure_reason || '';
21
+ }
22
+ // ---------------------------------------------------------------------------
23
+ // Log
24
+ // ---------------------------------------------------------------------------
25
+ async getLog() {
26
+ return this.client.requestGetJobLog(this.projectId, this.id);
27
+ }
28
+ // ---------------------------------------------------------------------------
29
+ // Actions
30
+ // ---------------------------------------------------------------------------
31
+ async retry() {
32
+ const raw = await this.client.requestRetryJob(this.projectId, this.id);
33
+ return new GitLabJob(this.client, this.projectId, raw);
34
+ }
35
+ async cancel() {
36
+ const raw = await this.client.requestCancelJob(this.projectId, this.id);
37
+ return new GitLabJob(this.client, this.projectId, raw);
38
+ }
39
+ async play() {
40
+ const raw = await this.client.requestPlayJob(this.projectId, this.id);
41
+ return new GitLabJob(this.client, this.projectId, raw);
42
+ }
43
+ async erase() {
44
+ await this.client.requestEraseJob(this.projectId, this.id);
45
+ }
46
+ // ---------------------------------------------------------------------------
47
+ // Serialization
48
+ // ---------------------------------------------------------------------------
49
+ toJSON() {
50
+ return {
51
+ id: this.id,
52
+ name: this.name,
53
+ stage: this.stage,
54
+ status: this.status,
55
+ ref: this.ref,
56
+ tag: this.tag,
57
+ web_url: this.webUrl,
58
+ created_at: this.createdAt,
59
+ started_at: this.startedAt,
60
+ finished_at: this.finishedAt,
61
+ duration: this.duration,
62
+ queued_duration: this.queuedDuration,
63
+ coverage: this.coverage,
64
+ allow_failure: this.allowFailure,
65
+ failure_reason: this.failureReason,
66
+ pipeline: { id: 0, project_id: 0, ref: '', sha: '', status: '' },
67
+ user: { id: 0, username: '', name: '', email: '', avatar_url: '', web_url: '', state: '' },
68
+ runner: { id: 0, description: '', active: false, is_shared: false },
69
+ artifacts: [],
70
+ artifacts_expire_at: '',
71
+ };
72
+ }
73
+ }
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0bGFiLmNsYXNzZXMuam9iLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvZ2l0bGFiLmNsYXNzZXMuam9iLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxTQUFTO0lBa0JwQixnQkFBZ0I7SUFDaEIsWUFDVSxNQUFvQixFQUNwQixTQUEwQixFQUNsQyxHQUFlO1FBRlAsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUNwQixjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUdsQyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQyxlQUFlLElB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
@@ -0,0 +1,32 @@
1
+ import type { GitLabClient } from './gitlab.classes.gitlabclient.js';
2
+ import type { IGitLabPipeline, IJobListOptions } from './gitlab.interfaces.js';
3
+ import { GitLabJob } from './gitlab.classes.job.js';
4
+ import { GitLabPipelineVariable } from './gitlab.classes.variable.js';
5
+ import { GitLabTestReport } from './gitlab.classes.testreport.js';
6
+ export declare class GitLabPipeline {
7
+ private client;
8
+ readonly id: number;
9
+ readonly iid: number;
10
+ readonly projectId: number;
11
+ readonly status: string;
12
+ readonly ref: string;
13
+ readonly sha: string;
14
+ readonly webUrl: string;
15
+ readonly duration: number;
16
+ readonly queuedDuration: number;
17
+ readonly createdAt: string;
18
+ readonly updatedAt: string;
19
+ readonly startedAt: string;
20
+ readonly finishedAt: string;
21
+ readonly source: string;
22
+ readonly tag: boolean;
23
+ /** @internal */
24
+ constructor(client: GitLabClient, raw: IGitLabPipeline);
25
+ getJobs(opts?: IJobListOptions): Promise<GitLabJob[]>;
26
+ getVariables(): Promise<GitLabPipelineVariable[]>;
27
+ getTestReport(): Promise<GitLabTestReport>;
28
+ retry(): Promise<GitLabPipeline>;
29
+ cancel(): Promise<GitLabPipeline>;
30
+ delete(): Promise<void>;
31
+ toJSON(): IGitLabPipeline;
32
+ }
@@ -0,0 +1,87 @@
1
+ import { GitLabJob } from './gitlab.classes.job.js';
2
+ import { GitLabPipelineVariable } from './gitlab.classes.variable.js';
3
+ import { GitLabTestReport } from './gitlab.classes.testreport.js';
4
+ import { autoPaginate } from './gitlab.helpers.js';
5
+ export class GitLabPipeline {
6
+ /** @internal */
7
+ constructor(client, raw) {
8
+ this.client = client;
9
+ this.id = raw.id;
10
+ this.iid = raw.iid || 0;
11
+ this.projectId = raw.project_id || 0;
12
+ this.status = raw.status || '';
13
+ this.ref = raw.ref || '';
14
+ this.sha = raw.sha || '';
15
+ this.webUrl = raw.web_url || '';
16
+ this.duration = raw.duration || 0;
17
+ this.queuedDuration = raw.queued_duration || 0;
18
+ this.createdAt = raw.created_at || '';
19
+ this.updatedAt = raw.updated_at || '';
20
+ this.startedAt = raw.started_at || '';
21
+ this.finishedAt = raw.finished_at || '';
22
+ this.source = raw.source || '';
23
+ this.tag = raw.tag ?? false;
24
+ }
25
+ // ---------------------------------------------------------------------------
26
+ // Jobs
27
+ // ---------------------------------------------------------------------------
28
+ async getJobs(opts) {
29
+ return autoPaginate((page, perPage) => this.client.requestGetPipelineJobs(this.projectId, this.id, { ...opts, page, perPage }), opts).then(jobs => jobs.map(j => new GitLabJob(this.client, this.projectId, j)));
30
+ }
31
+ // ---------------------------------------------------------------------------
32
+ // Variables & Test Report
33
+ // ---------------------------------------------------------------------------
34
+ async getVariables() {
35
+ const vars = await this.client.requestGetPipelineVariables(this.projectId, this.id);
36
+ return vars.map(v => new GitLabPipelineVariable(v));
37
+ }
38
+ async getTestReport() {
39
+ const raw = await this.client.requestGetPipelineTestReport(this.projectId, this.id);
40
+ return new GitLabTestReport(raw);
41
+ }
42
+ // ---------------------------------------------------------------------------
43
+ // Actions
44
+ // ---------------------------------------------------------------------------
45
+ async retry() {
46
+ const raw = await this.client.requestRetryPipeline(this.projectId, this.id);
47
+ return new GitLabPipeline(this.client, raw);
48
+ }
49
+ async cancel() {
50
+ const raw = await this.client.requestCancelPipeline(this.projectId, this.id);
51
+ return new GitLabPipeline(this.client, raw);
52
+ }
53
+ async delete() {
54
+ await this.client.requestDeletePipeline(this.projectId, this.id);
55
+ }
56
+ // ---------------------------------------------------------------------------
57
+ // Serialization
58
+ // ---------------------------------------------------------------------------
59
+ toJSON() {
60
+ return {
61
+ id: this.id,
62
+ iid: this.iid,
63
+ project_id: this.projectId,
64
+ status: this.status,
65
+ ref: this.ref,
66
+ sha: this.sha,
67
+ before_sha: '',
68
+ tag: this.tag,
69
+ web_url: this.webUrl,
70
+ duration: this.duration,
71
+ queued_duration: this.queuedDuration,
72
+ created_at: this.createdAt,
73
+ updated_at: this.updatedAt,
74
+ started_at: this.startedAt,
75
+ finished_at: this.finishedAt,
76
+ source: this.source,
77
+ coverage: '',
78
+ user: { id: 0, username: '', name: '', email: '', avatar_url: '', web_url: '', state: '' },
79
+ detailed_status: {
80
+ icon: '', text: '', label: '', group: '', tooltip: '',
81
+ has_details: false, details_path: '', favicon: '',
82
+ },
83
+ yaml_errors: '',
84
+ };
85
+ }
86
+ }
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0bGFiLmNsYXNzZXMucGlwZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9naXRsYWIuY2xhc3Nlcy5waXBlbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5ELE1BQU0sT0FBTyxjQUFjO0lBa0J6QixnQkFBZ0I7SUFDaEIsWUFDVSxNQUFvQixFQUM1QixHQUFvQjtRQURaLFdBQU0sR0FBTixNQUFNLENBQWM7UUFHNUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQztRQUMvQyxJ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
@@ -0,0 +1,63 @@
1
+ import type { GitLabClient } from './gitlab.classes.gitlabclient.js';
2
+ import type { IGitLabProject, IListOptions, IVariableOptions, IPipelineListOptions } from './gitlab.interfaces.js';
3
+ import { GitLabBranch } from './gitlab.classes.branch.js';
4
+ import { GitLabTag } from './gitlab.classes.tag.js';
5
+ import { GitLabProtectedBranch } from './gitlab.classes.protectedbranch.js';
6
+ import { GitLabVariable } from './gitlab.classes.variable.js';
7
+ import { GitLabPipeline } from './gitlab.classes.pipeline.js';
8
+ export declare class GitLabProject {
9
+ private client;
10
+ readonly id: number;
11
+ readonly name: string;
12
+ readonly fullPath: string;
13
+ readonly description: string;
14
+ readonly defaultBranch: string;
15
+ readonly webUrl: string;
16
+ readonly visibility: string;
17
+ readonly topics: string[];
18
+ readonly lastActivityAt: string;
19
+ /** @internal */
20
+ constructor(client: GitLabClient, raw: IGitLabProject);
21
+ getBranches(opts?: IListOptions): Promise<GitLabBranch[]>;
22
+ getTags(opts?: IListOptions): Promise<GitLabTag[]>;
23
+ getProtectedBranches(): Promise<GitLabProtectedBranch[]>;
24
+ unprotectBranch(branchName: string): Promise<void>;
25
+ getVariables(): Promise<GitLabVariable[]>;
26
+ createVariable(key: string, value: string, opts?: IVariableOptions): Promise<GitLabVariable>;
27
+ updateVariable(key: string, value: string, opts?: IVariableOptions): Promise<GitLabVariable>;
28
+ deleteVariable(key: string): Promise<void>;
29
+ getPipelines(opts?: IPipelineListOptions): Promise<GitLabPipeline[]>;
30
+ triggerPipeline(ref: string, variables?: {
31
+ key: string;
32
+ value: string;
33
+ variable_type?: string;
34
+ }[]): Promise<GitLabPipeline>;
35
+ /**
36
+ * Update project properties.
37
+ */
38
+ update(data: {
39
+ name?: string;
40
+ path?: string;
41
+ description?: string;
42
+ defaultBranch?: string;
43
+ visibility?: string;
44
+ topics?: string[];
45
+ }): Promise<void>;
46
+ /**
47
+ * Upload an avatar image for this project (multipart FormData).
48
+ */
49
+ setAvatar(imageData: Uint8Array, filename: string): Promise<void>;
50
+ /**
51
+ * Remove the project's avatar.
52
+ */
53
+ deleteAvatar(): Promise<void>;
54
+ /**
55
+ * Transfer this project to a different namespace.
56
+ */
57
+ transfer(namespaceId: number): Promise<void>;
58
+ /**
59
+ * Delete this project.
60
+ */
61
+ delete(): Promise<void>;
62
+ toJSON(): IGitLabProject;
63
+ }
@@ -0,0 +1,122 @@
1
+ import { GitLabBranch } from './gitlab.classes.branch.js';
2
+ import { GitLabTag } from './gitlab.classes.tag.js';
3
+ import { GitLabProtectedBranch } from './gitlab.classes.protectedbranch.js';
4
+ import { GitLabVariable } from './gitlab.classes.variable.js';
5
+ import { GitLabPipeline } from './gitlab.classes.pipeline.js';
6
+ import { autoPaginate } from './gitlab.helpers.js';
7
+ export class GitLabProject {
8
+ /** @internal */
9
+ constructor(client, raw) {
10
+ this.client = client;
11
+ this.id = raw.id;
12
+ this.name = raw.name || '';
13
+ this.fullPath = raw.path_with_namespace || '';
14
+ this.description = raw.description || '';
15
+ this.defaultBranch = raw.default_branch || 'main';
16
+ this.webUrl = raw.web_url || '';
17
+ this.visibility = raw.visibility || 'private';
18
+ this.topics = raw.topics || [];
19
+ this.lastActivityAt = raw.last_activity_at || '';
20
+ }
21
+ // ---------------------------------------------------------------------------
22
+ // Branches & Tags
23
+ // ---------------------------------------------------------------------------
24
+ async getBranches(opts) {
25
+ return autoPaginate((page, perPage) => this.client.requestGetRepoBranches(this.id, { ...opts, page, perPage }), opts).then(branches => branches.map(b => new GitLabBranch(b)));
26
+ }
27
+ async getTags(opts) {
28
+ return autoPaginate((page, perPage) => this.client.requestGetRepoTags(this.id, { ...opts, page, perPage }), opts).then(tags => tags.map(t => new GitLabTag(t)));
29
+ }
30
+ async getProtectedBranches() {
31
+ const branches = await this.client.requestGetProtectedBranches(this.id);
32
+ return branches.map(b => new GitLabProtectedBranch(b));
33
+ }
34
+ async unprotectBranch(branchName) {
35
+ await this.client.requestUnprotectBranch(this.id, branchName);
36
+ }
37
+ // ---------------------------------------------------------------------------
38
+ // Variables (CI/CD)
39
+ // ---------------------------------------------------------------------------
40
+ async getVariables() {
41
+ const vars = await this.client.requestGetProjectVariables(this.id);
42
+ return vars.map(v => new GitLabVariable(v));
43
+ }
44
+ async createVariable(key, value, opts) {
45
+ const raw = await this.client.requestCreateProjectVariable(this.id, key, value, opts);
46
+ return new GitLabVariable(raw);
47
+ }
48
+ async updateVariable(key, value, opts) {
49
+ const raw = await this.client.requestUpdateProjectVariable(this.id, key, value, opts);
50
+ return new GitLabVariable(raw);
51
+ }
52
+ async deleteVariable(key) {
53
+ await this.client.requestDeleteProjectVariable(this.id, key);
54
+ }
55
+ // ---------------------------------------------------------------------------
56
+ // Pipelines
57
+ // ---------------------------------------------------------------------------
58
+ async getPipelines(opts) {
59
+ return autoPaginate((page, perPage) => this.client.requestGetPipelines(this.id, { ...opts, page, perPage }), opts).then(pipelines => pipelines.map(p => new GitLabPipeline(this.client, p)));
60
+ }
61
+ async triggerPipeline(ref, variables) {
62
+ const raw = await this.client.requestTriggerPipeline(this.id, ref, variables);
63
+ return new GitLabPipeline(this.client, raw);
64
+ }
65
+ // ---------------------------------------------------------------------------
66
+ // Mutation
67
+ // ---------------------------------------------------------------------------
68
+ /**
69
+ * Update project properties.
70
+ */
71
+ async update(data) {
72
+ await this.client.requestUpdateProject(this.id, {
73
+ name: data.name,
74
+ path: data.path,
75
+ description: data.description,
76
+ default_branch: data.defaultBranch,
77
+ visibility: data.visibility,
78
+ topics: data.topics,
79
+ });
80
+ }
81
+ /**
82
+ * Upload an avatar image for this project (multipart FormData).
83
+ */
84
+ async setAvatar(imageData, filename) {
85
+ await this.client.requestSetProjectAvatar(this.id, imageData, filename);
86
+ }
87
+ /**
88
+ * Remove the project's avatar.
89
+ */
90
+ async deleteAvatar() {
91
+ await this.client.requestUpdateProject(this.id, { avatar: '' });
92
+ }
93
+ /**
94
+ * Transfer this project to a different namespace.
95
+ */
96
+ async transfer(namespaceId) {
97
+ await this.client.requestTransferProject(this.id, namespaceId);
98
+ }
99
+ /**
100
+ * Delete this project.
101
+ */
102
+ async delete() {
103
+ await this.client.requestDeleteProject(this.id);
104
+ }
105
+ // ---------------------------------------------------------------------------
106
+ // Serialization
107
+ // ---------------------------------------------------------------------------
108
+ toJSON() {
109
+ return {
110
+ id: this.id,
111
+ name: this.name,
112
+ path_with_namespace: this.fullPath,
113
+ description: this.description,
114
+ default_branch: this.defaultBranch,
115
+ web_url: this.webUrl,
116
+ visibility: this.visibility,
117
+ topics: this.topics,
118
+ last_activity_at: this.lastActivityAt,
119
+ };
120
+ }
121
+ }
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0bGFiLmNsYXNzZXMucHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2dpdGxhYi5jbGFzc2VzLnByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxNQUFNLE9BQU8sYUFBYTtJQVl4QixnQkFBZ0I7SUFDaEIsWUFDVSxNQUFvQixFQUM1QixHQUFtQjtRQURYLFdBQU0sR0FBTixNQUFNLENBQWM7UUFHNUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsY0FBYyxJQUFJLE1BQU0sQ0FBQztRQUNsRCxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLFVBQVUsSUFBSSxTQUFTLENBQUM7UUFDOUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMs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
@@ -0,0 +1,8 @@
1
+ import type { IGitLabProtectedBranch } from './gitlab.interfaces.js';
2
+ export declare class GitLabProtectedBranch {
3
+ readonly id: number;
4
+ readonly name: string;
5
+ readonly allowForcePush: boolean;
6
+ constructor(raw: IGitLabProtectedBranch);
7
+ toJSON(): IGitLabProtectedBranch;
8
+ }
@@ -0,0 +1,15 @@
1
+ export class GitLabProtectedBranch {
2
+ constructor(raw) {
3
+ this.id = raw.id;
4
+ this.name = raw.name || '';
5
+ this.allowForcePush = raw.allow_force_push ?? false;
6
+ }
7
+ toJSON() {
8
+ return {
9
+ id: this.id,
10
+ name: this.name,
11
+ allow_force_push: this.allowForcePush,
12
+ };
13
+ }
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0bGFiLmNsYXNzZXMucHJvdGVjdGVkYnJhbmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvZ2l0bGFiLmNsYXNzZXMucHJvdGVjdGVkYnJhbmNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxxQkFBcUI7SUFLaEMsWUFBWSxHQUEyQjtRQUNyQyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxLQUFLLENBQUM7SUFDdEQsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPO1lBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDdEMsQ0FBQztJQUNKLENBQUM7Q0FDRiJ9
@@ -0,0 +1,7 @@
1
+ import type { IGitLabTag } from './gitlab.interfaces.js';
2
+ export declare class GitLabTag {
3
+ readonly name: string;
4
+ readonly commitSha: string;
5
+ constructor(raw: IGitLabTag);
6
+ toJSON(): IGitLabTag;
7
+ }
@@ -0,0 +1,13 @@
1
+ export class GitLabTag {
2
+ constructor(raw) {
3
+ this.name = raw.name || '';
4
+ this.commitSha = raw.commit?.id || '';
5
+ }
6
+ toJSON() {
7
+ return {
8
+ name: this.name,
9
+ commit: { id: this.commitSha },
10
+ };
11
+ }
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0bGFiLmNsYXNzZXMudGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvZ2l0bGFiLmNsYXNzZXMudGFnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxTQUFTO0lBSXBCLFlBQVksR0FBZTtRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO1NBQy9CLENBQUM7SUFDSixDQUFDO0NBQ0YifQ==
@@ -0,0 +1,34 @@
1
+ import type { IGitLabTestReport, IGitLabTestSuite, IGitLabTestCase } from './gitlab.interfaces.js';
2
+ export declare class GitLabTestCase {
3
+ readonly status: string;
4
+ readonly name: string;
5
+ readonly classname: string;
6
+ readonly executionTime: number;
7
+ readonly systemOutput: string;
8
+ readonly stackTrace: string;
9
+ constructor(raw: IGitLabTestCase);
10
+ toJSON(): IGitLabTestCase;
11
+ }
12
+ export declare class GitLabTestSuite {
13
+ readonly name: string;
14
+ readonly totalTime: number;
15
+ readonly totalCount: number;
16
+ readonly successCount: number;
17
+ readonly failedCount: number;
18
+ readonly skippedCount: number;
19
+ readonly errorCount: number;
20
+ readonly testCases: GitLabTestCase[];
21
+ constructor(raw: IGitLabTestSuite);
22
+ toJSON(): IGitLabTestSuite;
23
+ }
24
+ export declare class GitLabTestReport {
25
+ readonly totalTime: number;
26
+ readonly totalCount: number;
27
+ readonly successCount: number;
28
+ readonly failedCount: number;
29
+ readonly skippedCount: number;
30
+ readonly errorCount: number;
31
+ readonly testSuites: GitLabTestSuite[];
32
+ constructor(raw: IGitLabTestReport);
33
+ toJSON(): IGitLabTestReport;
34
+ }