@apiclient.xyz/gitlab 2.5.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 (38) hide show
  1. package/dist_ts/gitlab.classes.branch.d.ts +7 -0
  2. package/dist_ts/gitlab.classes.branch.js +13 -0
  3. package/dist_ts/gitlab.classes.gitlabclient.d.ts +112 -81
  4. package/dist_ts/gitlab.classes.gitlabclient.js +236 -156
  5. package/dist_ts/gitlab.classes.group.d.ts +47 -0
  6. package/dist_ts/gitlab.classes.group.js +97 -0
  7. package/dist_ts/gitlab.classes.job.d.ts +29 -0
  8. package/dist_ts/gitlab.classes.job.js +74 -0
  9. package/dist_ts/gitlab.classes.pipeline.d.ts +32 -0
  10. package/dist_ts/gitlab.classes.pipeline.js +87 -0
  11. package/dist_ts/gitlab.classes.project.d.ts +63 -0
  12. package/dist_ts/gitlab.classes.project.js +122 -0
  13. package/dist_ts/gitlab.classes.protectedbranch.d.ts +8 -0
  14. package/dist_ts/gitlab.classes.protectedbranch.js +15 -0
  15. package/dist_ts/gitlab.classes.tag.d.ts +7 -0
  16. package/dist_ts/gitlab.classes.tag.js +13 -0
  17. package/dist_ts/gitlab.classes.testreport.d.ts +34 -0
  18. package/dist_ts/gitlab.classes.testreport.js +67 -0
  19. package/dist_ts/gitlab.classes.variable.d.ts +18 -0
  20. package/dist_ts/gitlab.classes.variable.js +35 -0
  21. package/dist_ts/gitlab.helpers.d.ts +8 -0
  22. package/dist_ts/gitlab.helpers.js +23 -0
  23. package/dist_ts/index.d.ts +10 -0
  24. package/dist_ts/index.js +15 -1
  25. package/package.json +1 -1
  26. package/readme.md +468 -163
  27. package/ts/gitlab.classes.branch.ts +18 -0
  28. package/ts/gitlab.classes.gitlabclient.ts +297 -196
  29. package/ts/gitlab.classes.group.ts +137 -0
  30. package/ts/gitlab.classes.job.ts +104 -0
  31. package/ts/gitlab.classes.pipeline.ts +122 -0
  32. package/ts/gitlab.classes.project.ts +177 -0
  33. package/ts/gitlab.classes.protectedbranch.ts +21 -0
  34. package/ts/gitlab.classes.tag.ts +18 -0
  35. package/ts/gitlab.classes.testreport.ts +97 -0
  36. package/ts/gitlab.classes.variable.ts +50 -0
  37. package/ts/gitlab.helpers.ts +26 -0
  38. package/ts/index.ts +19 -0
@@ -0,0 +1,47 @@
1
+ import type { GitLabClient } from './gitlab.classes.gitlabclient.js';
2
+ import type { IGitLabGroup, IListOptions, IVariableOptions } from './gitlab.interfaces.js';
3
+ import { GitLabProject } from './gitlab.classes.project.js';
4
+ import { GitLabVariable } from './gitlab.classes.variable.js';
5
+ export declare class GitLabGroup {
6
+ private client;
7
+ readonly id: number;
8
+ readonly name: string;
9
+ readonly fullPath: string;
10
+ readonly description: string;
11
+ readonly webUrl: string;
12
+ readonly visibility: string;
13
+ /** @internal */
14
+ constructor(client: GitLabClient, raw: IGitLabGroup);
15
+ getProjects(opts?: IListOptions): Promise<GitLabProject[]>;
16
+ getDescendantGroups(opts?: IListOptions): Promise<GitLabGroup[]>;
17
+ getVariables(): Promise<GitLabVariable[]>;
18
+ createVariable(key: string, value: string, opts?: IVariableOptions): Promise<GitLabVariable>;
19
+ updateVariable(key: string, value: string, opts?: IVariableOptions): Promise<GitLabVariable>;
20
+ deleteVariable(key: string): Promise<void>;
21
+ /**
22
+ * Update group properties.
23
+ */
24
+ update(data: {
25
+ name?: string;
26
+ path?: string;
27
+ description?: string;
28
+ visibility?: string;
29
+ }): Promise<void>;
30
+ /**
31
+ * Upload an avatar image for this group (multipart FormData).
32
+ */
33
+ setAvatar(imageData: Uint8Array, filename: string): Promise<void>;
34
+ /**
35
+ * Remove the group's avatar.
36
+ */
37
+ deleteAvatar(): Promise<void>;
38
+ /**
39
+ * Transfer this group to be a child of another group.
40
+ */
41
+ transfer(parentGroupId: number): Promise<void>;
42
+ /**
43
+ * Delete this group.
44
+ */
45
+ delete(): Promise<void>;
46
+ toJSON(): IGitLabGroup;
47
+ }
@@ -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==