2016-05-11 26 views
1

Ich versuche, ein Bash-Skript zu schreiben, das alle Repositories, die ich auf Bitbucket habe, nimmt und sie lokal sichert.Wie bekomme ich eine Liste von Git-Repositories aus dem Bit-Bucket, die als Variablen im Bash-Skript verwendet werden?

Ich stecke fest, um eine Liste von Repos von Bitbucket zu bekommen. Ich habe ein bisschen von ihrer API gelesen, die das tut, und ich habe es sogar getestet. Aber es ist einfach so massiv, dass ich einfach nicht weiß, wo ich anfangen soll.

Jede Hilfe wäre sehr dankbar

Antwort

0

Ich glaube, Sie "GET a list of repositories for an account" API überprüfen sollten. Es ist ziemlich einfach, es mit curl zu verwenden:

curl -u '<user>:<password>' https://api.bitbucket.org/2.0/repositories/<owner> 

Die owner kann das gleiche wie user sein. Hinweis: Wenn Sie nur öffentliche Repositorys abfragen, benötigen Sie keine Autorisierung (-u Option). Die Antwort wird paginiert, sodass Sie möglicherweise mehrere Anrufe tätigen müssen.

Diese API gibt ein JSON Objekt beschreibt all sichtbar (für authentifizierte Benutzer) repos von owner. Eine der Methoden, um es in Bash zu analysieren, ist zu verwenden. Aber Sie können jedes Werkzeug verwenden, mit dem Sie vertraut sind, wie NodeJS oder Python. Sie müssen nur von stdin lesen und es als JSON analysieren. Einfaches Beispiel, nur um zu beginnen. Holt alle öffentlichen repos von jespern:

curl https://api.bitbucket.org/2.0/repositories/jespern | jsawk 'return this.values.map(value => value.full_name)' 

["jespern/cx","jespern/cx-patches","jespern/ldap2vcard","jespern/pyetsy","jespern/puck","jespern/hgswitch","jespern/smart-oxe","jespern/pygments-anchorlinenos","jespern/emptyrepo","jespern/help"] 

An dieser Stelle Sie sed oder awk verwenden können, um sie aus dem Array zu extrahieren.

+0

Hey danke eine Tonne für die Antwort! – BrodyHarris14

+1

Ich habe Grep verwendet, um den JSON zu sortieren, um nur die Namen zu erhalten. – BrodyHarris14