{
  "id": "skopeo",
  "name": "Skopeo",
  "homepage": "https://github.com/containers/skopeo",
  "description": "A command line utility that performs various operations on container images and image repositories.",
  "executables": [
    "skopeo"
  ],
  "dotfiles": {
    "paths": [],
    "secret": [
      "[configHome]/containers/auth.json"
    ]
  },
  "commands": {
    "format": 1,
    "label": "Skopeo",
    "description": "Copy or inspect container images. Credentials on the command line, signing, encryption, sync, delete and list-tags are left out; use an auth file for registry login.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": false,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "copy"
        ],
        "label": "Copy an image",
        "description": "Copy an image between registries, directories and archives. Use transport names like docker://, dir:, oci:.",
        "source": [
          {
            "id": "skopeo-man",
            "kind": "manual",
            "url": "https://github.com/containers/skopeo/blob/main/docs/skopeo-copy.1.md",
            "revision": "main",
            "evidence": "**skopeo copy** [*options*] _source-image_ _destination-image_\n**--all**, **-a**\n**--authfile** _path_\n**--preserve-digests**\n**--format**, **-f** _manifest-type_\nMANIFEST TYPE (oci, v2s1, or v2s2) to use in the destination\n**--quiet**, **-q**\n**--remove-signatures**\n**--src-tls-verify**=_bool_\n**--dest-tls-verify**=_bool_\n**--retry-times**"
          }
        ],
        "field": [
          {
            "id": "source",
            "label": "Source image",
            "description": "For example docker://docker.io/library/alpine:latest.",
            "type": "string",
            "position": 0,
            "min": 1,
            "sources": [
              "skopeo-man"
            ]
          },
          {
            "id": "destination",
            "label": "Destination image",
            "description": "For example dir:/tmp/alpine or docker://registry.example/alpine:latest.",
            "type": "string",
            "position": 1,
            "min": 1,
            "sources": [
              "skopeo-man"
            ]
          },
          {
            "id": "all",
            "label": "Copy all images of a multi-arch list",
            "type": "boolean",
            "option": [
              "--all",
              "-a"
            ],
            "sources": [
              "skopeo-man"
            ]
          },
          {
            "id": "format",
            "label": "Destination manifest type",
            "type": "enum",
            "option": [
              "--format",
              "-f"
            ],
            "choices": [
              {
                "value": "oci",
                "label": "oci"
              },
              {
                "value": "v2s1",
                "label": "v2s1"
              },
              {
                "value": "v2s2",
                "label": "v2s2"
              }
            ],
            "sources": [
              "skopeo-man"
            ]
          },
          {
            "id": "authfile",
            "label": "Auth file",
            "type": "path",
            "option": [
              "--authfile"
            ],
            "path": {
              "kind": "file",
              "role": "input"
            },
            "sources": [
              "skopeo-man"
            ]
          },
          {
            "id": "src_tls_verify",
            "label": "Verify source TLS",
            "type": "enum",
            "option": [
              "--src-tls-verify"
            ],
            "choices": [
              {
                "value": "true",
                "label": "Yes"
              },
              {
                "value": "false",
                "label": "No"
              }
            ],
            "sources": [
              "skopeo-man"
            ]
          },
          {
            "id": "dest_tls_verify",
            "label": "Verify destination TLS",
            "type": "enum",
            "option": [
              "--dest-tls-verify"
            ],
            "choices": [
              {
                "value": "true",
                "label": "Yes"
              },
              {
                "value": "false",
                "label": "No"
              }
            ],
            "sources": [
              "skopeo-man"
            ]
          },
          {
            "id": "remove_signatures",
            "label": "Do not copy signatures",
            "type": "boolean",
            "option": [
              "--remove-signatures"
            ],
            "sources": [
              "skopeo-man"
            ]
          },
          {
            "id": "preserve_digests",
            "label": "Preserve digests",
            "type": "boolean",
            "option": [
              "--preserve-digests"
            ],
            "sources": [
              "skopeo-man"
            ]
          },
          {
            "id": "retry_times",
            "label": "Retry times",
            "type": "integer",
            "option": [
              "--retry-times"
            ],
            "sources": [
              "skopeo-man"
            ]
          },
          {
            "id": "quiet",
            "label": "Quiet",
            "type": "boolean",
            "option": [
              "--quiet",
              "-q"
            ],
            "sources": [
              "skopeo-man"
            ]
          }
        ],
        "task": [
          {
            "id": "copy",
            "label": "Copy image",
            "fields": [
              "source",
              "destination",
              "all"
            ],
            "required": [
              "source",
              "destination"
            ]
          },
          {
            "id": "to-oci",
            "label": "Copy to an OCI layout",
            "set": {
              "format": [
                "oci"
              ]
            },
            "fields": [
              "source",
              "destination",
              "format"
            ],
            "required": [
              "source",
              "destination"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "source",
              "destination",
              "all",
              "format",
              "authfile"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "src_tls_verify",
              "dest_tls_verify",
              "remove_signatures",
              "preserve_digests",
              "retry_times",
              "quiet"
            ]
          }
        ]
      },
      {
        "path": [
          "inspect"
        ],
        "label": "Inspect an image",
        "description": "Print an image manifest or configuration without pulling it.",
        "source": [
          {
            "id": "skopeo-man",
            "kind": "manual",
            "url": "https://github.com/containers/skopeo/blob/main/docs/skopeo-inspect.1.md",
            "revision": "main",
            "evidence": "**--authfile** _path_\n**--config**\n**--format**, **-f**=*format*\n**--raw**\n**--tls-verify**=_bool_\n**--no-tags**, **-n**"
          }
        ],
        "field": [
          {
            "id": "image",
            "label": "Image",
            "description": "For example docker://docker.io/library/alpine:latest.",
            "type": "string",
            "position": 0,
            "min": 1,
            "sources": [
              "skopeo-man"
            ]
          },
          {
            "id": "raw",
            "label": "Raw manifest",
            "type": "boolean",
            "option": [
              "--raw"
            ],
            "sources": [
              "skopeo-man"
            ]
          },
          {
            "id": "config",
            "label": "Image configuration",
            "type": "boolean",
            "option": [
              "--config"
            ],
            "sources": [
              "skopeo-man"
            ]
          },
          {
            "id": "no_tags",
            "label": "Omit repository tags",
            "type": "boolean",
            "option": [
              "--no-tags",
              "-n"
            ],
            "sources": [
              "skopeo-man"
            ]
          },
          {
            "id": "format",
            "label": "Go template format",
            "type": "string",
            "option": [
              "--format",
              "-f"
            ],
            "sources": [
              "skopeo-man"
            ]
          },
          {
            "id": "authfile",
            "label": "Auth file",
            "type": "path",
            "option": [
              "--authfile"
            ],
            "path": {
              "kind": "file",
              "role": "input"
            },
            "sources": [
              "skopeo-man"
            ]
          },
          {
            "id": "tls_verify",
            "label": "Verify TLS",
            "type": "enum",
            "option": [
              "--tls-verify"
            ],
            "choices": [
              {
                "value": "true",
                "label": "Yes"
              },
              {
                "value": "false",
                "label": "No"
              }
            ],
            "sources": [
              "skopeo-man"
            ]
          }
        ],
        "task": [
          {
            "id": "manifest",
            "label": "Show raw manifest",
            "set": {
              "raw": [
                true
              ]
            },
            "fields": [
              "image",
              "raw"
            ],
            "required": [
              "image"
            ]
          },
          {
            "id": "summary",
            "label": "Summary without tags",
            "fields": [
              "image",
              "no_tags"
            ],
            "required": [
              "image"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "image",
              "raw",
              "config",
              "no_tags"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "format",
              "authfile",
              "tls_verify"
            ]
          }
        ]
      }
    ]
  }
}
