From 7e8d068983753ce97f4068f7947938956311eff3 Mon Sep 17 00:00:00 2001 From: zhangting <89507288@qq.com> Date: Sun, 26 May 2019 19:40:22 +0800 Subject: [PATCH 1/4] add operations for create repo --- core/base.py | 2 ++ github.py | 14 +------------- operations/__init__.py | 0 operations/repo.py | 38 ++++++++++++++++++++++++++++++++++++++ scripts/debug.py | 11 +++++++++++ 5 files changed, 52 insertions(+), 13 deletions(-) create mode 100644 core/base.py create mode 100644 operations/__init__.py create mode 100644 operations/repo.py create mode 100644 scripts/debug.py diff --git a/core/base.py b/core/base.py new file mode 100644 index 0000000..109bede --- /dev/null +++ b/core/base.py @@ -0,0 +1,2 @@ +class CommonItem(): + pass \ No newline at end of file diff --git a/github.py b/github.py index 756a8e9..ecd3896 100644 --- a/github.py +++ b/github.py @@ -8,16 +8,4 @@ def __init__(self, **kwargs): self.repos = Repos(self.api_root_url, **kwargs) self.issues = Issues(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) + diff --git a/operations/__init__.py b/operations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/operations/repo.py b/operations/repo.py new file mode 100644 index 0000000..edcbf0a --- /dev/null +++ b/operations/repo.py @@ -0,0 +1,38 @@ +from core.base import CommonItem +def create_a_repo(github, name, org=None,description=None, homepage=None, private=None, has_issues=None, + has_projects=None, has_wiki=None): + """ + + :param github: github 对象 + :param name: repo 名称 + :param org: 如果是要在一个organization下建repo,就在这里输入org 名字 + :param description: repo的描述 + :param homepage: repo的主页 + :param private: 是privatepo + :param has_issues: + :param has_projects: + :param has_wiki: + :return: + """ + result = CommonItem() + payload = { + "name": name, + "description": description, + "homepage": homepage, + "private": private, + "has_issues": has_issues, + "has_projects": has_projects, + "has_wiki": has_wiki + } + result = CommonItem() + result.success=False + if org: + response=github.repos.create_organization_repo(org=org,json=payload) + else: + response=github.repos.create_user_repo(json=payload) + result.response = response + if response.status_code==201: + result.success = True + else: + result.error = "create repo got {},should be 201".format(str(response.status_code)) + return result \ No newline at end of file diff --git a/scripts/debug.py b/scripts/debug.py new file mode 100644 index 0000000..a7304ed --- /dev/null +++ b/scripts/debug.py @@ -0,0 +1,11 @@ +from github import Github + +if __name__ == '__main__': + github = Github(token="xxxx") + username = "zhangting85" + orgname = "TestUpCommunity" + reponame ="111" + + from operations.repo import create_a_repo + result = create_a_repo(github,"simpletest") + assert result.success == True,result.error \ No newline at end of file From 37a2ac67dd07affd9a6348191ef637259fdf3134 Mon Sep 17 00:00:00 2001 From: zhangting <89507288@qq.com> Date: Sun, 26 May 2019 20:06:38 +0800 Subject: [PATCH 2/4] fix bug --- github.py | 2 -- operations/repo.py | 34 ++++++++++++++++++---------------- scripts/debug.py | 14 ++++++++------ 3 files changed, 26 insertions(+), 24 deletions(-) diff --git a/github.py b/github.py index ecd3896..1454899 100644 --- a/github.py +++ b/github.py @@ -7,5 +7,3 @@ 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) - - diff --git a/operations/repo.py b/operations/repo.py index edcbf0a..cd43192 100644 --- a/operations/repo.py +++ b/operations/repo.py @@ -1,18 +1,20 @@ from core.base import CommonItem -def create_a_repo(github, name, org=None,description=None, homepage=None, private=None, has_issues=None, - has_projects=None, has_wiki=None): + + +def create_a_repo(github, name, org=None, description=None, homepage=None, private=False, has_issues=True, + has_projects=True, has_wiki=True): """ :param github: github 对象 - :param name: repo 名称 - :param org: 如果是要在一个organization下建repo,就在这里输入org 名字 - :param description: repo的描述 - :param homepage: repo的主页 - :param private: 是privatepo - :param has_issues: - :param has_projects: - :param has_wiki: - :return: + :param name: string, repo 名称 + :param org: string, 如果是要在一个organization下建repo,就在这里输入 org 名字;否则默认建在当前用户下。 + :param description: string, repo的描述 + :param homepage: string, repo的主页URL + :param private: boolean, 值为 true的时候建立一个私有repo,为 false时建立公开repo,默认是false + :param has_issues: boolean, true会建立有issues的repo, false 则没有,默认是true + :param has_projects: boolean, true会建立有projects的repo, false 则没有,默认是true + :param has_wiki: boolean, true会建立有wiki的repo,false则没有,默认是true + :return: common item """ result = CommonItem() payload = { @@ -25,14 +27,14 @@ def create_a_repo(github, name, org=None,description=None, homepage=None, privat "has_wiki": has_wiki } result = CommonItem() - result.success=False + result.success = False if org: - response=github.repos.create_organization_repo(org=org,json=payload) + response = github.repos.create_organization_repo(org=org, json=payload) else: - response=github.repos.create_user_repo(json=payload) + response = github.repos.create_user_repo(json=payload) result.response = response - if response.status_code==201: + if response.status_code == 201: result.success = True else: result.error = "create repo got {},should be 201".format(str(response.status_code)) - return result \ No newline at end of file + return result diff --git a/scripts/debug.py b/scripts/debug.py index a7304ed..43a20be 100644 --- a/scripts/debug.py +++ b/scripts/debug.py @@ -1,11 +1,13 @@ from github import Github +from operations.repo import create_a_repo if __name__ == '__main__': github = Github(token="xxxx") - username = "zhangting85" - orgname = "TestUpCommunity" - reponame ="111" - from operations.repo import create_a_repo - result = create_a_repo(github,"simpletest") - assert result.success == True,result.error \ No newline at end of file + # # test 1: 在当前用户下创建一个repo,除了repo名字以外全部用默认值 + result = create_a_repo(github, "simpletest") + assert result.success == True, result.error + + # test 2: 在当前用户下创建一个repo,使用一些输入值 + result = create_a_repo(github, "simpletest03", has_issues=False) + assert result.success == True, result.error From a3b00fb314575e754d10e539e129d387c039c08b Mon Sep 17 00:00:00 2001 From: zhangting <89507288@qq.com> Date: Sun, 26 May 2019 20:22:19 +0800 Subject: [PATCH 3/4] fix bug --- operations/repo.py | 4 ++-- scripts/debug.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/operations/repo.py b/operations/repo.py index cd43192..d7225fe 100644 --- a/operations/repo.py +++ b/operations/repo.py @@ -1,8 +1,8 @@ from core.base import CommonItem -def create_a_repo(github, name, org=None, description=None, homepage=None, private=False, has_issues=True, - has_projects=True, has_wiki=True): +def create_repo(github, name, org=None, description=None, homepage=None, private=False, has_issues=True, + has_projects=True, has_wiki=True): """ :param github: github 对象 diff --git a/scripts/debug.py b/scripts/debug.py index 43a20be..1a1b97e 100644 --- a/scripts/debug.py +++ b/scripts/debug.py @@ -1,13 +1,13 @@ from github import Github -from operations.repo import create_a_repo +from operations.repo import create_repo if __name__ == '__main__': github = Github(token="xxxx") # # test 1: 在当前用户下创建一个repo,除了repo名字以外全部用默认值 - result = create_a_repo(github, "simpletest") + result = create_repo(github, "simpletest") assert result.success == True, result.error # test 2: 在当前用户下创建一个repo,使用一些输入值 - result = create_a_repo(github, "simpletest03", has_issues=False) + result = create_repo(github, "simpletest03", has_issues=False) assert result.success == True, result.error From e93fda03eaf4c3eaa11265bd0fcb86b3f01ef3ab Mon Sep 17 00:00:00 2001 From: zhangting <89507288@qq.com> Date: Sun, 26 May 2019 20:56:36 +0800 Subject: [PATCH 4/4] fix bug --- operations/repo.py | 1 - 1 file changed, 1 deletion(-) diff --git a/operations/repo.py b/operations/repo.py index d7225fe..97789f2 100644 --- a/operations/repo.py +++ b/operations/repo.py @@ -26,7 +26,6 @@ def create_repo(github, name, org=None, description=None, homepage=None, private "has_projects": has_projects, "has_wiki": has_wiki } - result = CommonItem() result.success = False if org: response = github.repos.create_organization_repo(org=org, json=payload)