github.com/google/go-github/v49@v49.1.0/github/orgs_packages.go (about) 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#list-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 }