...

Source file src/github.com/google/go-github/v47/github/orgs_packages.go

Documentation: github.com/google/go-github/v47/github

     1  // Copyright 2021 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  )
    12  
    13  // List the packages for an organization.
    14  //
    15  // GitHub API docs: https://docs.github.com/en/rest/packages#list-packages-for-an-organization
    16  func (s *OrganizationsService) ListPackages(ctx context.Context, org string, opts *PackageListOptions) ([]*Package, *Response, error) {
    17  	u := fmt.Sprintf("orgs/%v/packages", org)
    18  	u, err := addOptions(u, opts)
    19  	if err != nil {
    20  		return nil, nil, err
    21  	}
    22  
    23  	req, err := s.client.NewRequest("GET", u, nil)
    24  	if err != nil {
    25  		return nil, nil, err
    26  	}
    27  
    28  	var packages []*Package
    29  	resp, err := s.client.Do(ctx, req, &packages)
    30  	if err != nil {
    31  		return nil, resp, err
    32  	}
    33  
    34  	return packages, resp, nil
    35  }
    36  
    37  // Get a package by name from an organization.
    38  //
    39  // GitHub API docs: https://docs.github.com/en/rest/packages#get-a-package-for-an-organization
    40  func (s *OrganizationsService) GetPackage(ctx context.Context, org, packageType, packageName string) (*Package, *Response, error) {
    41  	u := fmt.Sprintf("orgs/%v/packages/%v/%v", org, packageType, packageName)
    42  	req, err := s.client.NewRequest("GET", u, nil)
    43  	if err != nil {
    44  		return nil, nil, err
    45  	}
    46  
    47  	var pack *Package
    48  	resp, err := s.client.Do(ctx, req, &pack)
    49  	if err != nil {
    50  		return nil, resp, err
    51  	}
    52  
    53  	return pack, resp, nil
    54  }
    55  
    56  // Delete a package from an organization.
    57  //
    58  // GitHub API docs: https://docs.github.com/en/rest/packages#delete-a-package-for-an-organization
    59  func (s *OrganizationsService) DeletePackage(ctx context.Context, org, packageType, packageName string) (*Response, error) {
    60  	u := fmt.Sprintf("orgs/%v/packages/%v/%v", org, packageType, packageName)
    61  	req, err := s.client.NewRequest("DELETE", u, nil)
    62  	if err != nil {
    63  		return nil, err
    64  	}
    65  
    66  	return s.client.Do(ctx, req, nil)
    67  }
    68  
    69  // Restore a package to an organization.
    70  //
    71  // GitHub API docs: https://docs.github.com/en/rest/packages#restore-a-package-for-an-organization
    72  func (s *OrganizationsService) RestorePackage(ctx context.Context, org, packageType, packageName string) (*Response, error) {
    73  	u := fmt.Sprintf("orgs/%v/packages/%v/%v/restore", org, packageType, packageName)
    74  	req, err := s.client.NewRequest("POST", u, nil)
    75  	if err != nil {
    76  		return nil, err
    77  	}
    78  
    79  	return s.client.Do(ctx, req, nil)
    80  }
    81  
    82  // Get all versions of a package in an organization.
    83  //
    84  // GitHub API docs: https://docs.github.com/en/rest/packages#get-all-package-versions-for-a-package-owned-by-an-organization
    85  func (s *OrganizationsService) PackageGetAllVersions(ctx context.Context, org, packageType, packageName string, opts *PackageListOptions) ([]*PackageVersion, *Response, error) {
    86  	u := fmt.Sprintf("orgs/%v/packages/%v/%v/versions", org, packageType, packageName)
    87  	u, err := addOptions(u, opts)
    88  	if err != nil {
    89  		return nil, nil, err
    90  	}
    91  
    92  	req, err := s.client.NewRequest("GET", u, nil)
    93  	if err != nil {
    94  		return nil, nil, err
    95  	}
    96  
    97  	var versions []*PackageVersion
    98  	resp, err := s.client.Do(ctx, req, &versions)
    99  	if err != nil {
   100  		return nil, resp, err
   101  	}
   102  
   103  	return versions, resp, nil
   104  }
   105  
   106  // Get a specific version of a package in an organization.
   107  //
   108  // GitHub API docs: https://docs.github.com/en/rest/packages#get-a-package-version-for-an-organization
   109  func (s *OrganizationsService) PackageGetVersion(ctx context.Context, org, packageType, packageName string, packageVersionID int64) (*PackageVersion, *Response, error) {
   110  	u := fmt.Sprintf("orgs/%v/packages/%v/%v/versions/%v", org, packageType, packageName, packageVersionID)
   111  	req, err := s.client.NewRequest("GET", u, nil)
   112  	if err != nil {
   113  		return nil, nil, err
   114  	}
   115  
   116  	var version *PackageVersion
   117  	resp, err := s.client.Do(ctx, req, &version)
   118  	if err != nil {
   119  		return nil, resp, err
   120  	}
   121  
   122  	return version, resp, nil
   123  }
   124  
   125  // Delete a package version from an organization.
   126  //
   127  // GitHub API docs: https://docs.github.com/en/rest/packages#delete-package-version-for-an-organization
   128  func (s *OrganizationsService) PackageDeleteVersion(ctx context.Context, org, packageType, packageName string, packageVersionID int64) (*Response, error) {
   129  	u := fmt.Sprintf("orgs/%v/packages/%v/%v/versions/%v", org, packageType, packageName, packageVersionID)
   130  	req, err := s.client.NewRequest("DELETE", u, nil)
   131  	if err != nil {
   132  		return nil, err
   133  	}
   134  
   135  	return s.client.Do(ctx, req, nil)
   136  }
   137  
   138  // Restore a package version to an organization.
   139  //
   140  // GitHub API docs: https://docs.github.com/en/rest/packages#restore-package-version-for-an-organization
   141  func (s *OrganizationsService) PackageRestoreVersion(ctx context.Context, org, packageType, packageName string, packageVersionID int64) (*Response, error) {
   142  	u := fmt.Sprintf("orgs/%v/packages/%v/%v/versions/%v/restore", org, packageType, packageName, packageVersionID)
   143  	req, err := s.client.NewRequest("POST", u, nil)
   144  	if err != nil {
   145  		return nil, err
   146  	}
   147  
   148  	return s.client.Do(ctx, req, nil)
   149  }
   150  

View as plain text