Pronounced as gnocchi.
This project has three main objectives:
- Define a specification for storing Git repositories as OCI artifacts.
- Implement a Git remote helper to facilitate conversions of local Git repositories into remote OCI artifacts.
- Implement a Git LFS remote helper to support conversions of Git LFS pointer files.
The data model for storing Git repositories in OCI compliant registries follows the OCI image-spec. In particular, the data model is packaged as defined by the image manifest spec guidelines for artifact usage.
Refer to the Git OCI Artifact Specification.
git-remote-oci is a Git remote helper that implements a custom protocol for interacting with Git repositories stored in OCI compliant registries. It is designed to allow users to interact with git as they normally do in their day-to-day workflows, but use an OCI registry as remote storage. It does not require git-lfs-remote-oci.
git-remote-oci supports:
- Cloning
- Fetching/Pulling
- Pushing
- Evaluating remote references
- Any native Git actions involving a remote
git-lfs-remote-oci is a Git LFS custom transfer agent that implements the Git LFS custom transfer protocol. Specifically, it is a standalone transfer agent that does not require an LFS API server.
git-lfs-remote-oci supports all git-lfs features that involve a remote.
git-lfs-remote-oci does not require git-remote-oci.
Why use OCI registries as remote storage for Git repositories?
Existing tools, such as Zarf and the ASCE Data Tool, provide solutions for moving OCI images and artifacts across air-gapped environments. The primary use-case for the oci remote helper protocol is to efficiently transfer and store Git repositories in OCI registries to complement the air-gap capabilities of these tools.
For more information see the project proposal.
The documentation for git-remote-oci and git-lfs-remote-oci is organized as follows:
- Installation Guide: how to install
git-remote-ociandgit-lfs-remote-ocifrom source. - Quick Start Guide: provides initial usage of and configuration for
git-remote-ociandgit-lfs-remote-oci. - User Guide: provides usage examples.
- OCI Specification: defines the Git OCI artifact specification.
- Data Model: extends the specification by discussing the data model, intended for developers.
- Sequence Diagrams: outline how
git,git-remote-oci,git-lfs, andgit-lfs-remote-ociinteract with one another.
- Developer Guide: detailed guide for contributing to this project.
- Troubleshooting FAQ: frequently asked questions and their answers.
