fix(build): preserve signed Ubuntu apt sources#77
Merged
Conversation
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.
Summary
Signed-Bymetadata and reject unsupported plaintext apt sourcesWhat changed
http://tohttps://rewrite from the Docker build bootstrapWhy
The previous hardening forced Ubuntu ports traffic over HTTPS. That diverged from the official Ubuntu arm64 base image source configuration and repeatedly broke remote multi-arch package builds in the publish job. Ubuntu archive package authenticity is provided by signed archive metadata and the Ubuntu archive keyring; the safer operational policy here is to preserve signed official Ubuntu archive sources and block unknown plaintext repositories.
Validation
uv run --with pytest --with defusedxml pytest tests/template/test_security_defaults.pydocker buildx build --no-cache --progress=plain --platform linux/arm64 --load -t mem0-aio:arm64-apt-http .docker buildx build --no-cache --progress=plain --platform linux/amd64 --load -t mem0-aio:amd64-apt-http .uv run --with pytest --with defusedxml pytest(23 passed in 177.87s)git diff --checkaio-fleet validate-repo --repo mem0-aio --repo-path /Users/shadowbook/.codex/worktrees/security-2026-05-09/mem0-aioaio-fleet trunk run --repo mem0-aio --repo-path /Users/shadowbook/.codex/worktrees/security-2026-05-09/mem0-aio --no-fixNotes
This is intended to unblock the normal aio-fleet publish path for mem0-aio. It does not create a formal GitHub Release; app images/packages publish from
main, while formal releases remain release-driven.