validate users limiting example developer git github github-api

users - GitHub Api descarga el enlace zip o tarball



github pagination (2)

Hubo un buen enlace aquí sobre cómo se crea la secuencia zip / tarball

Cuando descargo un zip de github, ¿qué representa la cadena hexadecimal al final del nombre del archivo?

Pero estoy mirando el GitHub APIv3 y tenía curiosidad si me falta algo.

  1. ¿Hay alguna manera de obtener el enlace zip / tarball a través de una llamada API?

  2. Si no, ¿hay alguna manera de construir esa cadena sin usar el git binary o la biblioteca? Es decir, ¿puedo usar varias llamadas a la API para extraer los datos necesarios y reunirlos con la URL que necesito?

Sé que la segunda pregunta es un poco irracional para Stackoverflow y este es un proyecto un tanto divertido para mí, por lo que preferiría la segunda pregunta si me empujaras en la dirección correcta en lugar de arrojar un fragmento de código . O simplemente me dijo si era posible.



Puedes obtener la forma de salir del repositorio de GitHub para obtener un archivo tar ( archive ):

wget --no-check-certificate https://github.com/User/repo/archive/master.tar.gz # better, if the certificate authorities are present: wget https://github.com/User/repo/archive/master.tar.gz

obtendrá un archivo llamado ''master'' del ''Repo'' repo ''del usuario'' del usuario ''.

La URL de la API V3 actualizada es:

https://api.github.com/repos/User/repo/:archive_format/:ref # # two possibilities for fomat: https://api.github.com/repos/User/repo/tarball/master https://api.github.com/repos/User/repo/zipball/master # from github example: $curl -L https://api.github.com/repos/octokit/octokit.rb/tarball > octokit.tar.gz

A continuación, puede tar xpvf master , obteniendo el archivo completo.
Creará un directorio siguiendo la convención de nomenclatura descrita en la pregunta que mencionaste .

No se necesita git binary para obtener un archivo de GitHub, gracias a su servicio de descarga "Nodeload" .

ligemer propuso en una edición el siguiente ejemplo:

Edit 2016-08-25 - Ejemplo de Shell con Wget, Variables y Untar:

#!/bin/bash -ex # arguments: # token = $1 # organization = $2 # repo name = $3 # branch = $4 wget --header="Authorization: token ${1}" --header="Accept:application/vnd.github.v3.raw" -O - https://api.github.com/repos/${2}/${3}/tarball/${4} | tar xz

Llamar por:

$ scriptName.sh token my-organization site.com master

El comando anterior descargará y extraerá la carpeta Github en el mismo directorio que el script.

Diogo Quintela sugiere en los comentarios :

El siguiente ejemplo permite descargar, extraer y cortar el directorio de nivel superior

curl -L https://api.github.com/repos/octokit/octokit.rb/tarball | tar xz --strip=1