feat: add Podman artifact support to Go bindings and remote clients

Add the Go bindings implementation necessary to support Artifacts.
Implement the tunnel interface that consumes the Artifacts Go bindings.

With this patch, users of the Podman remote clients will now be able to
manage OCI artifacts via the Podman CLI and Podman machine.

Jira: https://issues.redhat.com/browse/RUN-2714#

Signed-off-by: Lewis Roy <lewis@redhat.com>
This commit is contained in:
Lewis Roy
2025-07-31 22:34:14 +10:00
committed by Matt Heon
parent 906b97e3e1
commit 5dc87663a9
36 changed files with 1199 additions and 176 deletions

View File

@@ -0,0 +1,29 @@
package artifacts
import (
"context"
"net/http"
"github.com/containers/podman/v5/pkg/bindings"
"github.com/containers/podman/v5/pkg/domain/entities/types"
)
func Inspect(ctx context.Context, nameOrID string, options *InspectOptions) (*types.ArtifactInspectReport, error) {
conn, err := bindings.GetClient(ctx)
if err != nil {
return nil, err
}
response, err := conn.DoRequest(ctx, nil, http.MethodGet, "/artifacts/%s/json", nil, nil, nameOrID)
if err != nil {
return nil, err
}
defer response.Body.Close()
var inspectedData types.ArtifactInspectReport
if err := response.Process(&inspectedData); err != nil {
return nil, err
}
return &inspectedData, nil
}