如何使用PyGithub创建新的存储库

时间:2015-02-23 13:41:22

标签: python git github

如何在Github上使用PyGithub创建新的存储库? 特别是我想知道如何使用create_repo方法?如何生成AuthenticatedUser

5 个答案:

答案 0 :(得分:8)

我的问题的解决方案如下

g = Github(token)
user = g.get_user()
repo = user.create_repo(full_name)

答案 1 :(得分:3)

在尝试弄清楚如何创建AuthenticatedUser对象时,我偶然发现了这个问题。当你将任何参数传递给get_user时,你得到一个NamedUser,如果你没有给它参数,你得到的AuthenticatedUser对应于你在创建Github对象时使用的信用。

作为一个最小的例子,以下内容:

from github import Github
g = Github("my GitHub API token")

user = g.get_user('myname')
print user
authed = g.get_user()
print authed

产量

<github.NamedUser.NamedUser object at 0x7f95d5eeed10>
<github.AuthenticatedUser.AuthenticatedUser object at 0x7f95d5684410>

拥有AuthenticatedUser对象后,您可以按照链接的文档中的说明调用CreateRepo。

答案 2 :(得分:2)

要创建存储库,可以使用GitPython。 Here is a tutorial关于如何初始化代表。它很简单:

import git

repo_dir = os.path.join(rw_dir, 'my-new-repo')
file_name = os.path.join(repo_dir, 'new-file')

r = git.Repo.init(repo_dir)

您还可以使用Dulwich创建存储库:

from dulwich.repo import Repo
x = Repo.init("/path/to/new/repo")

完成后,您可以使用PyGithub访问存储库(或坚持使用上面提供的API):

from github import Github

g = Github("user", "password")
for repo in g.get_user().get_repos():
    print repo.name

答案 3 :(得分:2)

我偶然发现了这个问题,试图弄清楚如何诱使PyGithub在组织内创建一个存储库,并认为这在这里很重要。

g = Github(token)
organization = g.get_organization("org-name")
organization.create_repo(
        name,
        allow_rebase_merge=True,
        auto_init=False,
        description=description,
        has_issues=True,
        has_projects=False,
        has_wiki=False,
        private=True,
       )

全套关键字参数可以在这里找到:https://developer.github.com/v3/repos/#input

答案 4 :(得分:0)

答案:

通过令牌登录:

g = Github(token)

user = g.get_user()

repo = user.create_repo(repo_name)

print(repo)#To 

通过用户名和密码登录:

g = Github("user", "password")

user = g.get_user()

repo = user.create_repo(repo_name)

print(repo) 

具有自定义主机名的Github Enterprise。

登录具有组织的Enterprise GitHub

g = Github(base_url="https://{hostname}/api/v3", login_or_token="token")

org = g.get_organization("org name")

repo = org.create_repo(repo_name)