2012-04-06 15 views
14

Uygulamamızı belirli etiketlerde indirme yeteneğine ihtiyacım var, ancak bunun için çalışan bir çözüm bulamıyorum. Git etiketine dayanarak tarball'ları indirmek umut verici gibi görünüyor ancak Curl kullanarak çalışmayı başaramıyorum. Aşağıdakileri denedim ama geri döndüğüm her şey github 404 sayfasının kaynağı.Özel arşivden Git arşivi tarball'ları indirirken sorun mu yaşıyorsunuz?

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

Aynı URL şemasını bir genel repo üzerinde denediniz mi? – CharlesB

+0

Wget denediniz mi? Ya da sadece belirli bir etiketten kodu kopyalamak için git'i kullan? –

cevap

26

kamu repo için, this gist listeleyen bazı örnekler var:

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

özel repo için, bir post direktifi içinde kimlik bilgileri geçirmeden deneyin:

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

Ya da kullanmak
"A curl tutorial using GitHub's API" adresindeki "git equivalent to svn export or github workaround" sorusundaki gibi de curl komutu .

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

(okunabilirlik için birden fazla hat): Nihai bukle komutu aşağıdaki gibi görünen sona erdi

:


OP Steven Jp raporları

curl komut çalışmaları yapılmış olan

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

İkinci bağlantınız işlerin işe yaramasına yardımcı oldu. son kıvrılma komutu, "curl -sL --user" $ {username}: $ {password} "https://github.com/$account/$repo/tarball/$tag_name> tarball.tar gibi bir şeye benzemeye başladı. –

+0

@Steven_JP Mükemmel. Daha fazla görünürlük için cevabınızı komuta dahil ettim. – VonC

+0

Yardımlarınız için teşekkürler –

11

bir access token oluşturduktan sonra,

sen wget kullanabilirsiniz:

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

veya curl:

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

fazla bilgi GitHub's API reference for archive links bulunabilir.

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

neler değiştirin: https://github.com/settings/applications#personal-access-tokens

senin Özel Org içine Curl çalışırken şunları kullanın: github.com üzerinde Özel Org içine

0

Günlüğü, sonra belirteç oluşturmak için buraya gitmek Bilgilerinizle CAPS içinde ...

+0

Bazıları için Nedeni, bir başlık auth için olduğunda, bir ikili varlık indirmek için Github API curl ile birden fazla üstbilgi göndermek ile sorun vardı."Yalnızca bir adet auth mekanizmasına izin verilir; yalnızca X-Amz-Algoritma sorgu parametresi, İmza sorgu dizesi parametresi veya Yetkilendirme üstbilgisi belirtilmelidir" ifadesinin XML yanıtını döndürür. Ancak, anonim sorgu dizesi parametresine bir başlık olarak değiştirdiysem, o zaman çalışır. Yani sadece bu tuhaftan bahsediyorum. – David

+0

İşe yaramadı, "Bulunamadı" yazdırılıyor – zaitsman

İlgili konular