generic: authenticate eels simulator-build clones with the job token - #96
Draft
danceratopz wants to merge 1 commit into
Draft
generic: authenticate eels simulator-build clones with the job token#96danceratopz wants to merge 1 commit into
danceratopz wants to merge 1 commit into
Conversation
The git clone of execution-specs inside the eels simulator image builds runs anonymously and GitHub rate-limits anonymous git-over-HTTPS per IP, which intermittently kills consume-engine jobs during the image build (hive exits with "could not read Username" before any test runs). Pass the Actions job token via the github_token build-arg added to the eels simulator Dockerfiles in ethereum/hive#1606 so the clones count against authenticated limits. The token is job-scoped, expires when the job ends, and the flag is a no-op (unused build-arg warning) until the hive change is merged.
skylenet
approved these changes
Sep 3, 2026
danceratopz
marked this pull request as draft
September 3, 2026 15:11
danceratopz
marked this pull request as ready for review
September 3, 2026 15:26
spencer-tb
reviewed
Sep 3, 2026
spencer-tb
left a comment
Contributor
There was a problem hiding this comment.
If we use the BuildKit secret interface proposed in danceratopz/hive#3 here, please replace all three token build arguments with:
--sim.buildsecret id=github_token,env=HIVE_GITHUB_TOKENThen scope the token to the Hive action step:
- uses: ethpandaops/hive-github-action@master
env:
HIVE_GITHUB_TOKEN: ${{ github.token }}
with:This keeps the credential out of extra_flags, Hive's argv, logs, public result metadata, and Docker image history :)
Approving nonetheless, thanks!!
spencer-tb
approved these changes
Sep 3, 2026
spencer-tb
left a comment
Contributor
There was a problem hiding this comment.
Don't merge please until Dan is finished!
danceratopz
marked this pull request as draft
September 3, 2026 21:06
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
--sim.buildarg github_token=${{ github.token }}to the three eels simulator flag blocks in the generic workflow, so thegit cloneof execution-specs inside the simulator image builds authenticates instead of running anonymously.Motivation
GitHub rate-limits anonymous git-over-HTTPS per source IP, and the shared runners intermittently hit the limit. When that happens the simulator image build dies before any test runs and the job fails within minutes:
Recent examples: consume-engine, nethermind and consume-engine, reth on 2026-09-02. The same failure has been observed in ethereum/execution-specs CI and other EF repo infra on the same runner pool. GitHub tightened unauthenticated rate limits in May 2025 and documents authentication as the supported remedy.
Notes
github_tokenbuild-arg lands in the Dockerfiles via internal/libhive,simulators/ethereum/eels: support optional authenticated GitHub clones, redact token from recorded commands ethereum/hive#1606. Until that merges, this flag is a no-op: the classic builder emits an unused build-arg warning and the clone stays anonymous.github.tokenis the job-scoped Actions token: it needs no provisioning, works for cloning public repos, and expires when the job ends. The runner masks it in logs and job summaries.consume-syncandexecute-blobssimulators also accept the build-arg but are not run by this workflow, so no flags are added for them.