Sebep ne olursa olsun, svn
çözüm benim için işe yaramıyor ve svn
başka bir şeye ihtiyacım olmadığı için, bunu yapmaya çalışırken zaman harcamak mantıklı değildi, bu yüzden zaten sahip olduğum araçları kullanarak basit bir çözüm aradım. Bu komut dosyası yalnızca curl
ve awk
GitHub dizinindeki tüm dosyaları indirmek için kullanılır "/:user:repo/contents/:path"
.
GitHub REST API "GET /repos/:user:repo/contents/:path"
komutuna yapılan bir çağrının döndürülen gövdesi,
"download_url"
bir dizindeki her dosya için bir bağlantı içeren bir nesne döndürür .
Bu komut satırı komut dosyası, REST API'yi kullanarak curl
"download_url" satırları hariç tümünü filtreleyen, bağlantılardan alıntı işaretlerini ve virgülleri silen ve ardından başka bir kıvrılma çağrısı kullanarak bağlantıları indiren AWK aracılığıyla sonucu çağırır.
curl -s https://api.github.com/repos/:user/:repo/contents/:path | awk \
'/download_url/ { gsub("\"|,", "", $2); system("curl -O "$2"); }'