MCPcopy Create free account
hub / github.com/idosal/git-mcp / respectRateLimits

Function respectRateLimits

src/api/utils/githubClient.ts:96–114  ·  view source on GitHub ↗

* Delay execution to respect rate limits

()

Source from the content-addressed store, hash-verified

94 * Delay execution to respect rate limits
95 */
96async function respectRateLimits(): Promise<void> {
97 // If we have very few requests remaining, add delay
98 if (apiRateLimit.remaining < 5 && apiRateLimit.resetTime) {
99 const timeUntilReset = apiRateLimit.resetTime.getTime() - Date.now();
100
101 // If reset time is in the future, delay until reset
102 if (timeUntilReset > 0) {
103 console.log(
104 `Rate limit low (${apiRateLimit.remaining} remaining). Waiting ${timeUntilReset}ms until reset`,
105 );
106 await new Promise((resolve) =>
107 setTimeout(resolve, Math.min(timeUntilReset + 1000, 60000)),
108 ); // Max 1 minute wait
109 }
110 } else {
111 // Add a small delay between requests to avoid hitting rate limits
112 await new Promise((resolve) => setTimeout(resolve, DEFAULT_DELAY));
113 }
114}
115
116/**
117 * Make a GitHub API request with rate limit handling

Callers 1

githubApiRequestFunction · 0.85

Calls 2

nowMethod · 0.80
logMethod · 0.80

Tested by

no test coverage detected