¿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?


¿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

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>).
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.