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 }
[[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"]