2015-02-23 63 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