diff --git a/api/issues/issues.py b/api/issues/issues.py index ec24bf0..892e955 100644 --- a/api/issues/issues.py +++ b/api/issues/issues.py @@ -2,8 +2,6 @@ class Issues(RestClient): - def __init__(self, api_root_url, **kwargs): - super(Issues, self).__init__(api_root_url, **kwargs) def create_issue(self, owner, repo, **kwargs): """ diff --git a/api/repositories/releases.py b/api/repositories/releases.py index 5b63b0c..f678b79 100644 --- a/api/repositories/releases.py +++ b/api/repositories/releases.py @@ -2,81 +2,74 @@ class Releases(RestClient): - def __init__(self, api_root_url, **kwargs): - super(Releases, self).__init__(api_root_url, **kwargs) - - def list_releases_for_repos(self, owner, repo, **kwargs): - ''' + """ https://developer.github.com/v3/repos/releases/#list-releases-for-a-repository - ''' + """ return self.get("/repos/{}/{}/releases".format(owner, repo), **kwargs) - def get_single_release(self, owner, repo, release_id, **kwargs): - ''' + """ https://developer.github.com/v3/repos/releases/#get-a-single-release - ''' + """ return self.get("/repos/{}/{}/releases/{}".format(owner, repo, release_id), **kwargs) def get_latest_release(self, owner, repo, **kwargs): - ''' + """ https://developer.github.com/v3/repos/releases/#get-the-latest-release - ''' + """ return self.get("/repos/{}/{}/releases/latest".format(owner, repo), **kwargs) def get_release_by_tag_name(self, owner, repo, tag, **kwargs): - ''' + """ https://developer.github.com/v3/repos/releases/#get-a-release-by-tag-name - ''' + """ return self.get("/repos/{}/{}/releases/tags/{}".format(owner, repo, tag), **kwargs) def create_release(self, owner, repo, **kwargs): - ''' + """ https://developer.github.com/v3/repos/releases/#create-a-release - ''' + """ return self.post("/repos/{}/{}/releases".format(owner, repo), **kwargs) def edit_release(self, owner, repo, release_id, **kwargs): - ''' + """ https://developer.github.com/v3/repos/releases/#edit-a-release - ''' + """ return self.patch("/repos/{}/{}/releases/{}".format(owner, repo, release_id), **kwargs) - def delete_release(self,owner, repo, release_id, **kwargs): - ''' + def delete_release(self, owner, repo, release_id, **kwargs): + """ https://developer.github.com/v3/repos/releases/#delete-a-release - ''' + """ return self.delete("/repos/{}/{}/releases/{}".format(owner, repo, release_id), **kwargs) def delete_release_asset(self, owner, repo, asset_id, **kwargs): - ''' + """ https://developer.github.com/v3/repos/releases/#delete-a-release-asset - ''' + """ return self.delete("/repos/{}/{}/releases/assets/{}".format(owner, repo, asset_id), **kwargs) - def edit_realease_asset(self, owner, repo, asset_id, **kwargs): - ''' - + """ https://developer.github.com/v3/repos/releases/#edit-a-release-asset - ''' + """ return self.patch("/repos/{}/{}/releases/assets/{}".format(owner, repo, asset_id), **kwargs) def get_single_release_asset(self, owner, repo, asset_id, **kwargs): - ''' + """ https://developer.github.com/v3/repos/releases/#get-a-single-release-asset - ''' + """ return self.get("/repos/{}/{}/releases/assets/{}".format(owner, repo, asset_id), **kwargs) def upload_release_asset(self, upload_url, **kwargs): - ''' + """ https://developer.github.com/v3/repos/releases/#upload-a-release-asset - ''' + """ return self.post("{}".format(upload_url), **kwargs) def list_assets_for_release(self, owner, repo, release_id, **kwargs): - ''' + """ https://developer.github.com/v3/repos/releases/#list-assets-for-a-release - ''' - return self.get("/repos/{}/{}/releases/{}/assets".format(owner, repo, release_id), **kwargs) \ No newline at end of file + """ + return self.get("/repos/{}/{}/releases/{}/assets".format(owner, repo, release_id), **kwargs) diff --git a/api/repositories/repos.py b/api/repositories/repos.py index 68c1dc0..7ba3e5c 100644 --- a/api/repositories/repos.py +++ b/api/repositories/repos.py @@ -1,9 +1,16 @@ from core.rest_client import RestClient - +from api.repositories.releases import Releases +from api.repositories.traffic import Traffic +from api.repositories.statistics import Statistics +from api.repositories.statuses import Statuses class Repos(RestClient): def __init__(self, api_root_url, **kwargs): super(Repos, self).__init__(api_root_url, **kwargs) + self.releases = Releases(self.api_root_url, **kwargs) + self.traffic = Traffic(self.api_root_url, **kwargs) + self.statistics = Statistics(self.api_root_url, **kwargs) + self.statuses = Statuses(self.api_root_url, **kwargs) def list_your_repos(self, **kwargs): """ diff --git a/api/repositories/statistics.py b/api/repositories/statistics.py index 91d4581..f84196d 100644 --- a/api/repositories/statistics.py +++ b/api/repositories/statistics.py @@ -1,35 +1,33 @@ from core.rest_client import RestClient -class Statistics(RestClient): - def __init__(self, api_root_url, **kwargs): - super(Statistics, self).__init__(api_root_url, **kwargs) - def get_contributors_list(self,owner,repo,**kwargs): +class Statistics(RestClient): + def get_contributors_list(self, owner, repo, **kwargs): """ https://developer.github.com/v3/repos/statistics/#get-contributors-list-with-additions-deletions-and-commit-counts """ - return self.get("/repos/{}/{}/stats/contributors".format(owner,repo),**kwargs) + return self.get("/repos/{}/{}/stats/contributors".format(owner, repo), **kwargs) - def get_last_year_commit(self,owner,repo,**kwargs): + def get_last_year_commit(self, owner, repo, **kwargs): """ https://developer.github.com/v3/repos/statistics/#get-the-last-year-of-commit-activity-data """ - return self.get("/repos/{}/{}/stats/commit_activity".format(owner,repo),**kwargs) + return self.get("/repos/{}/{}/stats/commit_activity".format(owner, repo), **kwargs) - def get_number_of_additions_deletions(self,owner,repo,**kwargs): + def get_number_of_additions_deletions(self, owner, repo, **kwargs): """ https://developer.github.com/v3/repos/statistics/#get-the-number-of-additions-and-deletions-per-week """ - return self.get("/repos/{}/{}/stats/code_frequency".format(owner,repo),**kwargs) + return self.get("/repos/{}/{}/stats/code_frequency".format(owner, repo), **kwargs) - def get_weekly_commit_count(self,owner,repo,**kwargs): + def get_weekly_commit_count(self, owner, repo, **kwargs): """ https://developer.github.com/v3/repos/statistics/#get-the-weekly-commit-count-for-the-repository-owner-and-everyone-else """ - return self.get("/repos/{}/{}/stats/participation".format(owner,repo),**kwargs) + return self.get("/repos/{}/{}/stats/participation".format(owner, repo), **kwargs) - def get_numbers_commits_hour(self,owner,repo,**kwargs): + def get_numbers_commits_hour(self, owner, repo, **kwargs): """ https://developer.github.com/v3/repos/statistics/#get-the-number-of-commits-per-hour-in-each-day """ - return self.get("/repos/{}/{}/stats/punch_card".format(owner,repo),**kwargs) + return self.get("/repos/{}/{}/stats/punch_card".format(owner, repo), **kwargs) diff --git a/api/repositories/statuses.py b/api/repositories/statuses.py index bafc337..a197b91 100644 --- a/api/repositories/statuses.py +++ b/api/repositories/statuses.py @@ -1,23 +1,22 @@ from core.rest_client import RestClient + class Statuses(RestClient): - def __init__(self, api_root_url, **kwargs): - super(Statuses, self).__init__(api_root_url, **kwargs) - def create_a_status(self,owner,repo,sha,**kwargs): + def create_a_status(self, owner, repo, sha, **kwargs): """ https://developer.github.com/v3/repos/statuses/#create-a-status """ - return self.post("/repos/{}/{}/statuses/{}".format(owner,repo,sha),**kwargs) + return self.post("/repos/{}/{}/statuses/{}".format(owner, repo, sha), **kwargs) - def list_statuses_for_specific_ref(self,owner,repo,ref,**kwargs): + def list_statuses_for_specific_ref(self, owner, repo, ref, **kwargs): """ https://developer.github.com/v3/repos/statuses/#list-statuses-for-a-specific-ref """ - return self.get("/repos/{}/{}/commits/{}/statuses".format(owner,repo,ref),**kwargs) + return self.get("/repos/{}/{}/commits/{}/statuses".format(owner, repo, ref), **kwargs) - def get_combined_status_for_specific_ref(self,owner,repo,ref,**kwargs): + def get_combined_status_for_specific_ref(self, owner, repo, ref, **kwargs): """ https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref """ - return self.get("/repos/{}/{}/commits/{}/status".format(owner,repo,ref),**kwargs) \ No newline at end of file + return self.get("/repos/{}/{}/commits/{}/status".format(owner, repo, ref), **kwargs) diff --git a/api/repositories/traffic.py b/api/repositories/traffic.py index e50193b..3943c39 100644 --- a/api/repositories/traffic.py +++ b/api/repositories/traffic.py @@ -2,8 +2,6 @@ class Traffic(RestClient): - def __init__(self, api_root_url, **kwargs): - super(Traffic, self).__init__(api_root_url, **kwargs) def list_referrers(self, owner, repo, **kwargs): """ @@ -30,4 +28,3 @@ def list_clones(self, owner, repo, **kwargs): :param kwargs: day,week """ return self.get("/repos/{}/{}/traffic/clones".format(owner, repo), **kwargs) - diff --git a/github.py b/github.py index 574d1ad..756a8e9 100644 --- a/github.py +++ b/github.py @@ -1,5 +1,4 @@ from api.repositories.repos import Repos -from api.repositories.traffic import Traffic from api.issues.issues import Issues @@ -8,4 +7,17 @@ def __init__(self, **kwargs): self.api_root_url = "https://api.github.com" self.repos = Repos(self.api_root_url, **kwargs) self.issues = Issues(self.api_root_url, **kwargs) - self.traffic = Traffic(self.api_root_url, **kwargs) \ No newline at end of file + +if __name__ == '__main__': + r = Github(token="xxxx") + username = "zhangting85" + orgname = "TestUpCommunity" + reponame ="simpleWebtest" + # case 1 + x = r.repos.get_repo(username, reponame) + print(x.status_code) + assert x.status_code == 200 + print(x.text) + x = r.repos.traffic.list_clones(username, reponame) + assert x.status_code == 200 + print(x.text)