2012-05-28 17 views
6

Używam API v3 i udało mi się wyświetlić listę repo/drzew/gałęzi, uzyskać dostęp do zawartości pliku i utworzyć blobs/drzewa/zatwierdzenia. Teraz próbuję utworzyć nowe repozytorium i udało mi się to zrobić za pomocą "POST user/repos"API GitHub v3 - jak utworzyć wstępne zatwierdzenie w repozytorium?

Ale kiedy próbuję utworzyć blobs/trees/commit/referencje w tym nowym repo otrzymuję ten sam komunikat o błędzie . (409) "Repozytorium Git jest puste.". Oczywiście mogę sam zainicjować repozytorium za pomocą wiersza poleceń git, ale wolałbym, żeby moja aplikacja zrobiła to za mnie.

Czy jest jakiś sposób na zrobienie tego? Jaka jest pierwsza rzecz, którą muszę zrobić za pośrednictwem interfejsu API po utworzeniu pustego repozytorium?

Dzięki

+2

Wygląda na to, że jeszcze tego nie obsługują, http://stackoverflow.com/questions/9670604/github-v3-api-how-to-create-initial-commit-for-my-shiny-new -repository – aclark

Odpowiedz

1

Aktualizacja maj 2013: Zauważ, że repository content API teraz autoryzować adding files.

Zobacz "File CRUD and repository statistics now available in the API".


Original odpowiedź (maj 2012)

Ponieważ nie wydaje się być jeszcze obsługiwane ("GitHub v3 API: How to create initial commit for my shiny new repository?", jak aclark komentarze), można uruchomić przez popychanie początkowy pusty popełnić

git commit --allow-empty -m 'Initial commit' 
git push origin master 

Mimo to może to być dobra praktyka pod numerem telefonu initialize one's repository.
I jest to zilustrowane w "git's semi-secret empty tree".

+0

dzięki. Naprawdę dziwne, że API wspiera tworzenie repo, ale ich nie uruchamia. –

2

Od 2012 roku, jest obecnie możliwe do auto zainicjować repozytorium po stworzeniu, według this blog post opublikowanym na blogu GitHub:

Dzisiaj zrobiliśmy łatwiej dodać zobowiązuje się do repozytorium poprzez GitHub API. Do tej pory można było utworzyć repozytorium, ale trzeba zainicjować je lokalnie za pośrednictwem klienta Git przed dodaniem jakichkolwiek zatwierdzeń za pośrednictwem interfejsu API.

Teraz można opcjonalnie init, repozytorium, kiedy to utworzony przez wysłanie prawdą dla parametru auto_init:

curl -i -u pengwynn \ 
    -d '{"name": "create-repo-test", "auto_init": true}' \ 
    https://api.github.com/user/repos 

Powstały repozytorium będzie miał niedopałek README i wstępna popełnić.

Powiązane problemy