mirror of
https://github.com/containers/podman.git
synced 2025-12-11 17:27:19 +08:00
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>
31 lines
705 B
Go
31 lines
705 B
Go
package artifacts
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
|
|
"github.com/containers/podman/v5/pkg/bindings"
|
|
"github.com/containers/podman/v5/pkg/domain/entities"
|
|
)
|
|
|
|
// List returns a list of artifacts in local storage.
|
|
func List(ctx context.Context, options *ListOptions) ([]*entities.ArtifactListReport, error) {
|
|
conn, err := bindings.GetClient(ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
response, err := conn.DoRequest(ctx, nil, http.MethodGet, "/artifacts/json", nil, nil)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer response.Body.Close()
|
|
|
|
var artifactSummary []*entities.ArtifactListReport
|
|
if err := response.Process(&artifactSummary); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return artifactSummary, nil
|
|
}
|