Skip to content

Conversation

skyraider256526
Copy link

Many commands support the --format flag which accept a go template to allow for formatting for certain values, but it is not yet implemented for artifact inspect command.

Adding this feature will allow easy formatting in scripts as well as running it on a terminal.

This feature is implemented for artifact inspect by taking reference from images and network commands implementation.

Fixes: #27112

Does this PR introduce a user-facing change?

Flag `--format` has been added to `podman artifact inspect` command to allow for formatting of output data using go template

Copy link
Contributor

openshift-ci bot commented Sep 28, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: skyraider256526
Once this PR has been reviewed and has the lgtm label, please assign l0rd for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@baude
Copy link
Member

baude commented Sep 29, 2025

@Luap99 I'm thinking this was something I talked to you about and we hit the same thing when adding format. I think the problem is the perl code itself. What do you think about:

index c38b9b87b5..40cdf3d2f2 100755
--- a/hack/xref-helpmsgs-manpages
+++ b/hack/xref-helpmsgs-manpages
@@ -220,8 +220,8 @@ sub xref_by_help {
                 if ($k eq '--format' && ! ref($man->{$k})) {
                     # "podman inspect" tries to autodetect if it's being run
                     # on an image or container. It cannot sanely be documented.
-                    unless ("@subcommand" eq "inspect") {
-                        warn "$ME: 'podman @subcommand': --format options are available through autocomplete, but are not documented in $man->{_path}\n";
+                    unless ("@subcommand" =~ "inspect") {
+                        warn "$ME: '111podman @subcommand': --format options are available through autocomplete, but are not documented in $man->{_path}\n";
                         ++$Errs;
                     }
                     next OPTION;

@Luap99
Copy link
Member

Luap99 commented Sep 30, 2025

I don't think that is right, it will skip the --format check for all inspect commands if I understand this correctly.

Comment on lines 27 to 34
|.Manifest | Artifact manifest details (struct) |
|.Name | Artifact name (string) |
|.Digest | Artifact digest (sha256:+64-char hash) |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The hack/xref-helpmsgs-manpages is sensitive to a whitspace before the field name.
So if you add a space before each Placeholder name it will run however it generates a bunch of new errors as it only documents a small subset of all field exposed.

$ ./hack/xref-helpmsgs-manpages 
xref-helpmsgs-manpages: docs/source/markdown/podman-artifact-inspect.1.md:29: format specifier '.Digest' should precede '.Name'
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Annotations', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.ArtifactType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.CanChangeLayerCompression', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Config', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Config.Annotations', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Config.ArtifactType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Config.Data', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Config.Digest', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Config.MediaType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Config.Platform', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Config.Platform.Architecture', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Config.Platform.OS', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Config.Platform.OSFeatures', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Config.Platform.OSVersion', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Config.Platform.Variant', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Config.Size', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Config.URLs', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.ConfigInfo', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.LayerInfos', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Layers', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Annotations', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.ArtifactType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Config', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Config.Annotations', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Config.ArtifactType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Config.Data', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Config.Digest', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Config.MediaType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Config.Platform', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Config.Platform.Architecture', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Config.Platform.OS', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Config.Platform.OSFeatures', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Config.Platform.OSVersion', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Config.Platform.Variant', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Config.Size', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Config.URLs', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Layers', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.MediaType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.SchemaVersion', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Subject', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Subject.Annotations', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Subject.ArtifactType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Subject.Data', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Subject.Digest', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Subject.MediaType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Subject.Platform', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Subject.Platform.Architecture', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Subject.Platform.OS', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Subject.Platform.OSFeatures', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Subject.Platform.OSVersion', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Subject.Platform.Variant', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Subject.Size', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Subject.URLs', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Versioned', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Manifest.Versioned.SchemaVersion', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.MediaType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.SchemaVersion', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Subject', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Subject.Annotations', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Subject.ArtifactType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Subject.Data', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Subject.Digest', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Subject.MediaType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Subject.Platform', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Subject.Platform.Architecture', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Subject.Platform.OS', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Subject.Platform.OSFeatures', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Subject.Platform.OSVersion', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Subject.Platform.Variant', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Subject.Size', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Subject.URLs', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.UpdateLayerInfos', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Versioned', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Manifest.Versioned.SchemaVersion', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.Name', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Artifact.TotalSizeBytes', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format {{.Manifest' is a nested structure. Please add '...' to man page.
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Annotations', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.ArtifactType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.CanChangeLayerCompression', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Config', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Config.Annotations', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Config.ArtifactType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Config.Data', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Config.Digest', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Config.MediaType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Config.Platform', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Config.Platform.Architecture', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Config.Platform.OS', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Config.Platform.OSFeatures', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Config.Platform.OSVersion', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Config.Platform.Variant', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Config.Size', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Config.URLs', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.ConfigInfo', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.LayerInfos', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Layers', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Annotations', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.ArtifactType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Config', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Config.Annotations', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Config.ArtifactType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Config.Data', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Config.Digest', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Config.MediaType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Config.Platform', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Config.Platform.Architecture', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Config.Platform.OS', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Config.Platform.OSFeatures', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Config.Platform.OSVersion', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Config.Platform.Variant', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Config.Size', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Config.URLs', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Layers', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.MediaType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.SchemaVersion', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Subject', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Subject.Annotations', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Subject.ArtifactType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Subject.Data', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Subject.Digest', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Subject.MediaType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Subject.Platform', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Subject.Platform.Architecture', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Subject.Platform.OS', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Subject.Platform.OSFeatures', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Subject.Platform.OSVersion', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Subject.Platform.Variant', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Subject.Size', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Subject.URLs', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Versioned', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Manifest.Versioned.SchemaVersion', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.MediaType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.SchemaVersion', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Subject', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Subject.Annotations', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Subject.ArtifactType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Subject.Data', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Subject.Digest', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Subject.MediaType', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Subject.Platform', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Subject.Platform.Architecture', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Subject.Platform.OS', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Subject.Platform.OSFeatures', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Subject.Platform.OSVersion', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Subject.Platform.Variant', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Subject.Size', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Subject.URLs', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.UpdateLayerInfos', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Versioned', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.Manifest.Versioned.SchemaVersion', which is not in docs/source/markdown/podman-artifact-inspect.1.md
xref-helpmsgs-manpages: 'podman artifact inspect --format <TAB>' lists '.TotalSizeBytes', which is not in docs/source/markdown/podman-artifact-inspect.1.md

I don't think adding all them makes sense, most of them are duplicated that are reachable because of the embeed fields via two different paths.
Something like this should mak eit work I belive

| **Placeholder**          | **Description**                                    |
| ------------------------ | -------------------------------------------------- |
| .Artifact ...            | Artifact details (nested struct)                   |
| .Digest                  | Artifact digest (sha256:+64-char hash)             |
| .Manifest ...            | Artifact manifest details (struct)                 |
| .Name                    | Artifact name (string)                             |
| .TotalSizeBytes          | Total Size of the artifact in bytes                |

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have done the suggested changes, but was not able to run make validatepr in my system and verify it as golang-ci keeps getting killed due to insufficient RAM it seems.

It needs at least 4GB of RAM as per the warning and my current machine does not have that much free.
My current machine has 8GB of RAM

@TomSweeneyRedHat
Copy link
Member

@skyraider256526 looks like you need to rebase.

@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 3, 2025
@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 4, 2025
Copy link

[NON-BLOCKING] Packit jobs failed. @containers/packit-build please check. Everyone else, feel free to ignore.

@skyraider256526 skyraider256526 force-pushed the main branch 3 times, most recently from d3a9c64 to e53b359 Compare October 4, 2025 12:09
@skyraider256526
Copy link
Author

Not sure why but I getting lint error for files which I have not modified

pkg/systemd/quadlet/quadlet.go:961:47: unused-parameter: parameter 'name' seems to be unused, consider removing or renaming it as _ (revive)
func ConvertNetwork(network *parser.UnitFile, name string, unitsInfoMap map[string]*UnitInfo, isUser bool) (*parser.UnitFile, error, error) {
                                              ^
pkg/systemd/quadlet/quadlet.go:1050:45: unused-parameter: parameter 'name' seems to be unused, consider removing or renaming it as _ (revive)
func ConvertVolume(volume *parser.UnitFile, name string, unitsInfoMap map[string]*UnitInfo, isUser bool) (*parser.UnitFile, error, error) {
                                            ^

Should I fix those @Luap99 ?
image

@mheon
Copy link
Member

mheon commented Oct 7, 2025

Can you rebase? CI should be fixed now.

Many commands support the `--format` flag which accept a go template to
allow for formatting for certain values, but it is not
yet implemented for artifact inspect command.

Adding this feature will allow easy formatting in scripts as well as
running it on a terminal.

This feature is implemented for artifact inspect by taking reference
from images and network commands implementation.

Fixes: [containers#27112](containers#27112)

Signed-off-by: Akash Yadav <[email protected]>
@mheon
Copy link
Member

mheon commented Oct 8, 2025

That seems to have fixed things. Validate is complaining that there isn't a test added - would you mind adding one (either to test/e2e/artifact_test.go or test/system/702-artifact-created.bats?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

add podman artifact inspect --format flag
6 participants