2010-05-07 9 views
15

Ich würde gerne in der Lage sein, den Prozess der Verpackung der Veröffentlichung einer Anwendung (in Xcode) über Shell-Skript zu automatisieren, und ich möchte das Zip-Archiv, das veröffentlicht wird als Download auf bitbucket. Gibt es eine Möglichkeit, programmatisch eine (zip) Datei als Download auf bitbucket verfügbar zu machen?Einen Download auf bitbucket von einem Shell-Skript aus senden

+0

Haben Sie in der Zwischenzeit ein Skript dafür geschrieben? Ich suche selbst eine. –

+0

@MartinScharrer: Ich war von dem Projekt, an dem ich gerade gearbeitet hatte, abgelenkt und bin noch nicht zurückgelaufen. Wenn ich es jetzt machen würde, wäre mein erster Gedanke, ein Skript in Python mit [mechanize] (http://www.search.sourceforge.net/mechanize/) zu schreiben, aber ich wäre immer noch besorgt über das Authentifizierungsproblem . – Isaac

+0

Ich bin auch daran interessiert. @MartinScharrer hast du eine Lösung? –

Antwort

4

Nicht sicher, dass Sie es mit einem Shell-Skript tun können, oder zumindest wäre es etwas schwierig. Es gibt ein bitbucket api (http://bitbucket.org/api/), aber es sieht vorläufig nur lesbar aus.

Mein Vorschlag ist es, eine Art clientseitige http/url-Bibliothek in Ihrer bevorzugten Sprache zu verwenden, um die .../downloads-Seite herunterzuladen, alle <input> des Formulars zu holen und einen Upload erneut zu versenden. Sie sollten in Posting multipart/form-data POST suchen. Ansonsten bin ich mir nicht sicher, ob ich viel helfen kann.

+0

Das ist, was ich vermutete - auch nur meinen Verdacht zu bestätigen ist hilfreich. Ich bin ziemlich zuversichtlich, dass ich 'curl' verwenden kann, um die notwendigen GETs/POSTs zusammenzustellen, aber ich hatte wirklich gehofft, diese Art von Screen-Scraping-ähnlichem Upload zu vermeiden, vor allem wegen Authentifizierungsproblemen. – Isaac

+0

@isaac yeah, du könntest shell und curl ausprobieren, aber es könnte einfach einfacher sein 'libcurl' oder so etwas zu benutzen ... das scraping ist nicht perfekt, aber es ist das beste, was du tun kannst, denke ich: -/Du solltest darüber nachdenken posten auf bitbuckets user mailing list – dlamotte

7

Ich habe einen gemacht, den ich benutze, um nächtliche Builds von meinem Buildbot zu posten.
Es ist verfügbar für beide Bash und Batch, funktioniert gut bis jetzt.

Sie hier finden können, ist es gut kommentiert und erfordert cURL und grep:
https://bitbucket.org/Swyter/bitbucket-curl-upload-to-repo-downloads

Gut: Barebones, nur 46 LOC, mit CSRF Handhabung.
Bad: Nicht auf Captcha oder Erfolg überprüfen, können Sie leicht selbst das Parsen der Seite, wenn Sie es brauchen.

+0

Bei weitem der einfachste Weg, den ich gefunden habe, dies aus einem Bash-Skript zu tun! –

7

Sie haben API dafür bereitgestellt. Finden Sie es here.

+2

Dies ist definitiv das, was Sie verwenden möchten. Als eine Empfehlung: 'curl -u {Benutzername} -X POST https://api.bitbucket.org/2.0/repositories/{username oder Teamname}/{Repo_slug}/downloads -F Dateien = @ {Dateiname}' –