1+ from core .rest_client import RestClient
2+
3+
4+ class Releases (RestClient ):
5+ def __init__ (self , api_root_url , ** kwargs ):
6+ super (Releases , self ).__init__ (api_root_url , ** kwargs )
7+
8+
9+ def list_releases_for_repos (self , owner , repo , ** kwargs ):
10+ '''
11+ https://developer.github.com/v3/repos/releases/#list-releases-for-a-repository
12+ '''
13+ return self .get ("/repos/{}/{}/releases" .format (owner , repo ), ** kwargs )
14+
15+
16+ def get_single_release (self , owner , repo , release_id , ** kwargs ):
17+ '''
18+ https://developer.github.com/v3/repos/releases/#get-a-single-release
19+ '''
20+ return self .get ("/repos/{}/{}/releases/{}" .format (owner , repo , release_id ), ** kwargs )
21+
22+ def get_latest_release (self , owner , repo , ** kwargs ):
23+ '''
24+ https://developer.github.com/v3/repos/releases/#get-the-latest-release
25+ '''
26+ return self .get ("/repos/{}/{}/releases/latest" .format (owner , repo ), ** kwargs )
27+
28+ def get_release_by_tag_name (self , owner , repo , tag , ** kwargs ):
29+ '''
30+ https://developer.github.com/v3/repos/releases/#get-a-release-by-tag-name
31+ '''
32+ return self .get ("/repos/{}/{}/releases/tags/{}" .format (owner , repo , tag ), ** kwargs )
33+
34+ def create_release (self , owner , repo , ** kwargs ):
35+ '''
36+ https://developer.github.com/v3/repos/releases/#create-a-release
37+ '''
38+ return self .post ("/repos/{}/{}/releases" .format (owner , repo ), ** kwargs )
39+
40+ def edit_release (self , owner , repo , release_id , ** kwargs ):
41+ '''
42+ https://developer.github.com/v3/repos/releases/#edit-a-release
43+ '''
44+ return self .patch ("/repos/{}/{}/releases/{}" .format (owner , repo , release_id ), ** kwargs )
45+
46+ def delete_release (self ,owner , repo , release_id , ** kwargs ):
47+ '''
48+ https://developer.github.com/v3/repos/releases/#delete-a-release
49+ '''
50+ return self .delete ("/repos/{}/{}/releases/{}" .format (owner , repo , release_id ), ** kwargs )
51+
52+ def delete_release_asset (self , owner , repo , asset_id , ** kwargs ):
53+ '''
54+ https://developer.github.com/v3/repos/releases/#delete-a-release-asset
55+ '''
56+ return self .delete ("/repos/{}/{}/releases/assets/{}" .format (owner , repo , asset_id ), ** kwargs )
57+
58+
59+ def edit_realease_asset (self , owner , repo , asset_id , ** kwargs ):
60+ '''
61+
62+ https://developer.github.com/v3/repos/releases/#edit-a-release-asset
63+ '''
64+ return self .patch ("/repos/{}/{}/releases/assets/{}" .format (owner , repo , asset_id ), ** kwargs )
65+
66+ def get_single_release_asset (self , owner , repo , asset_id , ** kwargs ):
67+ '''
68+ https://developer.github.com/v3/repos/releases/#get-a-single-release-asset
69+ '''
70+ return self .get ("/repos/{}/{}/releases/assets/{}" .format (owner , repo , asset_id ), ** kwargs )
71+
72+ def upload_release_asset (self , upload_url , ** kwargs ):
73+ '''
74+ https://developer.github.com/v3/repos/releases/#upload-a-release-asset
75+ '''
76+ return self .post ("{}" .format (upload_url ), ** kwargs )
77+
78+ def list_assets_for_release (self , owner , repo , release_id , ** kwargs ):
79+ '''
80+ https://developer.github.com/v3/repos/releases/#list-assets-for-a-release
81+ '''
82+ return self .get ("/repos/{}/{}/releases/{}/assets" .format (owner , repo , release_id ), ** kwargs )
0 commit comments