Dostaliśmy konieczność pobrania zipball z prywatnego repo. W przypadku publicznych jest to dość łatwe albo poprzez API GitHub lub ręcznie (https://github.com/user/repo/zipball/master). Ale co z prywatnymi repo? Niezupełnie oczywiste, jak to zrobić, nawet mając token OAuth.Czy mimo to programowo pobierasz zipball prywatnego repozytorium github?
Odpowiedz
nowa alternatywa
Ponieważ dana akceptowane odpowiedź już nie działa, myślałem, że chciałbym wyjaśnić, jak udało mi się zrobić to z nowymi zmianami w API github.
Nowa Pobierz Api link
Najpierw znalazłem informacji o pobraniu archiwum tutaj: https://developer.github.com/v3/repos/contents/#get-archive-link
Public Repo
Jeśli jest to publiczna repo to jest bardzo łatwe ... możesz zrobić:
curl -L https://api.github.com/repos/pengwynn/octokit/tarball > octokit.tar.gz
Prywatna Repo
Jeśli to jest to prywatna repo, musisz utworzyć token OAuth wchodząc do swojego profilu, a następnie wybierając „Aplikacja”. (https://github.com/settings/applications) Stworzyłem osobisty token.
Następnie postępując zgodnie z instrukcjami na następnej stronie dowiedziałem się, jak uzyskać prywatne repo, że masz uprawnienia do: https://developer.github.com/v3/#authentication
Pełna Kodeksu
Ci się to
curl -H "Authorization: token ab499f3b..." \ -L https://api.github.com/repos/godzilla/my_priv_repo/tarball > wut.tar.gz
Be z pewnością zastąpi ab499f3b...
swoim faktycznym tokenem.
Nie wydaje mi się, żebym miał problem z uzyskaniem zipball z prywatnych repozytoriów do pobrania. Używam tego samego formatu, który podałeś i działa idealnie.
Używam OAuth2 do pobierania repozytoriów, ale buduję link do kuli zip w formacie, który podałeś. Here is the application Zrobiłem to.
Jeśli szukasz tokena OAuth2, po prostu użyj formatu GitHubt API v3, to całkiem proste. Mimo to nie pasuje dokładnie swój problem:
This sposób uzyskać token OAuth2 z GitHub dla this chrome extension
UPDATE
@jayarjo I build the URL here on line 202. Po prostu utworzyłem adres URL podobny do tego, który podałeś, a token OAuth2 nawet go nie używa. Cały mój token pozwala mi pobierać prywatne dane wszystkich użytkowników przed utworzeniem znaczników. Ale działa bez problemu ...
Myślę, że powodem, dla którego mogę pobrać aplikację zipball, jest fakt, że adres URL to rzeczywiście https://github.com/ *, a ponieważ jestem obecnie zalogowany z powodu OAuth2, mam pozwolenie na uzyskanie do tego adresu URL - gdzie brzmi to tak, jak nie, więc otrzymujesz błąd 404.
Możesz spróbować wysłać zapytanie do strony, a jeśli otrzymasz odpowiedź o błędzie, użytkownik najpierw będzie się logował, a kiedy zażądasz tego zip, nie powinno być problemu.
Weird ... Otrzymuję komunikat "not found" za każdym razem, gdy próbuję. Również przy użyciu tego samego formatu nie określiłem, gdzie umieścić token tam? .. Czy możesz połączyć konkretną linię kodu, gdy to zrobisz? – jayarjo
@jayarjo Zaktualizowałem moją odpowiedź - zasadniczo użytkownik musi być zalogowany, aby adres URL był dla nich dostępny. Wtedy nie dostaniesz 404 – jjNford
Ale otrzymuję token (mam na myśli to, że próbuję tego adresu). Ale czy to wszystko, co robisz i to działa? Może przeoczę coś prostego tutaj ... – jayarjo
z dyni:
curl -L -F "login=$USER" -F "token=$TOKEN" https://github.com/$USER/$REPO/$PKGTYPE/$BRANCHorTAG
gdzie $TOKEN
jest token API na swoim profilu github, nie token OAuth2 używany do komunikowania się z APIv3.
$USER
to konto użytkownika, z którym związany jest token, niekoniecznie organizacja/inny użytkownik, do którego należy repozytorium. Drugą instancją z $USER
jest użytkownik/konto repo.
$REPO
to nazwa prywatnej repozytorium
$PKGTYPE
jest archiwum tar lub zipball i $BRANCHorTAG
jest gałęzią, jak kapitan lub nazwę znacznika dla commit.
Pierwsza instancja $USER
musi mieć dostęp do repo należącego do drugiej instancji $USER
.
Nie mogłem znaleźć tego udokumentowanego GDZIEKOLWIEK, więc mam też trochę o tym pisać, jeśli chcesz czegoś bardziej szczegółowego.
Nie wiesz, czy to już działa: http://stackoverflow.com/questions/10418596/cant-find-api-token-in-gitub –
Można użyć metody podstawowego uwierzytelniania lub opartej na tokenie. Aby uzyskać więcej informacji, patrz https://help.github.com/articles/downloading-files-from-the-command-line.
natknąłem się na ten sam problem i to pracował dla mnie (od lutego 2015):
curl -O -J -L -u $YOUROAUTHKEY:x-oauth-basic https://github.com/$USER/$REPO/archive/master.zip
ouath jako rozwiązań nagłówka nie działa dla mnie, ale co pracował był farsz klucz do nazwa użytkownika i podanie typu. Następnie dał 302 do przekierowania z właściwym łączem.
polecenie Pełne naprawdę pomógł mi rozwiązać problem, czy poświadczenia używałem były akceptowane lub nie (404 vs 401)
- 1. Doker: skorzystaj z prywatnego repozytorium GitHub
- 2. Przeniesienie prywatnego repozytorium github na nowe konto
- 3. Czy mogę publikować informacje publiczne z prywatnego repozytorium github?
- 4. Jak uzyskać dostęp do prywatnego repozytorium github z Heroku?
- 5. Wdrażanie witryny z prywatnego repozytorium Github przy użyciu szablonów ARM
- 6. Jak ustawić prywatne repozytorium Git na GitHub? Czy to możliwe?
- 7. Przenieś "autorytatywne" repozytorium git z Github na prywatne github
- 8. Automatyczne odzwierciedlanie repozytorium GitHub
- 9. zepchnięcie do github repozytorium
- 10. Czy mogę otworzyć repozytorium Codeplex na GitHub?
- 11. Jak rozwidlić repozytorium GitHub na GitHub?
- 12. GitHub zawiera inne repozytorium
- 13. jak publiczne jest publiczne repozytorium github?
- 14. Jak uzyskać dostęp do kanału RSS projektu prywatnego GitHub?
- 15. Czy mimo to masz miejsca poza Google +?
- 16. Skrypt Bash do Push/Pull z prywatnego repozytorium Git?
- 17. Czy jest możliwe ustawienie prywatnego repozytorium Mercurial w Google Code?
- 18. Dostęp do prywatnego repozytorium Bintray poprzez sbt
- 19. Jak zmienić nazwę repozytorium GitHub?
- 20. Docker: Jak uzyskać dostęp do prywatnego repozytorium github za pomocą ssh?
- 21. Android Studio Project mówi, że projekt jest już na GitHub, mimo że usunąłem repozytorium.
- 22. Github: Pushing to pull requests
- 23. Czy to możliwe, aby uzyskać GitHub zawartości Wiki github api
- 24. Wizualizacja repozytorium git na github
- 25. Ustawianie projektu prywatnego repozytorium git na serwerze Jenkinsa
- 26. Błąd z repozytorium o zmienionej nazwie w github, "remote: przeniesiono to repozytorium. Użyj nowej lokalizacji"
- 27. Czy mogę udostępnić moje prywatne repozytorium GitHub przez link?
- 28. Jak zmienić repozytorium GitHub, z którego zostało utworzone moje repozytorium?
- 29. Czy mogę wypróbować github wiki jak repozytorium git?
- 30. Scalanie zmian ze zdalnego repozytorium github do lokalnego repozytorium
co to jest „Zipball” można proszę mi dać trochę więcej opisu. –
To plik zip. – CMCDragonkai