web-dev-qa-db-fra.com

Télécharger un référentiel privé GitLab

Je veux utiliser curl pour télécharger mon dépôt privé dans GitLab. Je sais que je peux utiliser l'API Gitlab, mais pour une raison quelconque, cela ne fonctionne pas.

Est-ce possible? Lorsque j'essaie de le faire de cette façon, il renvoie toujours la page de connexion.

16
user3785137

C'est c'est possible, il suffit de suivre ces étapes:

  1. Tout d'abord, vous devez créer un "jeton d'accès personnel":

    1. Accédez à Votre profil> Paramètres> Jetons d'accès .
    2. Entrez un nom pour votre "jeton d'accès personnel".
    3. Cochez " api Accédez à l'API de l'utilisateur authentifié"

      Personal Access Tokens

    4. Cliquez sur "Créer un jeton d'accès personnel"

    5. La page se rechargera et enregistrera votre nouveau jeton.
    6. Assurez-vous de sauvegarder le jeton dans un endroit sûr, vous ne pourrez plus le consulter.

      New "Personal Access Token"

  2. Maintenant que vous avez votre "jeton d'accès personnel", vous devez obtenir votre identifiant de projet pour utiliser l'API:

    1. Accédez à https://gitlab.com/api/v3/projects?private_token=XXXXXXXXXXXXXXXXXXXX (remplacez les X par votre nouveau jeton)
    2. Obtenez l'identifiant de votre projet auprès de json.

      Project id

  3. Vous pouvez maintenant appeler:

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

Et cela téléchargera votre projet en tant que .tar.gz fichier.

22
pdeschen

Vous pouvez utiliser le jeton privé qui est le vôtre (dans les "paramètres de profil") pour accéder à n'importe quelle ressource. Accédez simplement au fichier de référentiel que vous souhaitez télécharger, copiez le lien du fichier "brut" et ajoutez? Private_token = ...

Exemple:

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

Vous pouvez, mais vous devez vous authentifier (comme dans " API Gitlab: comment générer le jeton privé ")

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

Puis avec le jeton privé :

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

Ou, dans votre cas, récupérez les fichiers du référentiel :

GET /projects/:id/repository/files

Ou téléchargez directement un fichier.

4
VonC

Si vous devez le faire dans une exécution CI et que votre dépôt privé est sur le même serveur, vous devriez pouvoir utiliser git submodules pour cloner d'autres dépôts en même temps. En utilisant le ${CI_JOB_TOKEN} est ne autre option depuis GitLab 8.12.

1
Waddles