Repository navigation
Closed as not planned
Labels
Description
Thanks @JohnVillalovos! Would it make sense to add another case to
python-gitlab/tests/functional/api/test_gitlab.py
Lines 160 to 183 in 4cb7d92
| def test_rate_limits(gl): | |
| settings = gl.settings.get() | |
| settings.throttle_authenticated_api_enabled = True | |
| settings.throttle_authenticated_api_requests_per_period = 1 | |
| settings.throttle_authenticated_api_period_in_seconds = 3 | |
| settings.save() | |
| projects = [] | |
| for i in range(0, 20): | |
| projects.append(gl.projects.create({"name": f"{str(i)}ok"})) | |
| with pytest.raises(gitlab.GitlabCreateError) as e: | |
| for i in range(20, 40): | |
| projects.append( | |
| gl.projects.create( | |
| {"name": f"{str(i)}shouldfail"}, obey_rate_limit=False | |
| ) | |
| ) | |
| assert "Retry later" in str(e.value) | |
| settings.throttle_authenticated_api_enabled = False | |
| settings.save() | |
| [project.delete() for project in projects] |
retry-after, e.g. user as mentioned in the issue? Although this might need 14.8 and not sure if it's enabled by default. Just wondering. https://docs.gitlab.com/ee/user/admin_area/settings/rate_limit_on_users_api.html#rate-limits-on-users-api
(If we do this, I would maybe turn the settings into a fixture to use in both tests, and do the cleanup after yield to make it more reusable, e.g.)
@pytest.fixture
def rate_limit_settings(gl):
settings = gl.settings.get()
settings.throttle_authenticated_api_enabled = True
settings.throttle_authenticated_api_requests_per_period = 1
settings.throttle_authenticated_api_period_in_seconds = 3
settings.save()
yield settings
settings.throttle_authenticated_api_enabled = False
settings.save()PS: Interesting, looks like these headers are also useful to avoid 429s altogether, looking at go-gitlab with some fancy rate-limiting code: xanzy/go-gitlab@d8bb0b4
Originally posted by @nejch in #1895 (comment)
Activity
github-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