-
Notifications
You must be signed in to change notification settings - Fork 531
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
feat: fallback to "raw" endpoint for manifest when rate limit is reached #496
base: main
Are you sure you want to change the base?
Conversation
Hi @Shegox 👋, Could you please share the logs where you encountered a rate limit issue? This will help us better understand the need for the changes you've proposed. |
I observed when running the actions with
|
@Shegox, Thank you for your response! Thanks for your effort! |
aad4c33
to
db66857
Compare
@Shegox, Basic validation checks are failing. Please review your changes and address these issues. |
@Shegox, the Basic validation is still failing. Please take a look at the job details and fix the issues. |
Description:
This PR leverages the raw endpoint (https://raw.githubusercontent.com/actions/go-versions/main/versions-manifest.json) to retrieve the golang manifest as a fallback mechanism. This allows GitHub Actions Runners, which have no API token and exceed the anonymous rate limit of 60 requests/hour/IP to still retrieve the manifest list without needing credentials.
This is especially helpful for GitHub Enterprise Server and self-hosted runners, as there multiple runners might share the same IP-address and quickly exceed the available rate limit. Supplying an access token for github.com is cumbersome, as it requires another technical user and the secret isn't exposed to forks, preventing builds from forks.
The implementation as a fallback mechanism minimizes the risk of breaking current workflows, as they will still use the normal API to retrieve the manifest.
Related issue:
This is similar to the implementation setup-python uses:
Check list:
I have tested this on our GitHub Enterprise Server with success: