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
Seems like we've been doing this for a long time, I can reproduce it with 3.0.0 at least, but probably goes way back.
GitLab converts attribute names of arrays when returning the links headers (tag_list=bla -> tag_list[]=bla), and because the queries differ (attribute vs. attribute[]), requests does not de-duplicate them. We had the same issue with URL-encoding which we fixed here #2219.
For list() calls we should be safe as they track the array attributes and know when to convert them even before sending. Probably 2 options/things to do:
add some handling to http_request() to also de-duplicate param vs param[]
try to always use ListMixin for any paginated response, and track array attributes (daydream: get it from openapi spec)
I think it's not just runners.all() but any custom method that follows pagination links and is not aware of arrays. At least they are duplicated only once, not appended continuously though
This issue was marked stale because it has been open 60 days with
no activity. Please remove the stale label or comment on this
issue. Otherwise, it will be closed in 15 days.
As an open-source project, we rely on community contributions to
address many of the reported issues. Without a proposed fix or
active work towards a solution it is our policy to close inactive
issues. This is documented in CONTRIBUTING.rst
How to keep this issue open:
If you are still experiencing this issue and are willing to
investigate a fix, please comment and let us know.
If you (or someone else) can propose a pull request with a
solution, that would be fantastic.
Any significant update or active discussion indicating progress
will also prevent closure.
We value your input. If you can help provide a fix, we'd be happy
to keep this issue open and support your efforts.
This issue was closed because it has been marked stale for 15 days
with no activity.
This open-source project relies on community contributions, and
while we value all feedback, we have a limited capacity to address
every issue without a clear path forward.
Currently, this issue hasn't received a proposed fix, and there
hasn't been recent active discussion indicating someone is planning
to work on it. To maintain a manageable backlog and focus our
efforts, we will be closing this issue for now.
This doesn't mean the issue isn't valid or important. If you or
anyone else in the community is willing to investigate and propose
a solution (e.g., by submitting a pull request), please do.
We believe that those who feel a bug is important enough to fix
should ideally be part of the solution. Your contributions are
highly welcome.
Thank you for your understanding and potential future
contributions.
Activity
nejch commentedon Aug 23, 2022
Seems like we've been doing this for a long time, I can reproduce it with 3.0.0 at least, but probably goes way back.
GitLab converts attribute names of arrays when returning the links headers (
tag_list=bla->tag_list[]=bla), and because the queries differ (attributevs.attribute[]), requests does not de-duplicate them. We had the same issue with URL-encoding which we fixed here #2219.For
list()calls we should be safe as they track the array attributes and know when to convert them even before sending. Probably 2 options/things to do:http_request()to also de-duplicateparamvsparam[]ListMixinfor any paginated response, and track array attributes (daydream: get it from openapi spec)I think it's not just
runners.all()but any custom method that follows pagination links and is not aware of arrays. At least they are duplicated only once, not appended continuously thoughgithub-actions commentedon Jul 9, 2025
This issue was marked stale because it has been open 60 days with
no activity. Please remove the stale label or comment on this
issue. Otherwise, it will be closed in 15 days.
As an open-source project, we rely on community contributions to
address many of the reported issues. Without a proposed fix or
active work towards a solution it is our policy to close inactive
issues. This is documented in CONTRIBUTING.rst
How to keep this issue open:
investigate a fix, please comment and let us know.
solution, that would be fantastic.
will also prevent closure.
We value your input. If you can help provide a fix, we'd be happy
to keep this issue open and support your efforts.
This is documented in CONTRIBUTING.rst
https://github.com/python-gitlab/python-gitlab/blob/main/CONTRIBUTING.rst
github-actions commentedon Jul 24, 2025
This issue was closed because it has been marked stale for 15 days
with no activity.
This open-source project relies on community contributions, and
while we value all feedback, we have a limited capacity to address
every issue without a clear path forward.
Currently, this issue hasn't received a proposed fix, and there
hasn't been recent active discussion indicating someone is planning
to work on it. To maintain a manageable backlog and focus our
efforts, we will be closing this issue for now.
This doesn't mean the issue isn't valid or important. If you or
anyone else in the community is willing to investigate and propose
a solution (e.g., by submitting a pull request), please do.
We believe that those who feel a bug is important enough to fix
should ideally be part of the solution. Your contributions are
highly welcome.
Thank you for your understanding and potential future
contributions.
This is documented in CONTRIBUTING.rst
https://github.com/python-gitlab/python-gitlab/blob/main/CONTRIBUTING.rst