2010-05-07 10 views
15

Me gustaría poder automatizar por completo el proceso de empaquetado del lanzamiento de una aplicación (en Xcode) a través de un script de shell y me gustaría tener el archivo zip que se lanza para ser una descarga en bitbucket. ¿Hay alguna forma de programar un archivo (zip) disponible como descarga en bitbucket?Publicar una descarga en bitbucket desde un script de shell

+0

¿Has escrito un guión para esto mientras tanto? Estoy buscando uno yo mismo. –

+0

@MartinScharrer: Me distraí del proyecto en particular en el que había estado trabajando en ese momento y todavía no he vuelto al ciclismo. Si fuera a hacerlo ahora, mi primer pensamiento sería escribir un guión en Python usando [mechanize] (http://wwwsearch.sourceforge.net/mechanize/), pero aún me preocuparía el problema de la autenticación. . – Isaac

+0

También estoy interesado en esto. @MartinScharrer ¿tienes una solución? –

Respuesta

4

No estoy seguro de que pueda hacerlo con un script de shell, o al menos sería algo difícil. Hay una API de bitbucket (http://bitbucket.org/api/) pero parece de solo lectura por el momento.

Mi sugerencia es utilizar algún tipo de biblioteca http/url del lado del cliente en su idioma favorito para descargar la página .../descargas, tomar todos los <input> del formulario y volver a subir una carga. Querrá consultar la publicación de multipart/form-data POST. Aparte de eso, no estoy seguro de que pueda ser de mucha ayuda.

+0

Esto es lo que sospechaba, incluso confirmar que mi sospecha es útil. Estoy bastante seguro de que puedo usar 'curl' para armar los GET/POST necesarios, pero realmente estaba esperando evitar este tipo de subida de pantalla, especialmente debido a problemas de autenticación. – Isaac

+0

@isaac, sí, podrías probar shell y curl, pero podría ser más fácil usar 'libcurl' o algo así ... el raspado no es perfecto, pero es lo mejor que puedes hacer, creo: -/Podrías considerar publicación en la lista de correo de usuario de bitbuckets – dlamotte

7

He hecho una que uso para publicar compilaciones nocturnas desde mi buildbot.
Está disponible para Bash y Lote, funciona bien hasta el momento.

Se puede encontrar aquí, es bien comentado y requiere cURL y grep:
https://bitbucket.org/Swyter/bitbucket-curl-upload-to-repo-downloads

bueno: Barebones, solo 46 LOC, con un manejo CSRF.
Malo: No se comprueba el captcha ni el éxito; puede hacerlo fácilmente analizando la página si la necesita.

+0

¡De lejos, la forma más fácil que he encontrado de hacer esto desde un script bash! –

7

Han proporcionado API para esto. Encuéntrelo here.

+2

Esto es definitivamente lo que quiere usar. Como se recomienda: 'curl -u {username} -X POST https://api.bitbucket.org/2.0/repositories/{username o teamname}/{repo_slug}/downloads -F files = @ {filename}' –

Cuestiones relacionadas