2014-06-28 10 views
10

Ich möchte curl verwenden, um mein privates Repo in GitLab herunterzuladen. Ich weiß, dass ich die Gitlab API verwenden kann, aber aus irgendeinem Grund funktioniert es nicht.Laden Sie ein privates GitLab-Repository herunter

Ist das möglich? Wenn ich es auf diese Weise versuche, gibt es immer die Login-Seite zurück.

Antwort

3

Sie können, aber Sie brauchen, um sich zu authentifizieren (wie in "Gitlab API: How to generate the private token")

curl http://gitlab.server/api/v3/session --data 'login=myUser&password=myPass' 

Dann mit dem private token:

curl --header "PRIVATE-TOKEN: QVy1PB7sTxfy4pqfZM1U" "http://example.com/api/v3/projects" 

Oder in Ihrem Fall erhalten die repository files:

GET /projects/:id/repository/files 

Oder laden Sie direkt eine Datei herunter.

+0

Gibt es einen Weg, ich kann Pullic Raw URL als downloadbare URL bekommen? Zum Beispiel die öffentliche URL für eine Bilddatei, die im Browser angezeigt werden kann. Gibt es eine Möglichkeit, eine öffentliche URL für private Repo mit der API zu generieren? –

+0

@KhurshidAlam Sie meinen eine öffentliche URL, die für alle zugänglich ist, obwohl sie aus einem privaten Repo stammt? – VonC

+0

Ja. Aber nur mit etwas Token. Genau wie bitbucket oder github. Zum Beispiel verwendet bitbucket ein Token, das an die rohe URL der Datei angehängt ist, so dass es öffentlich angezeigt werden kann. 'https: //bytebucket.org/$username/$repo/raw/$sha/$Dateiname.jpg? token = $ saturenken' –

12

Diese ist möglich, einfach die folgenden Schritte:

  1. Zuerst haben Sie einen "Personal Access Token" zu erstellen:

    1. Zum Your Profile > Settings > Access Tokens.
    2. Geben Sie einen Namen für Ihr "Personal Access Token" ein.
    3. Check "api Zugriff der API authentifizierten Benutzer"

      Personal Access Tokens

    4. Klicken Sie auf "Erstellen Sie persönliche Zugriffstoken"

    5. Die Seite wird neu geladen und Ihr neues Token speichern.
    6. Stellen Sie sicher, dass Sie das Token an einem sicheren Ort aufbewahren. Sie können es nicht erneut anzeigen.

      New "Personal Access Token"

  2. Jetzt haben Sie Ihre "Personal Access Token" haben, müssen Sie Ihre Projekt-ID erhalten die API zu verwenden:

    1. Zum https://gitlab.com/api/v3/projects?private_token=XXXXXXXXXXXXXXXXXXXX (ersetzen Sie die Xs mit Ihr neues Token)
    2. Erhalten Sie die ID Ihres Projekts aus dem JSON.

      Project id

  3. Jetzt können Sie anrufen:

    wget -O your_project.tar.gz https://gitlab.com/api/v3/projects/0000000/repository/archive?private_token=XXXXXXXXXXXXXXXXXXXX

Und das wird Ihr Projekt als .tar.gz Datei herunterladen.

3

Sie können das private Token, das Ihnen gehört (unter "Profileinstellungen"), verwenden, um auf eine Ressource zuzugreifen. Stöbern Sie einfach in das Repository Datei, die Sie herunterladen möchten, kopieren Sie die „rohen“ Datei Link und fügen Sie private_token = ...

Beispiel:

curl https://git.local/user1/myrepo/raw/master/myfile.txt?private_token=ahgiretherghaeoi 
0

Wenn Sie dies in einem CI-Lauf tun müssen, und Ihr privates Repo befindet sich auf demselben Server. Sie sollten git submodules verwenden können, um andere Repos gleichzeitig zu klonen. Die Verwendung der ${CI_JOB_TOKEN} ist another option seit GitLab 8.12.

Verwandte Themen