Skip to content

Latest commit

 

History

History
102 lines (71 loc) · 3.19 KB

File metadata and controls

102 lines (71 loc) · 3.19 KB

RegShape

GitHub issues GitHub pull requests

RegShape

RegShape (from REGistry reSHAPE) is a CLI tool and a Python library for manipulating artifacts in an OCI registry. While there are many other tools that can do this (see ORAS, regclient, or Google's crane), the goal of RegShape is to provide flexibility to manipulate the requests with an intention to break the consistency of the artifacts.

You can use RegShape in two modes:

  • Standard mode — interact with registries as you would with any other tool: pull and push manifests, blobs, tags, and more.
  • Expert / break mode — manually craft requests to test registry implementations and probe their security boundaries.

RegShape is written in Python and offers Python libraries that can be leveraged to build your own tools. The CLI is built on top of the libraries and uses the Click framework.

Note: The tool is still in early development and the API is not stable yet.

Installation

git clone https://github.com/toddysm/regshape.git
cd regshape
pip install -e .

Quick Start

Ping a registry to verify connectivity:

regshape ping registry-1.docker.io

Retrieve a manifest:

regshape manifest get -i docker.io/library/alpine:latest

List tags for a repository:

regshape tag list -i docker.io/library/alpine

Documentation

Guides

Architecture & Design

CLI Command Specs

Command Spec
Auth specs/cli/auth.md
Blob specs/cli/blob.md
Catalog specs/cli/catalog.md
Manifest specs/cli/manifest.md
Tag specs/cli/tag.md
Referrer specs/cli/referrer.md
Ping specs/cli/ping.md
Layout specs/cli/layout.md
Layout Push specs/cli/layout-push.md
Formatting specs/cli/formatting.md

Library Specs

  • Models — Blob, Catalog, Error, Manifest, Referrer, Tags
  • Operations — Blobs, Catalog, Manifests, Referrers, Tags

Contributing

See CONTRIBUTING.md for instructions on setting up your development environment.

Security

To report a vulnerability, please see SECURITY.md.

License

This project is licensed under the Apache License 2.0 — see the LICENSE file for details.