File tree Expand file tree Collapse file tree 1 file changed +17
-1
lines changed Expand file tree Collapse file tree 1 file changed +17
-1
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 ._prev_page_objects = []
1178
+
1177
1179
self ._query (url , query_data , ** self ._kwargs )
1178
1180
self ._get_next = get_next
1179
1181
@@ -1199,12 +1201,26 @@ def _query(
1199
1201
self ._total : Optional [str ] = result .headers .get ("X-Total" )
1200
1202
1201
1203
try :
1202
- self . _data : List [Dict [str , Any ]] = result .json ()
1204
+ data : List [Dict [str , Any ]] = result .json ()
1203
1205
except Exception as e :
1204
1206
raise gitlab .exceptions .GitlabParsingError (
1205
1207
error_message = "Failed to parse the server message"
1206
1208
) from e
1207
1209
1210
+ self ._data = []
1211
+ for item in data :
1212
+ if item in self ._prev_page_objects :
1213
+ utils .warn (
1214
+ message = (
1215
+ f"During pagination duplicate object with id "
1216
+ f"{ item ['id' ]} returned from Gitlab and filtered"
1217
+ ),
1218
+ category = UserWarning ,
1219
+ )
1220
+ continue
1221
+ self ._data .append (item )
1222
+
1223
+ self ._prev_page_objects = list (self ._data )
1208
1224
self ._current = 0
1209
1225
1210
1226
@property
You can’t perform that action at this time.
0 commit comments