Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handle rate limits with pygithub using decorator #44

Merged
merged 2 commits into from Jun 15, 2022

Conversation

mendhak
Copy link
Contributor

@mendhak mendhak commented Apr 18, 2021

In this PR I'm adding the ability to handle Github rate limits.

Using a decorator to capture the RateLimitException.
Then, calling the get_rate_limit() endpoint to get the actual limit.
Then, a thread.sleep to wait until the rate limit has been reset.

The best way I could think of was to wrap pygithub method calls.
I don't know of a cleaner way to do this without giving up intellisense/autocomplete.

Issue #42

@mendhak mendhak mentioned this pull request Apr 18, 2021
@stv0g
Copy link
Collaborator

stv0g commented Apr 19, 2021

Hi @mendhak,

thanks for your PR!

I agree that this isnt the most elegant way to implement it.
I would prefer if we can do this directly within PyGitHub.

It should be much easiert to do there.

@mendhak
Copy link
Contributor Author

mendhak commented Apr 19, 2021

Yeah sadly looks like PyGithub is happy to only provide information about the rate limits, but I can't find anything where they are handling the rate-limit-retry themselves. If you (anyone) can find anything, that would be quite useful, or point me at a neater approach of doing this.

I had a look at various threads:

PyGithub/PyGithub#1319
PyGithub/PyGithub#553

Also I had a look through their source code but that just seems to confirm, there are methods to return the value but not actually retry.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants