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