You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug] Unauthenticated GitHub API requests cause 403 Rate Limit errors when clicking "SET AS STABLE" #196
When attempting to submit an adapter version to the stable repository by clicking the "SET AS STABLE" button in the Developer Portal, the operation fails with a 403 Forbidden error from the GitHub API.
Error Output / Logs
Please fix the following errors before you can continue:
[E0000] FATAL: cannot access repository https://api.github.com/repos/meistermopper/ioBroker.harvia-fenix
[E9999] GLOBAL ERROR: AxiosError: Request failed with status code 403, {"message":"Request failed with status code 403","name":"AxiosError","stack":"AxiosError: Request failed with status code 403
at settle (/app/node_modules/axios/dist/node/axios.cjs:2216:12)
at IncomingMessage.handleStreamEnd (/app/node_modules/axios/dist/node/axios.cjs:4062:11)
Root Cause Analysis
Inspecting the Axios request configuration inside the error payload reveals that the HTTP GET request to https://api.github.com/repos/... is executed without an Authorization header:
Because requests are unauthenticated, GitHub enforces the strict IP-based rate limit of 60 requests/hour across the entire dev-portal server instance. Once this quota is exhausted by background tasks or multiple users, all subsequent operations fail with HTTP 403.
Expected Behavior
The GitHub API request should include an authorization token (either the logged-in user's GitHub OAuth token or a dedicated bot/application token via OWN_GITHUB_TOKEN / Authorization: Bearer <token>), allowing up to 5,000 requests/hour and preventing rate limit collisions.
Suggested Solutions
Pass the user's OAuth access token (or a backend GitHub token) to the repochecker / API client in the Authorization header.
Inspect x-ratelimit-remaining and x-ratelimit-reset response headers to handle rate-limiting gracefully with a descriptive user message rather than failing with an unhandled Axios 403 error.
Repochecker 5.21.0 accepts a new paramater githubToken. If request.queryStringParameters.githubToken is set this string will be used as github token to authenticate for axios calls. The token will NOT be loaded into the environment but only store within code.
Activity
mcm1957 commentedon Aug 14, 2026
Note for dev-portal maintainer:
repochecker honors environment variable OWN_GITHUB_TOKEN. Please set it to a valid token before calling repochecker.
raschy commentedon Aug 15, 2026
@meistermopper Thank you for creating this issue.
mcm1957 commentedon Sep 5, 2026
@Apollon77 @UncleSamSwiss
Repochecker 5.21.0 accepts a new paramater githubToken. If request.queryStringParameters.githubToken is set this string will be used as github token to authenticate for axios calls. The token will NOT be loaded into the environment but only store within code.
Feel free to test.