¿Cómo puedo descargar un repositorio privado de GitHub que no tiene acceso a 'git' en mi máquina local?

9

Lo que quiero hacer es descargar el archivo de repositorio privado de GitHub, extraerlo, eliminar el archivo y copiar algunos directorios que están dentro del proyecto descargado.

Traté de usar wgetpero no puedo autorizarme:

wget --header='Authorization: token MY_TOKEN_CREATED_ON_GITHUB' https://github.com/MY_USER/MY_REPO/archive/master.tar.gz -O - | tar xz

También probé con cURL:

curl -i -H 'Authorization: token MY_TOKEN_CREATED_ON_GITHUB' https://github.com/MY_USER/MY_REPO/archive/master.tar.gz > file.tar.gz | tar xz

Aquí pasa la autorización, pero no puedo extraer el archivo.

¿Como hacer eso?

Kamil Lelonek
fuente
¿Por qué no lo usas git clone https://github.com/MY_USER/MY_REPO?
Tero Kilkanen
1
Porque lo estoy haciendo en el servidor donde no hay git.
Kamil Lelonek
Podría resolver su problema: stackoverflow.com/questions/23347134/…
errordeveloper

Respuestas:

3

La solución con wgetsería algo como:

wget --header="Authorization: token <OAUTH-TOKEN>" -O - \
    https://api.github.com/repos/<owner>/<repo>/tarball/<version> | \
    tar xz --strip-components=1 && \
    cp -r <dir1> <dir2> ... <dirn> <destination-dir>/

Notas:

  • --strip-components=1 eliminará el directorio de nivel superior que está contenido en la columna creada por GitHub,
  • asegurarse de que no pone un arrastre /al final de directorios que se van a copiar con cp( <dir1>, <dir2>, ..., <dirn>) y que el arrastre /está presente al final del directorio de destino ( <destination-dir>).
tjanez
fuente