...

Source file src/github.com/google/go-github/v45/github/users_packages.go

Documentation: github.com/google/go-github/v45/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 a user. Passing the empty string for "user" will
    14  // list packages for the authenticated user.
    15  //
    16  // GitHub API docs: https://docs.github.com/en/rest/packages#list-packages-for-the-authenticated-users-namespace
    17  // GitHub API docs: https://docs.github.com/en/rest/packages#list-packages-for-a-user
    18  func (s *UsersService) ListPackages(ctx context.Context, user string, opts *PackageListOptions) ([]*Package, *Response, error) {
    19  	var u string
    20  	if user != "" {
    21  		u = fmt.Sprintf("users/%v/packages", user)
    22  	} else {
    23  		u = "user/packages"
    24  	}
    25  	u, err := addOptions(u, opts)
    26  	if err != nil {
    27  		return nil, nil, err
    28  	}
    29  
    30  	req, err := s.client.NewRequest("GET", u, nil)
    31  	if err != nil {
    32  		return nil, nil, err
    33  	}
    34  
    35  	var packages []*Package
    36  	resp, err := s.client.Do(ctx, req, &packages)
    37  	if err != nil {
    38  		return nil, resp, err
    39  	}
    40  
    41  	return packages, resp, nil
    42  }
    43  
    44  // Get a package by name for a user. Passing the empty string for "user" will
    45  // get the package for the authenticated user.
    46  //
    47  // GitHub API docs: https://docs.github.com/en/rest/packages#get-a-package-for-the-authenticated-user
    48  // GitHub API docs: https://docs.github.com/en/rest/packages#get-a-package-for-a-user
    49  func (s *UsersService) GetPackage(ctx context.Context, user, packageType, packageName string) (*Package, *Response, error) {
    50  	var u string
    51  	if user != "" {
    52  		u = fmt.Sprintf("users/%v/packages/%v/%v", user, packageType, packageName)
    53  	} else {
    54  		u = fmt.Sprintf("user/packages/%v/%v", packageType, packageName)
    55  	}
    56  
    57  	req, err := s.client.NewRequest("GET", u, nil)
    58  	if err != nil {
    59  		return nil, nil, err
    60  	}
    61  
    62  	var pack *Package
    63  	resp, err := s.client.Do(ctx, req, &pack)
    64  	if err != nil {
    65  		return nil, resp, err
    66  	}
    67  
    68  	return pack, resp, nil
    69  }
    70  
    71  // Delete a package from a user. Passing the empty string for "user" will
    72  // delete the package for the authenticated user.
    73  //
    74  // GitHub API docs: https://docs.github.com/en/rest/packages#delete-a-package-for-the-authenticated-user
    75  // GitHub API docs: https://docs.github.com/en/rest/packages#delete-a-package-for-a-user
    76  func (s *UsersService) DeletePackage(ctx context.Context, user, packageType, packageName string) (*Response, error) {
    77  	var u string
    78  	if user != "" {
    79  		u = fmt.Sprintf("users/%v/packages/%v/%v", user, packageType, packageName)
    80  	} else {
    81  		u = fmt.Sprintf("user/packages/%v/%v", packageType, packageName)
    82  	}
    83  
    84  	req, err := s.client.NewRequest("DELETE", u, nil)
    85  	if err != nil {
    86  		return nil, err
    87  	}
    88  
    89  	return s.client.Do(ctx, req, nil)
    90  }
    91  
    92  // Restore a package to a user. Passing the empty string for "user" will
    93  // restore the package for the authenticated user.
    94  //
    95  // GitHub API docs: https://docs.github.com/en/rest/packages#restore-a-package-for-the-authenticated-user
    96  // GitHub API docs: https://docs.github.com/en/rest/packages#restore-a-package-for-a-user
    97  func (s *UsersService) RestorePackage(ctx context.Context, user, packageType, packageName string) (*Response, error) {
    98  	var u string
    99  	if user != "" {
   100  		u = fmt.Sprintf("users/%v/packages/%v/%v/restore", user, packageType, packageName)
   101  	} else {
   102  		u = fmt.Sprintf("user/packages/%v/%v/restore", packageType, packageName)
   103  	}
   104  
   105  	req, err := s.client.NewRequest("POST", u, nil)
   106  	if err != nil {
   107  		return nil, err
   108  	}
   109  
   110  	return s.client.Do(ctx, req, nil)
   111  }
   112  
   113  // Get all versions of a package for a user. Passing the empty string for "user" will
   114  // get versions for the authenticated user.
   115  //
   116  // GitHub API docs: https://docs.github.com/en/rest/packages#get-all-package-versions-for-a-package-owned-by-the-authenticated-user
   117  // GitHub API docs: https://docs.github.com/en/rest/packages#get-all-package-versions-for-a-package-owned-by-a-user
   118  func (s *UsersService) PackageGetAllVersions(ctx context.Context, user, packageType, packageName string, opts *PackageListOptions) ([]*PackageVersion, *Response, error) {
   119  	var u string
   120  	if user != "" {
   121  		u = fmt.Sprintf("users/%v/packages/%v/%v/versions", user, packageType, packageName)
   122  	} else {
   123  		u = fmt.Sprintf("user/packages/%v/%v/versions", packageType, packageName)
   124  	}
   125  	u, err := addOptions(u, opts)
   126  	if err != nil {
   127  		return nil, nil, err
   128  	}
   129  
   130  	req, err := s.client.NewRequest("GET", u, nil)
   131  	if err != nil {
   132  		return nil, nil, err
   133  	}
   134  
   135  	var versions []*PackageVersion
   136  	resp, err := s.client.Do(ctx, req, &versions)
   137  	if err != nil {
   138  		return nil, resp, err
   139  	}
   140  
   141  	return versions, resp, nil
   142  }
   143  
   144  // Get a specific version of a package for a user. Passing the empty string for "user" will
   145  // get the version for the authenticated user.
   146  //
   147  // GitHub API docs: https://docs.github.com/en/rest/packages#get-a-package-version-for-the-authenticated-user
   148  // GitHub API docs: https://docs.github.com/en/rest/packages#get-a-package-version-for-a-user
   149  func (s *UsersService) PackageGetVersion(ctx context.Context, user, packageType, packageName string, packageVersionID int64) (*PackageVersion, *Response, error) {
   150  	var u string
   151  	if user != "" {
   152  		u = fmt.Sprintf("users/%v/packages/%v/%v/versions/%v", user, packageType, packageName, packageVersionID)
   153  	} else {
   154  		u = fmt.Sprintf("user/packages/%v/%v/versions/%v", packageType, packageName, packageVersionID)
   155  	}
   156  
   157  	req, err := s.client.NewRequest("GET", u, nil)
   158  	if err != nil {
   159  		return nil, nil, err
   160  	}
   161  
   162  	var version *PackageVersion
   163  	resp, err := s.client.Do(ctx, req, &version)
   164  	if err != nil {
   165  		return nil, resp, err
   166  	}
   167  
   168  	return version, resp, nil
   169  }
   170  
   171  // Delete a package version for a user. Passing the empty string for "user" will
   172  // delete the version for the authenticated user.
   173  //
   174  // GitHub API docs: https://docs.github.com/en/rest/packages#delete-a-package-version-for-the-authenticated-user
   175  // GitHub API docs: https://docs.github.com/en/rest/packages#delete-package-version-for-a-user
   176  func (s *UsersService) PackageDeleteVersion(ctx context.Context, user, packageType, packageName string, packageVersionID int64) (*Response, error) {
   177  	var u string
   178  	if user != "" {
   179  		u = fmt.Sprintf("users/%v/packages/%v/%v/versions/%v", user, packageType, packageName, packageVersionID)
   180  	} else {
   181  		u = fmt.Sprintf("user/packages/%v/%v/versions/%v", packageType, packageName, packageVersionID)
   182  	}
   183  
   184  	req, err := s.client.NewRequest("DELETE", u, nil)
   185  	if err != nil {
   186  		return nil, err
   187  	}
   188  
   189  	return s.client.Do(ctx, req, nil)
   190  }
   191  
   192  // Restore a package version to a user. Passing the empty string for "user" will
   193  // restore the version for the authenticated user.
   194  //
   195  // GitHub API docs: https://docs.github.com/en/rest/packages#restore-a-package-version-for-the-authenticated-user
   196  // GitHub API docs: https://docs.github.com/en/rest/packages#restore-package-version-for-a-user
   197  func (s *UsersService) PackageRestoreVersion(ctx context.Context, user, packageType, packageName string, packageVersionID int64) (*Response, error) {
   198  	var u string
   199  	if user != "" {
   200  		u = fmt.Sprintf("users/%v/packages/%v/%v/versions/%v/restore", user, packageType, packageName, packageVersionID)
   201  	} else {
   202  		u = fmt.Sprintf("user/packages/%v/%v/versions/%v/restore", packageType, packageName, packageVersionID)
   203  	}
   204  
   205  	req, err := s.client.NewRequest("POST", u, nil)
   206  	if err != nil {
   207  		return nil, err
   208  	}
   209  
   210  	return s.client.Do(ctx, req, nil)
   211  }
   212  

View as plain text