2010-05-07 4 views
15

J'aimerais pouvoir automatiser entièrement le processus d'empaquetage de la version d'une application (dans Xcode) via un script shell et je voudrais que l'archive zip soit disponible être un téléchargement sur bitbucket. Existe-t-il un moyen de créer par programmation un fichier (zip) disponible en téléchargement sur bitbucket?Publier un téléchargement sur bitbucket à partir d'un script shell

+0

Avez-vous écrit un script pour cela en attendant? Je suis à la recherche d'un moi-même. –

+0

@MartinScharrer: Je me suis distrait du projet sur lequel je travaillais à ce moment-là et je n'y suis pas encore retourné. Si je devais le faire maintenant, ma première pensée serait d'écrire un script en Python en utilisant [mechanize] (http://www.wsearch.sourceforge.net/mechanize/), mais je serais toujours préoccupé par le problème d'authentification . – Isaac

+0

Cela m'intéresse aussi. @MartinScharrer avez-vous une solution? –

Répondre

4

Vous n'êtes pas sûr de pouvoir le faire avec un script shell, ou du moins ce serait un peu difficile. Il y a une API bitbucket (http://bitbucket.org/api/) mais elle est en lecture seule pour le moment. Ma suggestion est d'utiliser une sorte de bibliothèque http/url côté client dans votre langue préférée pour télécharger la page .../téléchargements, récupérer tous les <input> du formulaire, et reposer un téléchargement. Vous aurez envie de regarder dans l'affichage multipart/form-data POST. À part ça, je ne suis pas sûr que je puisse être d'une grande aide.

+0

C'est ce que je soupçonnais - même simplement confirmer que mes soupçons sont utiles. Je suis assez confiant que je peux utiliser 'curl' pour assembler les GETs/POSTs nécessaires, mais j'espérais vraiment éviter ce type de téléchargement ressemblant à un scrappage d'écran, en particulier à cause de problèmes d'authentification. – Isaac

+0

@isaac Oui, vous pouvez essayer shell et curl, mais il pourrait être plus facile d'utiliser 'libcurl' ou quelque chose ... le grattage n'est pas parfait, mais c'est le mieux que vous pouvez faire, je pense: -/Vous pourriez envisager publication sur la liste de diffusion des utilisateurs de bitbuckets – dlamotte

7

J'ai fait celui que j'utilise pour publier des builds nocturnes à partir de mon buildbot.
Il est disponible pour les deux Bash et Lot, fonctionne très bien jusqu'à présent.

Vous pouvez le trouver ici, il est bien commenté et nécessite cURL et grep:
https://bitbucket.org/Swyter/bitbucket-curl-upload-to-repo-downloads

Bon: Barebones, seulement 46 LOC, avec la gestion des CSRF.
Bad: Ne vérifie pas captcha ou le succès, vous pouvez facilement faire vous-même l'analyse de la page si vous en avez besoin.

+0

De loin la façon la plus simple que j'ai trouvé de le faire à partir d'un script bash! –

7

Ils ont fourni une API pour cela. Trouvez-le here.

+2

C'est certainement ce que vous voulez utiliser. En guise de recommandation: 'curl -u {username} -X POST https://api.bitbucket.org/2.0/repositories/{username ou teamname}/{repo_slug}/downloads -F fichiers = @ {nom de fichier}' –

Questions connexes