Skip to content

act3-ai/gnoci

Repository files navigation

Git o(n) OCI (gnoci)

GitHub release (latest SemVer) dagger Coverage Go Report Card License

Pronounced as gnocchi.

This project has three main objectives:

  1. Define a specification for storing Git repositories as OCI artifacts.
  2. Implement a Git remote helper to facilitate conversions of local Git repositories into remote OCI artifacts.
  3. Implement a Git LFS remote helper to support conversions of Git LFS pointer files.

OCI Specification

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 Helper for OCI Registries

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

Clone Demo

Git LFS Remote Helper for OCI Registries

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.

Purpose

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.

Documentation

The documentation for git-remote-oci and git-lfs-remote-oci is organized as follows:

  • Installation Guide: how to install git-remote-oci and git-lfs-remote-oci from source.
  • Quick Start Guide: provides initial usage of and configuration for git-remote-oci and git-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, and git-lfs-remote-oci interact with one another.

How to Contribute

Support

Code Coverage

Coverage

About

A Git remote helper for syncing Git repositories in OCI Registries.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors