Skip to content

Teach 007 #306

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 5, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions api/issues/issues.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
"""
Expand Down
59 changes: 26 additions & 33 deletions api/repositories/releases.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
"""
return self.get("/repos/{}/{}/releases/{}/assets".format(owner, repo, release_id), **kwargs)
9 changes: 8 additions & 1 deletion api/repositories/repos.py
Original file line number Diff line number Diff line change
@@ -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):
"""
Expand Down
24 changes: 11 additions & 13 deletions api/repositories/statistics.py
Original file line number Diff line number Diff line change
@@ -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)
15 changes: 7 additions & 8 deletions api/repositories/statuses.py
Original file line number Diff line number Diff line change
@@ -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)
return self.get("/repos/{}/{}/commits/{}/status".format(owner, repo, ref), **kwargs)
3 changes: 0 additions & 3 deletions api/repositories/traffic.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
"""
Expand All @@ -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)

16 changes: 14 additions & 2 deletions github.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from api.repositories.repos import Repos
from api.repositories.traffic import Traffic
from api.issues.issues import Issues


Expand All @@ -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)

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)