web-dev-qa-db-fra.com

Où puis-je trouver l'identifiant du projet pour l'API Gitlab?

J'utilise gitlab sur leurs serveurs. Je souhaite télécharger mes derniers artefacts construits (construits via gitlab-ci) via l'API comme ceci

curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.com/api/v3/projects/1/builds/8/artifacts"

Où puis-je trouver cet identifiant de projet? Ou bien cette manière d'utiliser l'API n'est-elle pas destinée aux projets gitlab hébergés?

BW Hubert

44
Hubert Ströbitzer

Vous pouvez interroger pour vos projets possédés:

curl -XGET --header "PRIVATE-TOKEN: XXXX" "https://gitlab.com/api/v3/projects/owned"

Vous recevrez JSON avec chaque projet en propriété:

[
  {
    "id":48,
    "description":"",
    "default_branch":"master",
    "tag_list":[
...

Vous pouvez également obtenir l'ID de projet à partir de la configuration des déclencheurs de votre projet, qui contient déjà un exemple de code avec votre ID.

À partir de la page Déclencheurs:

curl -X POST \
     -F token=TOKEN \
     -F ref=REF_NAME \
     https://<GitLab Installation>/api/v3/projects/<ProjectID>/trigger/builds
26
Fairy

Je viens de découvrir un moyen encore plus simple d’obtenir l’identifiant du projet: il suffit de consulter le contenu HTML de la page gitlab hébergeant votre projet. Il y a une entrée avec un champ appelé project_id, par exemple:

<input type="hidden" name="project_id" id="project_id" value="335" />
34
codependent

Sur la page Modifier un projet, un champ ID de projet est situé dans le coin supérieur droit.

(Vous pouvez également voir l'ID sur la page Pipelines CI/CD, dans le code exameple de la section Triggers.)

Dans les anciennes versions, vous pouvez le voir sur la page Triggers, dans les URL du code exemple.

25
Bernát

Entrez le projet.

Dans le menu de gauche, cliquez sur Paramètres -> Général -> Développez Paramètres généraux.

Il porte une étiquette ID de projet et se trouve à côté du nom du projet.

Ceci est sur la version GitLab 10.2

18
Martin Naughton

La dernière version de GitLab 11.4 _ au moment d'écrire ces lignes, place maintenant l'ID de projet en haut de la page d'accueil de votre référentiel.

Capture d'écran:

GitLab Project Front Page

15
Rakaim

Comme mentionné ici , toutes les API à la portée du projet attendent un ID ou le chemin du projet (URL codée). Donc, utilisez simplement https://gitlab.com/api/v4/projects/gitlab-org%2Fgitlab-ce directement lorsque vous souhaitez interagir avec un projet.

8
Martin Nowak

Fournir la solution qui résout réellement le problème l'api d'obtenir l'identifiant de projet pour un projet spécifique de gitlab

curl -XGET -H "Content-Type: application/json" --header "PRIVATE-TOKEN: $GITLAB_TOKEN" http://<YOUR-GITLAB-SERVER>/api/v3/projects/<YOUR-NAMESPACE>%2F<YOUR-PROJECT-NAME> | python -mjson.tool

Ou peut-être voulez-vous simplement l'identifiant du projet:

curl -XGET -H "Content-Type: application/json" --header "PRIVATE-TOKEN: $GITLAB_TOKEN" http://<YOUR-GITLAB-SERVER>/api/v3/projects/<YOUR-NAMESPACE>%2F<YOUR-PROJECT-NAME> | python -c 'import sys, json; print(json.load(sys.stdin)["id"])'

Notez que l’URL du référentiel (nom du référentiel) est codé.

5
artificerpi

Vous pouvez interroger des projets avec l'attribut de recherche, par exemple:

http://gitlab.com/api/v3/projects?private_token=xxx&search=myprojectname

4
MTZ4

Pour mémoire, si quelqu'un d'autre a besoin de télécharger des artefacts de gitlab.com créés via gitlab-ci

  1. Créer un jeton privé dans votre navigateur
  2. Récupère l'identifiant du projet via curl -XGET --header "PRIVATE-TOKEN: YOUR_AD_HERE?" "https://gitlab.com/api/v3/projects/owned"
  3. Téléchargez le dernier artefact de votre branche maître créé via une étape de gitlab-ci appelée release curl -XGET --header "PRIVATE-TOKEN: YOUR_AD_HERE?" -o myapp.jar "https://gitlab.com/api/v3/projects/4711/builds/artifacts/master/download?job=release"

Je suis très impressionné par la beauté de gitlab.

3
Hubert Ströbitzer

Si vous connaissez le nom de votre projet, vous pouvez obtenir l'identifiant du projet à l'aide de l'API suivante:

curl --header "Private-Token: <your_token>" -X GET https://gitlab.com/api/v4/projects?search=<exact_project_name>

Cela renverra un JSON incluant l'id:

[
  {
     "id":<project id>, ...
  }
]
1
shunya

À partir de l'API Gitlab v4, l'API suivante renvoie tous les projets que vous possédez:

curl --header 'PRIVATE-TOKEN: <your_token>' 'https://gitlab.com/api/v4/projects?owned=true'

La réponse contient le projet id. Les jetons d'accès Gitlab peuvent être créés à partir de cette page - https://gitlab.com/profile/personal_access_tokens

1
jerrymouse

Si votre nom de projet est unique, il est pratique de suivre la réponse par shunya, recherchez par nom, reportez-vous à API doc .

Si vous avez un jeton d'accès plus fort et que Gitlab contient quelques projets portant le même nom dans différents groupes, la recherche dans le groupe est plus pratique. API doc ici . par exemple.

curl --header "PRIVATE-TOKEN: <token>" -X GET https://gitlab.com/api/v4/groups/<group_id>/search?scope=projects&search=<project_name>

L'identifiant du groupe se trouve sur la page Paramètres du domaine du groupe.

Et pour extraire l'identifiant du projet de la sortie, vous pouvez faire:

curl --header "PRIVATE-TOKEN: <token>" -X GET https://gitlab.com/api/v4/groups/<group_id>/search?scope=projects&search=<project_name> | jq '[0].id'
0
Chuan

Pour obtenir l'identifiant de tous les projets, utilisez:

curl --header 'PRIVATE-TOKEN: XXXXXXXXXXXXXXXXXXXXXXX' 'https://gitlab.com/api/v4/projects?owned=true' > curloutput
grep -oPz 'name\":\".*?\"|{\"id\":[0-9]+' curloutput | sed 's/{\"/\n/g' | sed 's/name//g' |sed 's/id\"://g' |sed 's/\"//g'  | sort -u -n
0
Ferroao