2012-04-06 11 views
14

Potrzebuję możliwości pobrania naszej aplikacji pod konkretnymi tagami, ale nie jestem w stanie znaleźć działającego rozwiązania. Pobieranie paczek na podstawie tagu git wydaje się obiecujące, ale nie mogę go uruchomić, używając Curl. Próbowałem następujące rzeczy, ale wszystko, co otrzymuję, jest źródłem strony github 404.Problemy z pobieraniem archiwów archiwum Git z Private Repo

curl -sL https://github.com/$ACCOUNT/$PRIVATE_REPO/tarball/0.2.0.257m?login=$MY_USER_NAME&token=$MY_TOKEN > 0.2.0.257m.tar 
+0

Czy wypróbowałeś ten sam schemat URL w publicznym repozytorium? – CharlesB

+0

Czy próbowałeś wget? Lub po prostu użyć git do sklonowania kodu z określonego tagu? –

Odpowiedz

26

Dla repo publicznym, trzeba this gist wyszczególniania kilka przykładów:

wget --no-check-certificate https://github.com/sebastianbergmann/phpunit/tarball/3.5.5 -O ~/tmp/cake_phpunit/phpunit.tgz 

Na prywatnej repo, spróbuj przekazując swoje informacje uwierzytelniające w dyrektywie postu:

wget --quiet --post-data="login=${login}&token=${token}" --no-check-certificate https://github.com/$ACCOUNT/$PRIVATE_REPO/tarball/0.2.0.257m 

lub użyć curl command jak w pytaniu SO "git equivalent to svn export or github workaround", również wyjaśnione w szczegółach w:
"A curl tutorial using GitHub's API" .


raportach OP Steven Jp po dokonaniu prac polecenia curl:

Komenda końcowy curl skończyło się patrząc coś takiego:

curl -sL --user "${username}:${password}" https://github.com/$account/$repo/tarball/$tag_name > tarball.tar 

(w wielu wierszach dla czytelności)

curl -sL --user "${username}:${password}" 
    https://github.com/$account/$repo/tarball/$tag_name 
    > tarball.tar 
+3

Twój drugi link pomógł mi w pracy. Ostateczne polecenie curl zakończyło się wyglądaniem czegoś takiego 'curl -sL --user" $ {username}: $ {hasło} "https://github.com/$account/$repo/tarball/$tag_name> tarball.tar ' –

+0

@Steven_JP Excellent. Uwzględniłem twoje polecenie w odpowiedzi, aby uzyskać lepszą widoczność. – VonC

+0

Dzięki za pomoc –

11

Po utworzeniu access token,

można użyć wget:

wget --output-document=<version>.tar.gz \ 
    https://api.github.com/repos/<owner>/<repo>/tarball/<version>?access_token=<OAUTH-TOKEN> 

lub curl:

curl -L https://api.github.com/repos/<owner>/<repo>/tarball/<version>?access_token=<OAUTH-TOKEN> \ 
    > <version>.tar.gz 

Więcej informacji można znaleźć w GitHub's API reference for archive links.

0

Zaloguj się na swoje prywatne Org na github.com, a następnie udać się tutaj stworzyć swój Token: https://github.com/settings/applications#personal-access-tokens

Gdy próbuje zwinąć w swoim prywatnym Org, użyć następujących:

curl --header 'Authorization: token ADDACCESSTOKENHERE' \ 
--header 'Accept: application/vnd.github.v3.raw' \ 
--remote-name \ 
--location https://api.github.com/repos/ORG/PROJECT/contents/FILE 

Wymień co w CAPS z twoimi informacjami ...

+0

Dla niektórych powód, miałem problem z wysyłaniem wielu nagłówków z curl do Github API, aby pobrać binarny zasób, gdy jeden nagłówek jest dla auth.Zwraca odpowiedź XML "Tylko jeden mechanizm autoryzacji dozwolony, tylko parametr zapytania X-Amz-Algorithm, parametr ciągu zapytania Signature lub nagłówek Authorization". Ale jeśli zmieniłem auth z nagłówka na parametr zapytania, to działa. Więc wspomnij o tym dziwactwie. – David

+0

Nie działa dla mnie, drukuje "Nie znaleziono" – zaitsman