"Fossies" - the Fresh Open Source Software Archive

Member "cri-o-1.25.1/vendor/github.com/google/go-github/v45/github/actions_artifacts.go" (7 Oct 2022, 4578 Bytes) of package /linux/misc/cri-o-1.25.1.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Go source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 // Copyright 2020 The go-github AUTHORS. All rights reserved.
    2 //
    3 // Use of this source code is governed by a BSD-style
    4 // license that can be found in the LICENSE file.
    5 
    6 package github
    7 
    8 import (
    9     "context"
   10     "fmt"
   11     "net/http"
   12     "net/url"
   13 )
   14 
   15 // Artifact reprents a GitHub artifact.  Artifacts allow sharing
   16 // data between jobs in a workflow and provide storage for data
   17 // once a workflow is complete.
   18 //
   19 // GitHub API docs: https://docs.github.com/en/rest/actions/artifacts
   20 type Artifact struct {
   21     ID                 *int64     `json:"id,omitempty"`
   22     NodeID             *string    `json:"node_id,omitempty"`
   23     Name               *string    `json:"name,omitempty"`
   24     SizeInBytes        *int64     `json:"size_in_bytes,omitempty"`
   25     ArchiveDownloadURL *string    `json:"archive_download_url,omitempty"`
   26     Expired            *bool      `json:"expired,omitempty"`
   27     CreatedAt          *Timestamp `json:"created_at,omitempty"`
   28     ExpiresAt          *Timestamp `json:"expires_at,omitempty"`
   29 }
   30 
   31 // ArtifactList represents a list of GitHub artifacts.
   32 //
   33 // GitHub API docs: https://docs.github.com/en/rest/actions/artifacts#artifacts
   34 type ArtifactList struct {
   35     TotalCount *int64      `json:"total_count,omitempty"`
   36     Artifacts  []*Artifact `json:"artifacts,omitempty"`
   37 }
   38 
   39 // ListArtifacts lists all artifacts that belong to a repository.
   40 //
   41 // GitHub API docs: https://docs.github.com/en/rest/actions/artifacts#list-artifacts-for-a-repository
   42 func (s *ActionsService) ListArtifacts(ctx context.Context, owner, repo string, opts *ListOptions) (*ArtifactList, *Response, error) {
   43     u := fmt.Sprintf("repos/%v/%v/actions/artifacts", owner, repo)
   44     u, err := addOptions(u, opts)
   45     if err != nil {
   46         return nil, nil, err
   47     }
   48 
   49     req, err := s.client.NewRequest("GET", u, nil)
   50     if err != nil {
   51         return nil, nil, err
   52     }
   53 
   54     artifactList := new(ArtifactList)
   55     resp, err := s.client.Do(ctx, req, artifactList)
   56     if err != nil {
   57         return nil, resp, err
   58     }
   59 
   60     return artifactList, resp, nil
   61 }
   62 
   63 // ListWorkflowRunArtifacts lists all artifacts that belong to a workflow run.
   64 //
   65 // GitHub API docs: https://docs.github.com/en/rest/actions/artifacts#list-workflow-run-artifacts
   66 func (s *ActionsService) ListWorkflowRunArtifacts(ctx context.Context, owner, repo string, runID int64, opts *ListOptions) (*ArtifactList, *Response, error) {
   67     u := fmt.Sprintf("repos/%v/%v/actions/runs/%v/artifacts", owner, repo, runID)
   68     u, err := addOptions(u, opts)
   69     if err != nil {
   70         return nil, nil, err
   71     }
   72 
   73     req, err := s.client.NewRequest("GET", u, nil)
   74     if err != nil {
   75         return nil, nil, err
   76     }
   77 
   78     artifactList := new(ArtifactList)
   79     resp, err := s.client.Do(ctx, req, artifactList)
   80     if err != nil {
   81         return nil, resp, err
   82     }
   83 
   84     return artifactList, resp, nil
   85 }
   86 
   87 // GetArtifact gets a specific artifact for a workflow run.
   88 //
   89 // GitHub API docs: https://docs.github.com/en/rest/actions/artifacts#get-an-artifact
   90 func (s *ActionsService) GetArtifact(ctx context.Context, owner, repo string, artifactID int64) (*Artifact, *Response, error) {
   91     u := fmt.Sprintf("repos/%v/%v/actions/artifacts/%v", owner, repo, artifactID)
   92 
   93     req, err := s.client.NewRequest("GET", u, nil)
   94     if err != nil {
   95         return nil, nil, err
   96     }
   97 
   98     artifact := new(Artifact)
   99     resp, err := s.client.Do(ctx, req, artifact)
  100     if err != nil {
  101         return nil, resp, err
  102     }
  103 
  104     return artifact, resp, nil
  105 }
  106 
  107 // DownloadArtifact gets a redirect URL to download an archive for a repository.
  108 //
  109 // GitHub API docs: https://docs.github.com/en/rest/actions/artifacts#download-an-artifact
  110 func (s *ActionsService) DownloadArtifact(ctx context.Context, owner, repo string, artifactID int64, followRedirects bool) (*url.URL, *Response, error) {
  111     u := fmt.Sprintf("repos/%v/%v/actions/artifacts/%v/zip", owner, repo, artifactID)
  112 
  113     resp, err := s.client.roundTripWithOptionalFollowRedirect(ctx, u, followRedirects)
  114     if err != nil {
  115         return nil, nil, err
  116     }
  117     defer resp.Body.Close()
  118 
  119     if resp.StatusCode != http.StatusFound {
  120         return nil, newResponse(resp), fmt.Errorf("unexpected status code: %s", resp.Status)
  121     }
  122 
  123     parsedURL, err := url.Parse(resp.Header.Get("Location"))
  124     return parsedURL, newResponse(resp), nil
  125 }
  126 
  127 // DeleteArtifact deletes a workflow run artifact.
  128 //
  129 // GitHub API docs: https://docs.github.com/en/rest/actions/artifacts#delete-an-artifact
  130 func (s *ActionsService) DeleteArtifact(ctx context.Context, owner, repo string, artifactID int64) (*Response, error) {
  131     u := fmt.Sprintf("repos/%v/%v/actions/artifacts/%v", owner, repo, artifactID)
  132 
  133     req, err := s.client.NewRequest("DELETE", u, nil)
  134     if err != nil {
  135         return nil, err
  136     }
  137 
  138     return s.client.Do(ctx, req, nil)
  139 }