...

Source file src/cuelabs.dev/go/oci/ociregistry/ociclient/deleter.go

Documentation: cuelabs.dev/go/oci/ociregistry/ociclient

     1  // Copyright 2023 CUE Labs AG
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  package ociclient
    16  
    17  import (
    18  	"context"
    19  	"net/http"
    20  
    21  	"cuelabs.dev/go/oci/ociregistry"
    22  	"cuelabs.dev/go/oci/ociregistry/internal/ocirequest"
    23  )
    24  
    25  func (c *client) DeleteBlob(ctx context.Context, repoName string, digest ociregistry.Digest) error {
    26  	return c.delete(ctx, &ocirequest.Request{
    27  		Kind:   ocirequest.ReqBlobDelete,
    28  		Repo:   repoName,
    29  		Digest: string(digest),
    30  	})
    31  }
    32  
    33  func (c *client) DeleteManifest(ctx context.Context, repoName string, digest ociregistry.Digest) error {
    34  	return c.delete(ctx, &ocirequest.Request{
    35  		Kind:   ocirequest.ReqManifestDelete,
    36  		Repo:   repoName,
    37  		Digest: string(digest),
    38  	})
    39  }
    40  
    41  func (c *client) DeleteTag(ctx context.Context, repoName string, tagName string) error {
    42  	return c.delete(ctx, &ocirequest.Request{
    43  		Kind: ocirequest.ReqManifestDelete,
    44  		Repo: repoName,
    45  		Tag:  tagName,
    46  	})
    47  }
    48  
    49  func (c *client) delete(ctx context.Context, rreq *ocirequest.Request) error {
    50  	resp, err := c.doRequest(ctx, rreq, http.StatusAccepted)
    51  	if err != nil {
    52  		return err
    53  	}
    54  	resp.Body.Close()
    55  	return nil
    56  }
    57  

View as plain text