2012-04-06 13 views
14

Necesito la capacidad de descargar nuestra aplicación en etiquetas específicas, pero yo soy incapaz de encontrar una solución para este trabajo. Descargar tarballs basados ​​en la etiqueta git parece prometedor, pero no puedo hacerlo funcionar usando Curl. He intentado lo siguiente, pero todo lo que recibo es la fuente de la página github 404.Tiene problemas para descargar archivos comprimidos de archivos de Git Repo privada

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

¿Ha probado el mismo esquema de URL en un acuerdo de recompra pública? – CharlesB

+0

¿Has probado wget? ¿O simplemente usa git para clonar el código de una etiqueta específica? –

Respuesta

26

Para repo pública, tiene this gist el listado algunos ejemplos:

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

Por un acuerdo de recompra privada, tratar de pasar su información de credenciales en una directiva mensaje:

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

o utilizar una curl comando como en la pregunta SO "git equivalent to svn export or github workaround", también se explica en gran detalle en:
"A curl tutorial using GitHub's API" .


Los OP Steven Jp informes que haya formulado el trabajo curl comando:

El último comando rizo terminó buscando algo como esto:

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

(en varias líneas para facilitar la lectura)

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

Tu segundo enlace me ayudó a poner las cosas en marcha. la orden final rizo terminó buscando algo como esto 'rizo --user -sl "$ {usuario}: $ {} contraseña" https://github.com/$account/$repo/tarball/$tag_name> tarball.tar ' –

+0

@Steven_JP Excelente. He incluido tu comando en la respuesta para mayor visibilidad. – VonC

+0

Gracias por su ayuda –

11

Después de crear una access token,

puede utilizar wget:

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

o curl:

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

Más información se puede encontrar en GitHub's API reference for archive links.

0

sesión en su Org privado en Github.com, y luego ir aquí para crear su token: https://github.com/settings/applications#personal-access-tokens

Al tratar de Curl en su Org privada, utilice la siguiente:

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

reponer la en CAPS con su información ...

+0

Para algunos razón, no tenía problema con el envío de varias cabeceras con rizo con el API Github para descargar un activo binario, cuando uno de cabecera es para autenticación.Devuelve la respuesta XML de "Solo se permite un mecanismo de autenticación, solo se deben especificar el parámetro de consulta del algoritmo X-Amz, el parámetro cadena de consulta Signature o el encabezado Autorización". Pero si cambié la autenticación de ser un encabezado para consultar el parámetro de cadena, entonces funciona. Entonces solo mencionar esta peculiaridad. – David

+0

No funcionó para mí, imprime 'No encontrado' – zaitsman

Cuestiones relacionadas