2015-02-23 35 views
6

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

+0

您是否尝试在本地创建新的git存储库?或者在github上新建一个仓库? 'PyGithub'做后者,而'pygit'则做前者。两者似乎在网上都有详细记录。 – larsks 2015-02-23 13:59:46

+0

我正试图在Github上创建一个存储库。 – ustroetz 2015-02-23 14:13:13

+0

@larsks你可以举一个例子来说明如何用PyGithub在GitHub上创建一个仓库吗? – ustroetz 2015-02-23 18:59:04

回答

5

我的问题的解决方案在以下

g = Github(token) 
user = g.get_user() 
repo = user.create_repo(full_name) 
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 
+0

谢谢!所以如果我理解你是对的,我首先必须在本地创建一个存储库,然后将它推送到Github?使用PyGithub无法直接在Github中生成存储库? – ustroetz 2015-02-23 14:16:31

+2

有一种方法使用[PyGithub.Blocking.Organization.Organization.create_repo](http://jacquev6.net/PyGithub/v1/github_objects/Organization.html#github.Organization.Organization.create_repo),它调用[POST/orgs /:org/repos](https://developer.github.com/v3/repos/#create)。我省略了这个,因为没有我可以为你链接的教程。 – runDOSrun 2015-02-23 14:22:22

3

当试图找出如何创建一个AuthenticatedUser对象时,我偶然发现了这个问题。事实证明,当你将任何参数传递给get_user时,你会得到一个NamedUser,如果你不给它任何参数,你会得到AuthenticatedUser对应于你在创建Github对象时使用的creds。

作为一个最小的例如,以下:

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如在您链接的文档说明。

+0

这是更好的答案,因为它解释了不同的调用返回的内容,这应该是被接受的答案@ustroetz – Daniel 2017-04-11 10:49:05