You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Issue 564: add size filtering and typed min access level
Support excluding GitLab projects by statistics-backed size bounds and pass through minAccessLevel for project listing with AccessLevel-aligned typing.
Copy file name to clipboardExpand all lines: packages/schemas/src/v3/connection.schema.ts
+27Lines changed: 27 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -290,6 +290,18 @@ const schema = {
290
290
],
291
291
"description": "List of groups to sync with. All projects in the group (and recursive subgroups) visible to the provided `token` (if any) will be synced, unless explicitly defined in the `exclude` property. Subgroups can be specified by providing the path to the subgroup (e.g. `my-group/sub-group-a`)."
292
292
},
293
+
"minAccessLevel": {
294
+
"type": "integer",
295
+
"enum": [
296
+
5,
297
+
10,
298
+
20,
299
+
30,
300
+
40,
301
+
50
302
+
],
303
+
"description": "Minimum GitLab access level required for projects to be returned. Uses GitLab role levels where 20=Reporter, 30=Developer, 40=Maintainer, and 50=Owner."
304
+
},
293
305
"projects": {
294
306
"type": "array",
295
307
"items": {
@@ -362,6 +374,21 @@ const schema = {
362
374
"ci"
363
375
]
364
376
]
377
+
},
378
+
"size": {
379
+
"type": "object",
380
+
"description": "Exclude projects based on GitLab statistics size fields (in bytes).",
381
+
"properties": {
382
+
"min": {
383
+
"type": "integer",
384
+
"description": "Minimum project size (in bytes) to sync (inclusive). Projects smaller than this will be excluded."
385
+
},
386
+
"max": {
387
+
"type": "integer",
388
+
"description": "Maximum project size (in bytes) to sync (inclusive). Projects larger than this will be excluded."
* List of groups to sync with. All projects in the group (and recursive subgroups) visible to the provided `token` (if any) will be synced, unless explicitly defined in the `exclude` property. Subgroups can be specified by providing the path to the subgroup (e.g. `my-group/sub-group-a`).
136
136
*/
137
137
groups?: string[];
138
+
/**
139
+
* Minimum GitLab access level required for projects to be returned. Uses GitLab role levels where 20=Reporter, 30=Developer, 40=Maintainer, and 50=Owner.
140
+
*/
141
+
minAccessLevel?: 5|10|20|30|40|50;
138
142
/**
139
143
* List of individual projects to sync with. The project's namespace must be specified. See: https://docs.gitlab.com/ee/user/namespace/
* List of project topics to exclude when syncing. Projects that match one of the provided `topics` will be excluded from syncing. Glob patterns are supported.
167
171
*/
168
172
topics?: string[];
173
+
/**
174
+
* Exclude projects based on GitLab statistics size fields (in bytes).
175
+
*/
176
+
size?: {
177
+
/**
178
+
* Minimum project size (in bytes) to sync (inclusive). Projects smaller than this will be excluded.
179
+
*/
180
+
min?: number;
181
+
/**
182
+
* Maximum project size (in bytes) to sync (inclusive). Projects larger than this will be excluded.
Copy file name to clipboardExpand all lines: packages/schemas/src/v3/gitlab.schema.ts
+27Lines changed: 27 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -78,6 +78,18 @@ const schema = {
78
78
],
79
79
"description": "List of groups to sync with. All projects in the group (and recursive subgroups) visible to the provided `token` (if any) will be synced, unless explicitly defined in the `exclude` property. Subgroups can be specified by providing the path to the subgroup (e.g. `my-group/sub-group-a`)."
80
80
},
81
+
"minAccessLevel": {
82
+
"type": "integer",
83
+
"enum": [
84
+
5,
85
+
10,
86
+
20,
87
+
30,
88
+
40,
89
+
50
90
+
],
91
+
"description": "Minimum GitLab access level required for projects to be returned. Uses GitLab role levels where 20=Reporter, 30=Developer, 40=Maintainer, and 50=Owner."
92
+
},
81
93
"projects": {
82
94
"type": "array",
83
95
"items": {
@@ -150,6 +162,21 @@ const schema = {
150
162
"ci"
151
163
]
152
164
]
165
+
},
166
+
"size": {
167
+
"type": "object",
168
+
"description": "Exclude projects based on GitLab statistics size fields (in bytes).",
169
+
"properties": {
170
+
"min": {
171
+
"type": "integer",
172
+
"description": "Minimum project size (in bytes) to sync (inclusive). Projects smaller than this will be excluded."
173
+
},
174
+
"max": {
175
+
"type": "integer",
176
+
"description": "Maximum project size (in bytes) to sync (inclusive). Projects larger than this will be excluded."
* List of groups to sync with. All projects in the group (and recursive subgroups) visible to the provided `token` (if any) will be synced, unless explicitly defined in the `exclude` property. Subgroups can be specified by providing the path to the subgroup (e.g. `my-group/sub-group-a`).
38
38
*/
39
39
groups?: string[];
40
+
/**
41
+
* Minimum GitLab access level required for projects to be returned. Uses GitLab role levels where 20=Reporter, 30=Developer, 40=Maintainer, and 50=Owner.
42
+
*/
43
+
minAccessLevel?: 5|10|20|30|40|50;
40
44
/**
41
45
* List of individual projects to sync with. The project's namespace must be specified. See: https://docs.gitlab.com/ee/user/namespace/
* List of project topics to exclude when syncing. Projects that match one of the provided `topics` will be excluded from syncing. Glob patterns are supported.
69
73
*/
70
74
topics?: string[];
75
+
/**
76
+
* Exclude projects based on GitLab statistics size fields (in bytes).
77
+
*/
78
+
size?: {
79
+
/**
80
+
* Minimum project size (in bytes) to sync (inclusive). Projects smaller than this will be excluded.
81
+
*/
82
+
min?: number;
83
+
/**
84
+
* Maximum project size (in bytes) to sync (inclusive). Projects larger than this will be excluded.
Copy file name to clipboardExpand all lines: packages/schemas/src/v3/index.schema.ts
+27Lines changed: 27 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -705,6 +705,18 @@ const schema = {
705
705
],
706
706
"description": "List of groups to sync with. All projects in the group (and recursive subgroups) visible to the provided `token` (if any) will be synced, unless explicitly defined in the `exclude` property. Subgroups can be specified by providing the path to the subgroup (e.g. `my-group/sub-group-a`)."
707
707
},
708
+
"minAccessLevel": {
709
+
"type": "integer",
710
+
"enum": [
711
+
5,
712
+
10,
713
+
20,
714
+
30,
715
+
40,
716
+
50
717
+
],
718
+
"description": "Minimum GitLab access level required for projects to be returned. Uses GitLab role levels where 20=Reporter, 30=Developer, 40=Maintainer, and 50=Owner."
719
+
},
708
720
"projects": {
709
721
"type": "array",
710
722
"items": {
@@ -777,6 +789,21 @@ const schema = {
777
789
"ci"
778
790
]
779
791
]
792
+
},
793
+
"size": {
794
+
"type": "object",
795
+
"description": "Exclude projects based on GitLab statistics size fields (in bytes).",
796
+
"properties": {
797
+
"min": {
798
+
"type": "integer",
799
+
"description": "Minimum project size (in bytes) to sync (inclusive). Projects smaller than this will be excluded."
800
+
},
801
+
"max": {
802
+
"type": "integer",
803
+
"description": "Maximum project size (in bytes) to sync (inclusive). Projects larger than this will be excluded."
0 commit comments