2015-02-23 13 views
6

Jak mogę utworzyć nowe repozytorium za pomocą PyGithub na Github? W szczególności lubię wiedzieć, jak korzystać z metody create_repo? Jak wygenerować numer AuthenticatedUser?Jak utworzyć nowe repozytorium za pomocą PyGithub

+0

Czy próbujesz utworzyć lokalnie nowe repozytorium git? Lub nowe repozytorium na Github? 'PyGithub' robi to drugie, podczas gdy coś takiego jak' pygit' robi pierwsze. Oba wydają się dobrze udokumentowane w Internecie. – larsks

+0

Próbuję utworzyć repozytorium na Github. – ustroetz

+0

@larsks Czy mógłbyś podać przykład, jak stworzyć z PyGithub repozytorium na GitHub? – ustroetz

Odpowiedz

5

rozwiązaniem moje pytanie jest następujące

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

Aby utworzyć repozytorium, można użyć GitPython. Here is a tutorial o tym, jak zainicjować rep. To tak proste, jak:

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) 

Można również użyć Dulwich stworzyć repozytorium

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

Gdy masz to zrobić, można użyć PyGithub aby uzyskać dostęp do repozytoriów (lub trzymać API świadczonych powyżej):

from github import Github 

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

Dzięki! Więc jeśli dobrze cię zrozumiem, najpierw muszę utworzyć lokalnie repozytorium i wepchnąć go do Githuba? Nie ma sposobu na wygenerowanie repozytorium w Github bezpośrednio za pomocą PyGithub? – ustroetz

+2

Istnieje sposób użycia [PyGithub.Blocking.Organization.Organization.create_repo] (http://jacquev6.net/PyGithub/v1/github_objects/Organization.html#github.Organization.Organization.create_repo), która wywołuje [POST/orgs /:org/repos](https://developer.github.com/v3/repos/#create). Pominąłem to, ponieważ nie ma tutoriali, które mógłbym dla ciebie połączyć. – runDOSrun

3

Natknąłem się na to pytanie, próbując dowiedzieć się, jak utworzyć obiekt AuthenticatedUser. Okazuje się, że dostajesz NamedUser po przekazaniu dowolnego argumentu do get_user, a jeśli nie podasz mu żadnych argumentów, otrzymasz AuthenticatedUser odpowiadający kredytom użytym podczas tworzenia obiektu Github.

Jako minimalną przykład następujący:

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

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

daje

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

Gdy masz obiekt AuthenticatedUser można nazwać CreateRepo jak wyjaśniono w docs że połączone.

+0

To jest lepsza odpowiedź, ponieważ wyjaśnia, co zwracają różne połączenia, to powinna być zaakceptowana odpowiedź @ustroetz – Daniel

Powiązane problemy