API rate limit exceeded
### Describe the bug
When running tests in CI, with Vite serving pages for the test runner, this might run into API rate limit exceeded errors.
This was reported in https://github.com/liuweiGL/vite-plugin-mkcert/issues/70, but I find it more desirable to use an official source (i.e. the mkcert repo)
### Reproduction
Run repeated Vite builds using a fixed IP
### System Info
Output of `npx envinfo --system --npmPackages vite,vite-plugin-mkcert --binaries --browsers`:
```node
System:
OS: Linux 6.11 Ubuntu 24.04.2 LTS 24.04.2 LTS (Noble Numbat)
CPU: (16) x64 12th Gen Intel(R) Core(TM) i7-1260P
Memory: 15.79 GB / 30.96 GB
Container: Yes
Shell: 3.7.0 - /usr/bin/fish
Binaries:
Node: 22.14.0 - ~/.nvm/versions/node/v22.14.0/bin/node
Yarn: 1.22.22 - ~/.local/share/pnpm/yarn
npm: 10.9.2 - ~/.nvm/versions/node/v22.14.0/bin/npm
pnpm: 10.9.0 - ~/.local/share/pnpm/pnpm
bun: 1.0.4 - ~/.bun/bin/bun
Browsers:
Chrome: 137.0.7151.103
```
Used package manager: pnpm
### Logs <!-- (Optional if provided reproduction) -->
<!--
Please try not to insert an image but copy paste the log text.
1. set environment `DEBUG`=`vite:plugin:mkcert`
2. Run `vite --clearScreen=false`
2. Provide the error log here.
`node` is used as highlight to improve some colors in stack-traces
If it doesn't work quite well, try `console`
-->
```node
RequestError [HttpError]: API rate limit exceeded for 13.220.68.32. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) - https://docs.github.com/rest/overview/resources-in-the-rest-api#rate-limiting
at /opt/atlassian/pipelines/agent/build/node_modules/.pnpm/@octokit+request@8.4.0/node_modules/@octokit/request/dist-node/index.js:125:21
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
at async _GithubSource.getSourceInfo (file:///opt/atlassian/pipelines/agent/build/node_modules/.pnpm/vite-plugin-mkcert@1.17.6_vite@5.4.11_@types+node@22.10.5_sass-embedded@1.83.1_sass@1.89.2_terser@5.42.0_/node_modules/vite-plugin-mkcert/dist/mkcert.mjs:263:22)
at async _Mkcert.getSourceInfo (file:///opt/atlassian/pipelines/agent/build/node_modules/.pnpm/vite-plugin-mkcert@1.17.6_vite@5.4.11_@types+node@22.10.5_sass-embedded@1.83.1_sass@1.89.2_terser@5.42.0_/node_modules/vite-plugin-mkcert/dist/mkcert.mjs:535:24)
at async _Mkcert.initMkcert (file:///opt/atlassian/pipelines/agent/build/node_modules/.pnpm/vite-plugin-mkcert@1.17.6_vite@5.4.11_@types+node@22.10.5_sass-embedded@1.83.1_sass@1.89.2_terser@5.42.0_/node_modules/vite-plugin-mkcert/dist/mkcert.mjs:543:24)
at async _Mkcert.init (file:///opt/atlassian/pipelines/agent/build/node_modules/.pnpm/vite-plugin-mkcert@1.17.6_vite@5.4.11_@types+node@22.10.5_sass-embedded@1.83.1_sass@1.89.2_terser@5.42.0_/node_modules/vite-plugin-mkcert/dist/mkcert.mjs:529:7)
at async config (file:///opt/atlassian/pipelines/agent/build/node_modules/.pnpm/vite-plugin-mkcert@1.17.6_vite@5.4.11_@types+node@22.10.5_sass-embedded@1.83.1_sass@1.89.2_terser@5.42.0_/node_modules/vite-plugin-mkcert/dist/mkcert.mjs:638:7)
at async runConfigHook (file:///opt/atlassian/pipelines/agent/build/node_modules/.pnpm/vite@5.4.11_@types+node@22.10.5_sass-embedded@1.83.1_sass@1.89.2_terser@5.42.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:66720:19)
at async resolveConfig (file:///opt/atlassian/pipelines/agent/build/node_modules/.pnpm/vite@5.4.11_@types+node@22.10.5_sass-embedded@1.83.1_sass@1.89.2_terser@5.42.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:66169:12)
at async _createServer (file:///opt/atlassian/pipelines/agent/build/node_modules/.pnpm/vite@5.4.11_@types+node@22.10.5_sass-embedded@1.83.1_sass@1.89.2_terser@5.42.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:62758:18) {
status: 403,
response: {
url: 'https://api.github.com/repos/FiloSottile/mkcert/releases/latest',
status: 403,
headers: {
'access-control-allow-origin': '*',
'access-control-expose-headers': 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-RateLimit-Used, X-RateLimit-Resource, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset',
'content-length': '278',
'content-security-policy': "default-src 'none'; style-src 'unsafe-inline'",
'content-type': 'application/json; charset=utf-8',
date: 'Mon, 16 Jun 2025 14:09:05 GMT',
'referrer-policy': 'origin-when-cross-origin, strict-origin-when-cross-origin',
server: 'Varnish',
'strict-transport-security': 'max-age=31536000; includeSubdomains; preload',
'x-content-type-options': 'nosniff',
'x-frame-options': 'deny',
'x-github-media-type': 'github.v3; format=json',
'x-github-request-id': '8014:32740A:23049:46204:68502581',
'x-ratelimit-limit': '60',
'x-ratelimit-remaining': '0',
'x-ratelimit-reset': '1750086531',
'x-ratelimit-resource': 'core',
'x-ratelimit-used': '60',
'x-xss-protection': '1; mode=block'
},
data: {
message: "API rate limit exceeded for 13.220.68.32. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)",
documentation_url: 'https://docs.github.com/rest/overview/resources-in-the-rest-api#rate-limiting'
}
},
request: {
method: 'GET',
url: 'https://api.github.com/repos/FiloSottile/mkcert/releases/latest',
headers: {
accept: 'application/vnd.github.v3+json',
'user-agent': 'octokit-rest.js/20.1.1 octokit-core.js/5.2.0 Node.js/22'
},
request: { hook: [Function: bound bound register] }
}
}
```
---
关闭于 2025-06-20 2 条评论