Skip to content

Comments

Add ORAS CLI integration for multi-platform manifest management#363

Draft
ianpittwood wants to merge 5 commits intomulti-metadata-attachmentsfrom
oras-oci-management
Draft

Add ORAS CLI integration for multi-platform manifest management#363
ianpittwood wants to merge 5 commits intomulti-metadata-attachmentsfrom
oras-oci-management

Conversation

@ianpittwood
Copy link
Contributor

Summary

  • Implements an oras-based alternative to docker buildx imagetools create for merging multi-platform images
  • Avoids authentication issues that affect Docker's imagetools when performing cross-registry operations
  • Adds OrasMergeWorkflow orchestrator that creates temporary manifest indexes, copies to target registries, and cleans up

Changes

  • posit_bakery/image/oras/oras.py: Main implementation with command classes and workflow orchestrator
  • posit_bakery/image/oras/__init__.py: Module exports
  • test/image/oras/test_oras.py: 37 unit tests covering all components

Test plan

  • Unit tests pass (just test -k oras)
  • Integration test with actual oras binary against test registry
  • Verify multi-platform manifest is created correctly
  • Verify tags are applied to all target registries
  • Verify temporary artifacts are cleaned up

🤖 Generated with Claude Code

Implements an oras-based alternative to `docker buildx imagetools create`
for merging multi-platform images. This avoids authentication issues that
affect Docker's imagetools when performing cross-registry operations.

The workflow:
1. Creates a temporary manifest index from platform-specific sources
2. Copies the index to all target registries/tags
3. Deletes the temporary index

Key components:
- find_oras_bin() for binary discovery using existing find_bin() pattern
- OrasManifestIndexCreate, OrasCopy, OrasManifestDelete command classes
- OrasMergeWorkflow orchestrator with from_image_target() factory method
- Source validation ensuring all sources are from the same repository

Includes 37 unit tests covering command construction, execution,
validation, workflow orchestration, and ImageTarget integration.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions
Copy link

github-actions bot commented Feb 19, 2026

Test Results

1 167 tests  +37   1 158 ✅ +28   13m 26s ⏱️ +31s
    1 suites ± 0       0 💤 ± 0 
    1 files   ± 0       3 ❌ + 3   6 🔥 +6 

For more details on these failures and errors, see this check.

Results for commit 85d7f86. ± Comparison against base commit 3132fb7.

♻️ This comment has been updated with latest results.

@ianpittwood ianpittwood changed the base branch from main to multi-metadata-attachments February 23, 2026 15:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant