github.com/ungtb10d/cli/v2@v2.0.0-20221110210412-98537dd9d6a1/pkg/cmd/repo/deploy-key/delete/http.go (about)

     1  package delete
     2  
     3  import (
     4  	"fmt"
     5  	"io"
     6  	"net/http"
     7  
     8  	"github.com/ungtb10d/cli/v2/api"
     9  	"github.com/ungtb10d/cli/v2/internal/ghinstance"
    10  	"github.com/ungtb10d/cli/v2/internal/ghrepo"
    11  )
    12  
    13  func deleteDeployKey(httpClient *http.Client, repo ghrepo.Interface, id string) error {
    14  	path := fmt.Sprintf("repos/%s/%s/keys/%s", repo.RepoOwner(), repo.RepoName(), id)
    15  	url := ghinstance.RESTPrefix(repo.RepoHost()) + path
    16  
    17  	req, err := http.NewRequest("DELETE", url, nil)
    18  	if err != nil {
    19  		return err
    20  	}
    21  
    22  	resp, err := httpClient.Do(req)
    23  	if err != nil {
    24  		return err
    25  	}
    26  	defer resp.Body.Close()
    27  
    28  	if resp.StatusCode > 299 {
    29  		return api.HandleHTTPError(resp)
    30  	}
    31  
    32  	_, err = io.Copy(io.Discard, resp.Body)
    33  	if err != nil {
    34  		return err
    35  	}
    36  
    37  	return nil
    38  }