File tree Expand file tree Collapse file tree 1 file changed +14
-0
lines changed Expand file tree Collapse file tree 1 file changed +14
-0
lines changed Original file line number Diff line number Diff line change @@ -1174,6 +1174,8 @@ def __init__(
1174
1174
# Preserve kwargs for subsequent queries
1175
1175
self ._kwargs = kwargs .copy ()
1176
1176
1177
+ self ._retrieved_object_ids : set [int ] = set ()
1178
+
1177
1179
self ._query (url , query_data , ** self ._kwargs )
1178
1180
self ._get_next = get_next
1179
1181
@@ -1205,6 +1207,18 @@ def _query(
1205
1207
error_message = "Failed to parse the server message"
1206
1208
) from e
1207
1209
1210
+ duplicate_ids = set (o ["id" ] for o in self ._data ) & self ._retrieved_object_ids
1211
+ if duplicate_ids :
1212
+ utils .warn (
1213
+ message = (
1214
+ f"During pagination duplicate object(s) with id(s) "
1215
+ f"{ duplicate_ids } returned from Gitlab and filtered"
1216
+ ),
1217
+ category = UserWarning ,
1218
+ )
1219
+ self ._data = [o for o in self ._data if o ["id" ] not in duplicate_ids ]
1220
+ self ._retrieved_object_ids .update (o ["id" ] for o in self ._data )
1221
+
1208
1222
self ._current = 0
1209
1223
1210
1224
@property
You can’t perform that action at this time.
0 commit comments