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] # https://github.com/podman-container-tools/skopeo/blob/main/README.md — the # README says `skopeo login` writes authorization state to # $XDG_RUNTIME_DIR/containers/auth.json by default on Linux, while the # containers-auth.json mechanism also searches $XDG_CONFIG_HOME/containers/ # auth.json. The runtime root cannot be represented by this catalog; the # portable user config spelling is the one we can safely name. 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 } [[commands.subcommand]] path = ["copy"] label = "Copy an image" description = "Copy an image between registries, directories and archives. Use transport names like docker://, dir:, oci:." [[commands.subcommand.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_ **--all**, **-a** **--authfile** _path_ **--preserve-digests** **--format**, **-f** _manifest-type_ MANIFEST TYPE (oci, v2s1, or v2s2) to use in the destination **--quiet**, **-q** **--remove-signatures** **--src-tls-verify**=_bool_ **--dest-tls-verify**=_bool_ **--retry-times**''' [[commands.subcommand.field]] id = "source" label = "Source image" description = "For example docker://docker.io/library/alpine:latest." type = "string" position = 0 min = 1 sources = ["skopeo-man"] [[commands.subcommand.field]] 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"] [[commands.subcommand.field]] id = "all" label = "Copy all images of a multi-arch list" type = "boolean" option = ["--all", "-a"] sources = ["skopeo-man"] [[commands.subcommand.field]] 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"] [[commands.subcommand.field]] id = "authfile" label = "Auth file" type = "path" option = ["--authfile"] path = { kind = "file", role = "input" } sources = ["skopeo-man"] [[commands.subcommand.field]] 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"] [[commands.subcommand.field]] 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"] [[commands.subcommand.field]] id = "remove_signatures" label = "Do not copy signatures" type = "boolean" option = ["--remove-signatures"] sources = ["skopeo-man"] [[commands.subcommand.field]] id = "preserve_digests" label = "Preserve digests" type = "boolean" option = ["--preserve-digests"] sources = ["skopeo-man"] [[commands.subcommand.field]] id = "retry_times" label = "Retry times" type = "integer" option = ["--retry-times"] sources = ["skopeo-man"] [[commands.subcommand.field]] id = "quiet" label = "Quiet" type = "boolean" option = ["--quiet", "-q"] sources = ["skopeo-man"] [[commands.subcommand.task]] id = "copy" label = "Copy image" fields = ["source", "destination", "all"] required = ["source", "destination"] [[commands.subcommand.task]] id = "to-oci" label = "Copy to an OCI layout" set = { format = ["oci"] } fields = ["source", "destination", "format"] required = ["source", "destination"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["source", "destination", "all", "format", "authfile"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["src_tls_verify", "dest_tls_verify", "remove_signatures", "preserve_digests", "retry_times", "quiet"] [[commands.subcommand]] path = ["inspect"] label = "Inspect an image" description = "Print an image manifest or configuration without pulling it." [[commands.subcommand.source]] id = "skopeo-man" kind = "manual" url = "https://github.com/containers/skopeo/blob/main/docs/skopeo-inspect.1.md" revision = "main" evidence = '''**--authfile** _path_ **--config** **--format**, **-f**=*format* **--raw** **--tls-verify**=_bool_ **--no-tags**, **-n**''' [[commands.subcommand.field]] id = "image" label = "Image" description = "For example docker://docker.io/library/alpine:latest." type = "string" position = 0 min = 1 sources = ["skopeo-man"] [[commands.subcommand.field]] id = "raw" label = "Raw manifest" type = "boolean" option = ["--raw"] sources = ["skopeo-man"] [[commands.subcommand.field]] id = "config" label = "Image configuration" type = "boolean" option = ["--config"] sources = ["skopeo-man"] [[commands.subcommand.field]] id = "no_tags" label = "Omit repository tags" type = "boolean" option = ["--no-tags", "-n"] sources = ["skopeo-man"] [[commands.subcommand.field]] id = "format" label = "Go template format" type = "string" option = ["--format", "-f"] sources = ["skopeo-man"] [[commands.subcommand.field]] id = "authfile" label = "Auth file" type = "path" option = ["--authfile"] path = { kind = "file", role = "input" } sources = ["skopeo-man"] [[commands.subcommand.field]] id = "tls_verify" label = "Verify TLS" type = "enum" option = ["--tls-verify"] choices = [{ value = "true", label = "Yes" }, { value = "false", label = "No" }] sources = ["skopeo-man"] [[commands.subcommand.task]] id = "manifest" label = "Show raw manifest" set = { raw = [true] } fields = ["image", "raw"] required = ["image"] [[commands.subcommand.task]] id = "summary" label = "Summary without tags" fields = ["image", "no_tags"] required = ["image"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["image", "raw", "config", "no_tags"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["format", "authfile", "tls_verify"]