plugin-throttling.js
plugin-throttling.js copied to clipboard
Provide better documentation
There are only 2 utility functions (onRateLimit and onSecondaryRateLimit) to define to use this library, yet they remain relatively cryptic despite the example provided in the README.
- What is the relationship between those 2 functions?
- When are those 2 functions respectively called?
- How does the returned value affect their execution?
- What are all the "sub-parameters" of the
optionsparameter? - Which of those parameters have default values, and what are those values?
Currently, it seems like I can mostly only imply these:
onRateLimitwill execute a retry if it returnstrue(but what aboutfalse? and whatonSecondaryRateLimit?)retryAfteruses the seconds as its time unit (why not include that information directly in the variable name? as per its name, this could even be interpreted as being a boolean we could use to trigger yet another retry)retryCountis a counter which starts at 0 and gets incremented by 1 afteronRateLimitis calledoptionscontains at least 2 values:urlandmethod(but what even ismethod?)
There is already #76 but it seems to mostly relate to GHE (and it's been open for so long anyways). Personally, I built a tool that extensively relies on plugin-throttling and I would assume most of my users are non-GHE, so I'm creating this issue to hopefully cover my case as well.
As per a recent PR, this doc link already provides a bit more info: https://octokit.github.io/rest.js/v19#throttling
Maybe it should be somehow integrated in the README.
Just ran into this as well, some additional information on this that might help understand at least some of your question can be found on the GH docs.
I recently added some more type information to the onRateLimit and onSecondaryRateLimit, and internal functions.
That should satisfy the needs for the options parameter.
The method key of the options parameter is the HTTP method of the request, ie POST
As mentioned, this all relates to the GitHub docs, https://docs.github.com/en/rest/overview/rate-limits-for-the-rest-api?apiVersion=2022-11-28