Back to Gitlabhq

API Projects

doc-locale/fr-fr/api/projects.md

19.3.0220.5 KB
Original Source

{{< details >}}

  • Édition : Gratuite, GitLab Premium, GitLab Ultimate
  • Offre : GitLab.com, GitLab Self-Managed, GitLab Dedicated

{{< /details >}}

Utilisez cette API pour gérer les projets GitLab et leurs paramètres associés. Un projet est un hub central de collaboration où vous stockez du code, suivez des tickets et organisez les activités de l'équipe. Pour plus d'informations, consultez créer un projet.

L'API Projects contient des endpoints qui :

  • Récupèrent les informations et les métadonnées du projet
  • Créent, modifient et suppriment des projets
  • Contrôlent la visibilité du projet, les permissions d'accès et les paramètres de sécurité
  • Gèrent les fonctionnalités du projet telles que le suivi des tickets, les merge requests et le CI/CD
  • Archivent et désarchivent des projets
  • Transfèrent des projets entre des espaces de nommage
  • Gèrent les paramètres de déploiement et du registre de conteneurs

Prérequis {#prerequisites}

  • N'importe quel rôle par défaut sur un projet pour lire les propriétés du projet.
  • Le rôle Maintainer ou Owner sur un projet pour modifier les propriétés du projet.

Niveau de visibilité du projet {#project-visibility-level}

Un projet dans GitLab peut avoir l'un des niveaux de visibilité suivants :

  • Private
  • Internal
  • Public

Le niveau de visibilité est déterminé par le champ visibility dans le projet.

Pour plus d'informations, consultez Visibilité du projet.

Les champs renvoyés dans les réponses varient en fonction des permissions de l'utilisateur authentifié.

Niveau de visibilité des fonctionnalités du projet {#project-feature-visibility-level}

Vous pouvez contrôler la disponibilité des paramètres du projet lorsque vous créez ou modifiez un projet. Par exemple, pour désactiver forking_access_level pour un projet existant :

shell
curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header "Content-Type: application/json" \
  --data '{"forking_access_level": "disabled"}' \
  --url "https://gitlab.example.com/api/v4/projects/<project_id>"

Chaque paramètre peut être défini indépendamment et accepte les valeurs suivantes :

  • disabled : Désactiver la fonctionnalité.
  • private : Activer et définir la fonctionnalité sur Uniquement les membres du projet.
  • enabled : Activer et définir la fonctionnalité sur Toute personne ayant accès.
  • public : Activer et définir la fonctionnalité sur Tout le monde. Disponible uniquement pour pages_access_level.

Pour plus d'informations, consultez Modifier la visibilité des fonctionnalités individuelles d'un projet.

AttributTypeObligatoireDescription
analytics_access_levelstringNonDéfinir la visibilité des analyses.
builds_access_levelstringNonDéfinir la visibilité des pipelines.
container_registry_access_levelstringNonDéfinir la visibilité du registre de conteneurs.
environments_access_levelstringNonDéfinir la visibilité des environnements.
feature_flags_access_levelstringNonDéfinir la visibilité des feature flags.
forking_access_levelstringNonDéfinir la visibilité des duplications.
infrastructure_access_levelstringNonDéfinir la visibilité de la gestion d'infrastructure.
issues_access_levelstringNonDéfinir la visibilité des tickets.
merge_requests_access_levelstringNonDéfinir la visibilité des merge requests.
model_experiments_access_levelstringNonDéfinir la visibilité des expériences de modèles de machine learning.
model_registry_access_levelstringNonDéfinir la visibilité du registre de modèles de machine learning.
monitor_access_levelstringNonDéfinir la visibilité de la surveillance des performances des applications.
pages_access_levelstringNonDéfinir la visibilité de GitLab Pages.
releases_access_levelstringNonDéfinir la visibilité des releases.
repository_access_levelstringNonDéfinir la visibilité du dépôt.
requirements_access_levelstringNonDéfinir la visibilité de la gestion des exigences.
security_and_compliance_access_levelstringNonDéfinir la visibilité de la sécurité et conformité.
snippets_access_levelstringNonDéfinir la visibilité des extraits de code.
wiki_access_levelstringNonDéfinir la visibilité du wiki.

Attributs dépréciés {#deprecated-attributes}

Ces attributs sont dépréciés et pourraient être supprimés dans une future version de l'API REST. Utilisez plutôt les attributs alternatifs.

Attribut dépréciéAlternative
tag_listUtilisez plutôt topics.
marked_for_deletion_atUtilisez plutôt marked_for_deletion_on. Premium et Ultimate uniquement.
approvals_before_mergeDéprécié dans GitLab 16.0. Utilisez plutôt l'API Merge request approvals. Premium et Ultimate uniquement.
packages_enabledDéprécié dans GitLab 17.10. Utilisez plutôt package_registry_access_level.
container_registry_enabledUtilisez plutôt container_registry_access_level.
public_buildsUtilisez plutôt public_jobs.
emails_disabledUtilisez plutôt emails_enabled.
issues_enabledUtilisez plutôt issues_access_level.
jobs_enabledUtilisez plutôt builds_access_level.
merge_requests_enabledUtilisez plutôt merge_request_access_level.
snippets_enabledUtilisez plutôt snippets_access_level.
wiki_enabledUtilisez plutôt wiki_access_level.
restrict_user_defined_variablesDéprécié dans GitLab 17.7. Utilisez plutôt ci_pipeline_variables_minimum_override_role.

Récupérer un projet {#retrieve-a-project}

{{< history >}}

  • mr_default_title_template introduit dans GitLab 18.11 avec un feature flag nommé mr_default_title_template. Désactivé par défaut.
  • Le feature flag mr_default_title_template a été supprimé dans GitLab 19.0.

{{< /history >}}

Récupère le projet spécifié. Cet endpoint est accessible sans authentification si le projet est accessible publiquement.

plaintext
GET /projects/:id

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet.
licensebooleanNonInclure les données de licence du projet.
statisticsbooleanNonInclure les statistiques du projet. Disponible uniquement pour les utilisateurs ayant le rôle Reporter, Developer, Maintainer ou Owner.
with_custom_attributesbooleanNonInclure les attributs personnalisés dans la réponse. Accès administrateur.

En cas de succès, renvoie 200 OK et les attributs de réponse suivants :

AttributTypeDescription
idintegerID du projet.
descriptionstringDescription du projet.
description_htmlstringDescription du projet au format HTML.
namestringNom du projet.
name_with_namespacestringNom du projet avec son espace de nommage.
pathstringChemin du projet.
path_with_namespacestringChemin du projet avec son espace de nommage.
created_atdatetimeHorodatage de la création du projet.
default_branchstringBranche par défaut du projet.
tag_listtableau de chaînes de caractèresDéprécié. Utilisez plutôt topics. Liste des tags du projet.
topicstableau de chaînes de caractèresListe des topics du projet.
ssh_url_to_repostringURL SSH pour cloner le dépôt.
http_url_to_repostringURL HTTP pour cloner le dépôt.
web_urlstringURL pour accéder au projet dans un navigateur.
readme_urlstringURL vers le fichier README du projet.
forks_countintegerNombre de duplications du projet.
avatar_urlstringURL vers l'image d'avatar du projet.
star_countintegerNombre d'étoiles reçues par le projet.
last_activity_atdatetimeHorodatage de la dernière activité dans le projet.
visibilitystringNiveau de visibilité du projet. Valeurs possibles : private, internal ou public.
namespaceobjetInformations sur l'espace de nommage du projet.
namespace.idintegerID de l'espace de nommage.
namespace.namestringNom de l'espace de nommage.
namespace.pathstringChemin de l'espace de nommage.
namespace.kindstringType d'espace de nommage. Valeurs possibles : user ou group.
namespace.full_pathstringChemin complet de l'espace de nommage.
namespace.parent_idintegerID de l'espace de nommage parent, le cas échéant.
namespace.avatar_urlstringURL vers l'image d'avatar de l'espace de nommage.
namespace.web_urlstringURL pour accéder à l'espace de nommage dans un navigateur.
container_registry_image_prefixstringPréfixe pour les images du registre de conteneurs.
_linksobjetEnsemble de liens d'endpoints d'API liés au projet.
_links.selfstringURL vers la ressource du projet.
_links.issuesstringURL vers les tickets du projet.
_links.merge_requestsstringURL vers les merge requests du projet.
_links.repo_branchesstringURL vers les branches du dépôt du projet.
_links.labelsstringURL vers les labels du projet.
_links.eventsstringURL vers les événements du projet.
_links.membersstringURL vers les membres du projet.
_links.cluster_agentsstringURL vers les agents de cluster du projet.
marked_for_deletion_atdateDéprécié. Utilisez plutôt marked_for_deletion_on. Date à laquelle le projet est programmé pour la suppression.
marked_for_deletion_ondateDate à laquelle le projet est programmé pour la suppression.
packages_enabledbooleanIndique si le registre de paquets est activé pour le projet.
empty_repobooleanIndique si le dépôt est vide.
archivedbooleanIndique si le projet est archivé.
ownerobjetInformations sur le propriétaire du projet.
owner.idintegerID du propriétaire (Owner) du projet.
owner.usernamestringNom d'utilisateur du propriétaire.
owner.public_emailstringAdresse e-mail publique du propriétaire.
owner.namestringNom du propriétaire (Owner) du projet.
owner.statestringÉtat actuel du compte du propriétaire.
owner.lockedbooleanIndique si le compte du propriétaire est verrouillé.
owner.avatar_urlstringURL vers l'image d'avatar du propriétaire.
owner.web_urlstringURL web du profil du propriétaire.
owner.created_atdatetimeHorodatage de la création du propriétaire (Owner).
resolve_outdated_diff_discussionsbooleanIndique si les discussions sur les diffs obsolètes sont automatiquement résolues.
container_expiration_policyobjetParamètres de la politique d'expiration des images de conteneur.
container_expiration_policy.cadencestringFréquence d'exécution de la politique d'expiration des conteneurs.
container_expiration_policy.enabledbooleanIndique si la politique d'expiration des conteneurs est activée.
container_expiration_policy.keep_nintegerNombre d'images de conteneur à conserver.
container_expiration_policy.older_thanstringSupprimer les images de conteneur plus anciennes que cette valeur.
container_expiration_policy.name_regexstringDéprécié. Utilisez plutôt name_regex_delete. Expression régulière pour correspondre aux noms des images de conteneur.
container_expiration_policy.name_regex_deletestringExpression régulière pour correspondre aux noms des images de conteneur à supprimer.
container_expiration_policy.name_regex_keepstringExpression régulière pour correspondre aux noms des images de conteneur à conserver.
container_expiration_policy.next_run_atdatetimeHorodatage de la prochaine exécution planifiée de la politique.
repository_object_formatstringFormat d'objet utilisé par le dépôt. Valeurs possibles : sha1 ou sha256.
issues_enabledbooleanIndique si les tickets sont activés pour le projet.
merge_requests_enabledbooleanIndique si les merge requests sont activées pour le projet.
wiki_enabledbooleanIndique si le wiki est activé pour le projet.
jobs_enabledbooleanIndique si les jobs sont activés pour le projet.
snippets_enabledbooleanIndique si les extraits de code sont activés pour le projet.
container_registry_enabledbooleanDéprécié. Utilisez plutôt container_registry_access_level. Indique si le registre de conteneurs est activé.
service_desk_enabledbooleanIndique si Service Desk est activé pour le projet.
service_desk_addressstringAdresse e-mail pour Service Desk.
can_create_merge_request_inbooleanIndique si l'utilisateur actuel peut créer des merge requests dans le projet.
issues_access_levelstringNiveau d'accès pour la fonctionnalité des tickets. Valeurs possibles : disabled, private ou enabled.
repository_access_levelstringNiveau d'accès pour la fonctionnalité du dépôt. Valeurs possibles : disabled, private ou enabled.
merge_requests_access_levelstringNiveau d'accès pour la fonctionnalité des merge requests. Valeurs possibles : disabled, private ou enabled.
forking_access_levelstringNiveau d'accès pour la duplication du projet. Valeurs possibles : disabled, private ou enabled.
wiki_access_levelstringNiveau d'accès pour la fonctionnalité wiki. Valeurs possibles : disabled, private ou enabled.
builds_access_levelstringNiveau d'accès pour la fonctionnalité de builds CI/CD. Valeurs possibles : disabled, private ou enabled.
snippets_access_levelstringNiveau d'accès pour la fonctionnalité des extraits de code. Valeurs possibles : disabled, private ou enabled.
pages_access_levelstringNiveau d'accès pour GitLab Pages. Valeurs possibles : disabled, private, enabled ou public.
analytics_access_levelstringNiveau d'accès pour les fonctionnalités d'analyse. Valeurs possibles : disabled, private ou enabled.
container_registry_access_levelstringNiveau d'accès pour le registre de conteneurs. Valeurs possibles : disabled, private ou enabled.
security_and_compliance_access_levelstringNiveau d'accès pour les fonctionnalités de sécurité et de conformité. Valeurs possibles : disabled, private ou enabled.
releases_access_levelstringNiveau d'accès pour la fonctionnalité des releases. Valeurs possibles : disabled, private ou enabled.
environments_access_levelstringNiveau d'accès pour la fonctionnalité des environnements. Valeurs possibles : disabled, private ou enabled.
feature_flags_access_levelstringNiveau d'accès pour la fonctionnalité des feature flags. Valeurs possibles : disabled, private ou enabled.
infrastructure_access_levelstringNiveau d'accès pour la fonctionnalité d'infrastructure. Valeurs possibles : disabled, private ou enabled.
monitor_access_levelstringNiveau d'accès pour la fonctionnalité de surveillance. Valeurs possibles : disabled, private ou enabled.
model_experiments_access_levelstringNiveau d'accès pour la fonctionnalité des expériences de modèles. Valeurs possibles : disabled, private ou enabled.
model_registry_access_levelstringNiveau d'accès pour la fonctionnalité du registre de modèles. Valeurs possibles : disabled, private ou enabled.
package_registry_access_levelstringNiveau d'accès pour la fonctionnalité du registre de paquets. Valeurs possibles : disabled, private ou enabled.
emails_disabledbooleanIndique si les e-mails sont désactivés pour le projet.
emails_enabledbooleanIndique si les e-mails sont activés pour le projet.
show_diff_preview_in_emailbooleanIndique si les aperçus de diff sont affichés dans les notifications par e-mail.
shared_runners_enabledbooleanIndique si les runners partagés sont activés pour le projet.
lfs_enabledbooleanIndique si Git LFS est activé pour le projet.
creator_idintegerID de l'utilisateur qui a créé le projet.
import_urlstringURL depuis laquelle le projet a été importé.
import_typestringType d'import utilisé pour le projet.
import_statusstringStatut de l'import du projet.
import_errorstringMessage d'erreur si l'import a échoué.
open_issues_countintegerNombre de tickets ouverts.
updated_atdatetimeHorodatage de la dernière mise à jour du projet.
ci_default_git_depthintegerProfondeur Git par défaut pour les pipelines CI/CD. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
ci_delete_pipelines_in_secondsintegerDurée en secondes avant la suppression des anciens pipelines.
ci_forward_deployment_enabledbooleanIndique si le déploiement en avant est activé. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
ci_forward_deployment_rollback_allowedbooleanIndique si la restauration est autorisée pour les déploiements en avant.
ci_job_token_scope_enabledbooleanIndique si la portée du token de job CI/CD est activée. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
ci_separated_cachesbooleanIndique si les caches CI/CD sont séparés par branche. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
ci_allow_fork_pipelines_to_run_in_parent_projectbooleanIndique si les pipelines de fork peuvent s'exécuter dans le projet parent. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
ci_id_token_sub_claim_componentstableau de chaînes de caractèresComposants inclus dans le claim subject du token ID CI/CD.
build_git_strategystringStratégie Git utilisée pour les builds CI/CD (fetch ou clone). Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
keep_latest_artifactbooleanIndique si le dernier artefact est conservé lors de la création d'un nouvel artefact. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
restrict_user_defined_variablesbooleanIndique si les variables définies par l'utilisateur sont restreintes. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
ci_pipeline_variables_minimum_override_rolestringRôle minimum requis pour remplacer les variables de pipeline.
runner_token_expiration_intervalintegerIntervalle d'expiration en secondes pour les tokens de runner. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
group_runners_enabledbooleanIndique si les runners de groupe sont activés pour le projet. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
resource_group_default_process_modestringMode de traitement par défaut pour les groupes de ressources.
auto_cancel_pending_pipelinesstringParamètre pour l'annulation automatique des pipelines en attente. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
build_timeoutintegerDélai d'attente en secondes pour les jobs CI/CD. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
auto_devops_enabledbooleanIndique si Auto DevOps est activé pour le projet. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
auto_devops_deploy_strategystringStratégie de déploiement pour Auto DevOps. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
ci_push_repository_for_job_token_allowedbooleanIndique si le push vers le dépôt est autorisé à l'aide d'un token de job.
runners_tokenstringToken pour enregistrer des runners auprès du projet. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
ci_config_pathstringChemin vers le fichier de configuration CI/CD.
public_jobsbooleanIndique si les job logs sont accessibles publiquement.
shared_with_groupstableau d'objetsListe des groupes avec lesquels le projet est partagé.
shared_with_groups[].group_idintegerID du groupe avec lequel le projet est partagé.
shared_with_groups[].group_namestringNom du groupe avec lequel le projet est partagé.
shared_with_groups[].group_full_pathstringChemin complet du groupe avec lequel le projet est partagé.
shared_with_groups[].group_access_levelintegerNiveau d'accès accordé au groupe.
only_allow_merge_if_pipeline_succeedsbooleanIndique si les fusions sont autorisées uniquement si le pipeline réussit.
allow_merge_on_skipped_pipelinebooleanIndique si les fusions sont autorisées lorsque le pipeline est ignoré.
request_access_enabledbooleanIndique si les utilisateurs peuvent demander l'accès au projet.
only_allow_merge_if_all_discussions_are_resolvedbooleanIndique si les fusions sont autorisées uniquement si toutes les discussions sont résolues.
remove_source_branch_after_mergebooleanIndique si la branche source est automatiquement supprimée après la fusion.
printing_merge_request_link_enabledbooleanIndique si les liens de merge request sont affichés après un push.
printing_merge_requests_link_enabledbooleanIndique si le lien de merge request est affiché après un push.
merge_methodstringMéthode de fusion utilisée pour le projet. Valeurs possibles : merge, rebase_merge ou ff.
merge_request_title_regexstringModèle d'expression régulière pour la validation des titres de merge request.
merge_request_title_regex_descriptionstringDescription de la validation du titre de merge request par expression régulière.
squash_optionstringOption de squash pour les merge requests.
enforce_auth_checks_on_uploadsbooleanIndique si les vérifications d'authentification sont appliquées lors des uploads.
suggestion_commit_messagestringMessage de commit personnalisé pour les suggestions.
merge_commit_templatestringModèle pour les messages de commit de fusion.
mr_default_title_templatestringModèle pour les titres de merge request.
squash_commit_templatestringModèle pour les messages de commit de squash.
issue_branch_templatestringModèle pour les noms de branches créées à partir de tickets.
warn_about_potentially_unwanted_charactersbooleanIndique si un avertissement est émis pour les caractères potentiellement indésirables.
autoclose_referenced_issuesbooleanIndique si les tickets référencés sont automatiquement fermés.
max_artifacts_sizeintegerTaille maximale en Mo pour les artefacts de job CI/CD.
approvals_before_mergeintegerDéprécié. Utilisez plutôt l'API Merge request approvals. Nombre d'approbations requises avant la fusion.
mirrorbooleanIndique si le projet est un miroir.
external_authorization_classification_labelstringLabel de classification d'autorisation externe.
requirements_enabledbooleanIndique si la gestion des exigences est activée.
requirements_access_levelstringNiveau d'accès pour la fonctionnalité des exigences.
security_and_compliance_enabledbooleanIndique si les fonctionnalités de sécurité et de conformité sont activées.
secret_push_protection_enabledbooleanIndique si la protection contre les pushs de secrets est activée.
pre_receive_secret_detection_enabledbooleanIndique si la détection des secrets pré-réception est activée.
compliance_frameworkstableau de chaînes de caractèresCadres de conformité appliqués au projet.
issues_templatestringDescription par défaut pour les tickets. La description est analysée avec GitLab Flavored Markdown. Premium et Ultimate uniquement.
merge_requests_templatestringModèle pour les descriptions de merge request. Premium et Ultimate uniquement.
ci_restrict_pipeline_cancellation_rolestringRôle minimum requis pour annuler des pipelines.
merge_pipelines_enabledbooleanIndique si les pipelines de fusion sont activés.
merge_trains_enabledbooleanIndique si les merge trains sont activés.
merge_trains_skip_train_allowedbooleanIndique si l'omission du merge train est autorisée.
max_pipelines_per_merge_trainintegerNombre maximum de pipelines parallèles par merge train.
only_allow_merge_if_all_status_checks_passedbooleanIndique si les fusions sont autorisées uniquement si tous les contrôles de statut ont réussi. Ultimate uniquement.
allow_pipeline_trigger_approve_deploymentbooleanIndique si les déclencheurs de pipeline peuvent approuver des déploiements.
prevent_merge_without_jira_issuebooleanIndique si les fusions nécessitent un ticket Jira associé.
duo_remote_flows_enabledbooleanIndique si les flows distants GitLab Duo sont activés.
duo_foundational_flows_enabledbooleanIndique si les flows par défaut GitLab Duo sont activés.
duo_sast_fp_detection_enabledbooleanIndique si la détection des faux positifs SAST de GitLab Duo est activée.
duo_sast_vr_workflow_enabledbooleanIndique si le workflow de résolution des vulnérabilités SAST de GitLab Duo est activé.
web_based_commit_signing_enabledbooleanIndique si la signature de commit via le web est activée.
spp_repository_pipeline_accessbooleanAccès au pipeline du dépôt pour les politiques de sécurité. Visible uniquement si la fonctionnalité de politiques d'orchestration de sécurité est disponible.
permissionsobjetPermissions de l'utilisateur pour le projet.
permissions.project_accessobjetPermissions d'accès au niveau du projet pour l'utilisateur.
permissions.project_access.access_levelintegerNiveau d'accès pour le projet.
permissions.project_access.notification_levelintegerNiveau de notification pour le projet.
permissions.group_accessobjetPermissions d'accès au niveau du groupe pour l'utilisateur.
permissions.group_access.access_levelintegerNiveau d'accès pour le groupe.
permissions.group_access.notification_levelintegerNiveau de notification pour le groupe.
license_urlstringURL vers le fichier de licence du projet.
license.keystringIdentifiant clé de la licence.
license.namestringNom complet de la licence.
license.nicknamestringSurnom de la licence.
license.html_urlstringURL pour consulter les détails de la licence.
license.source_urlstringURL vers le texte source de la licence.
repository_storagestringEmplacement de stockage du dépôt du projet.
mirror_user_idintegerID de l'utilisateur qui a configuré le miroir.
mirror_trigger_buildsbooleanIndique si les mises à jour du miroir déclenchent des builds.
only_mirror_protected_branchesbooleanIndique si seules les branches protégées sont mises en miroir.
mirror_overwrites_diverged_branchesbooleanIndique si le miroir écrase les branches divergentes.
statistics.commit_countintegerNombre de commits dans le projet.
statistics.storage_sizeintegerTaille totale de stockage en octets.
statistics.repository_sizeintegerTaille de stockage du dépôt en octets.
statistics.wiki_sizeintegerTaille de stockage du wiki en octets.
statistics.lfs_objects_sizeintegerTaille de stockage des objets LFS en octets.
statistics.job_artifacts_sizeintegerTaille de stockage des artefacts de job en octets.
statistics.pipeline_artifacts_sizeintegerTaille de stockage des artefacts de pipeline en octets.
statistics.packages_sizeintegerTaille de stockage des paquets en octets.
statistics.snippets_sizeintegerTaille de stockage des extraits de code en octets.
statistics.uploads_sizeintegerTaille de stockage des uploads en octets.
statistics.container_registry_sizeintegerTaille de stockage du registre de conteneurs en octets. <sup>1</sup>
forked_from_projectobjetLe projet en amont dont ce projet a été dupliqué. Si le projet en amont est privé, un token d'authentification est requis pour consulter ce champ.
mr_default_target_selfbooleanIndique si les merge requests ciblent ce projet par défaut. Si false, les merge requests ciblent le projet en amont. Apparaît uniquement si le projet est une duplication.
<!-- markdownlint-disable-next-line MD055 MD056 -->

{.condensed}

Exemple de requête :

shell
curl --header "PRIVATE-TOKEN: <your_access_token>" \
     --header "Accept: application/json" \
     --url "https://gitlab.example.com/api/v4/projects/<project_id>"

Exemple de réponse :

json
{
  "id": 3,
  "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
  "description_html": "<p data-sourcepos=\"1:1-1:56\" dir=\"auto\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>",
  "default_branch": "main",
  "visibility": "private",
  "ssh_url_to_repo": "[email protected]:diaspora/diaspora-project-site.git",
  "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
  "web_url": "http://example.com/diaspora/diaspora-project-site",
  "readme_url": "http://example.com/diaspora/diaspora-project-site/blob/main/README.md",
  "tag_list": [ //deprecated, use `topics` instead
    "example",
    "disapora project"
  ],
  "topics": [
    "example",
    "disapora project"
  ],
  "owner": {
    "id": 3,
    "name": "Diaspora",
    "created_at": "2013-09-30T13:46:02Z"
  },
  "name": "Diaspora Project Site",
  "name_with_namespace": "Diaspora / Diaspora Project Site",
  "path": "diaspora-project-site",
  "path_with_namespace": "diaspora/diaspora-project-site",
  "issues_enabled": true,
  "open_issues_count": 1,
  "merge_requests_enabled": true,
  "jobs_enabled": true,
  "wiki_enabled": true,
  "snippets_enabled": false,
  "can_create_merge_request_in": true,
  "resolve_outdated_diff_discussions": false,
  "container_registry_enabled": false, // deprecated, use container_registry_access_level instead
  "container_registry_access_level": "disabled",
  "security_and_compliance_access_level": "disabled",
  "container_expiration_policy": {
    "cadence": "7d",
    "enabled": false,
    "keep_n": null,
    "older_than": null,
    "name_regex": null, // to be deprecated in GitLab 13.0 in favor of `name_regex_delete`
    "name_regex_delete": null,
    "name_regex_keep": null,
    "next_run_at": "2020-01-07T21:42:58.658Z"
  },
  "created_at": "2013-09-30T13:46:02Z",
  "updated_at": "2013-09-30T13:46:02Z",
  "last_activity_at": "2013-09-30T13:46:02Z",
  "creator_id": 3,
  "namespace": {
    "id": 3,
    "name": "Diaspora",
    "path": "diaspora",
    "kind": "group",
    "full_path": "diaspora",
    "avatar_url": "http://localhost:3000/uploads/group/avatar/3/foo.jpg",
    "web_url": "http://localhost:3000/groups/diaspora"
  },
  "import_url": null,
  "import_type": null,
  "import_status": "none",
  "import_error": null,
  "permissions": {
    "project_access": {
      "access_level": 10,
      "notification_level": 3
    },
    "group_access": {
      "access_level": 50,
      "notification_level": 3
    }
  },
  "archived": false,
  "avatar_url": "http://example.com/uploads/project/avatar/3/uploads/avatar.png",
  "license_url": "http://example.com/diaspora/diaspora-client/blob/main/LICENSE",
  "license": {
    "key": "lgpl-3.0",
    "name": "GNU Lesser General Public License v3.0",
    "nickname": "GNU LGPLv3",
    "html_url": "http://choosealicense.com/licenses/lgpl-3.0/",
    "source_url": "http://www.gnu.org/licenses/lgpl-3.0.txt"
  },
  "shared_runners_enabled": true,
  "group_runners_enabled": true,
  "forks_count": 0,
  "star_count": 0,
  "runners_token": "b8bc4a7a29eb76ea83cf79e4908c2b",
  "ci_default_git_depth": 50,
  "ci_forward_deployment_enabled": true,
  "ci_forward_deployment_rollback_allowed": true,
  "ci_allow_fork_pipelines_to_run_in_parent_project": true,
  "ci_id_token_sub_claim_components": ["project_path", "ref_type", "ref"],
  "ci_separated_caches": true,
  "ci_restrict_pipeline_cancellation_role": "developer",
  "ci_pipeline_variables_minimum_override_role": "maintainer",
  "ci_push_repository_for_job_token_allowed": false,
  "ci_display_pipeline_variables": false,
  "protect_merge_request_pipelines": true,
  "public_jobs": true,
  "shared_with_groups": [
    {
      "group_id": 4,
      "group_name": "Twitter",
      "group_full_path": "twitter",
      "group_access_level": 30
    },
    {
      "group_id": 3,
      "group_name": "Gitlab Org",
      "group_full_path": "gitlab-org",
      "group_access_level": 10
    }
  ],
  "repository_storage": "default",
  "only_allow_merge_if_pipeline_succeeds": false,
  "allow_merge_on_skipped_pipeline": false,
  "allow_pipeline_trigger_approve_deployment": false,
  "restrict_user_defined_variables": false,
  "only_allow_merge_if_all_discussions_are_resolved": false,
  "remove_source_branch_after_merge": false,
  "printing_merge_requests_link_enabled": true,
  "request_access_enabled": false,
  "merge_method": "merge",
  "squash_option": "default_on",
  "auto_devops_enabled": true,
  "auto_devops_deploy_strategy": "continuous",
  "approvals_before_merge": 0, // Deprecated. Use merge request approvals API instead.
  "mirror": false,
  "mirror_user_id": 45,
  "mirror_trigger_builds": false,
  "only_mirror_protected_branches": false,
  "mirror_overwrites_diverged_branches": false,
  "external_authorization_classification_label": null,
  "packages_enabled": true,
  "empty_repo": false,
  "service_desk_enabled": false,
  "service_desk_address": null,
  "autoclose_referenced_issues": true,
  "suggestion_commit_message": null,
  "enforce_auth_checks_on_uploads": true,
  "merge_commit_template": null,
  "mr_default_title_template": null,
  "squash_commit_template": null,
  "issue_branch_template": "gitlab/%{id}-%{title}",
  "marked_for_deletion_at": "2020-04-03", // Deprecated in favor of marked_for_deletion_on. Planned for removal in a future version of the REST API.
  "marked_for_deletion_on": "2020-04-03",
  "compliance_frameworks": [ "sox" ],
  "warn_about_potentially_unwanted_characters": true,
  "secret_push_protection_enabled": false,
  "statistics": {
    "commit_count": 37,
    "storage_size": 1038090,
    "repository_size": 1038090,
    "wiki_size" : 0,
    "lfs_objects_size": 0,
    "job_artifacts_size": 0,
    "pipeline_artifacts_size": 0,
    "packages_size": 0,
    "snippets_size": 0,
    "uploads_size": 0,
    "container_registry_size": 0
  },
  "container_registry_image_prefix": "registry.example.com/diaspora/diaspora-client",
  "_links": {
    "self": "http://example.com/api/v4/projects",
    "issues": "http://example.com/api/v4/projects/1/issues",
    "merge_requests": "http://example.com/api/v4/projects/1/merge_requests",
    "repo_branches": "http://example.com/api/v4/projects/1/repository_branches",
    "labels": "http://example.com/api/v4/projects/1/labels",
    "events": "http://example.com/api/v4/projects/1/events",
    "members": "http://example.com/api/v4/projects/1/members",
    "cluster_agents": "http://example.com/api/v4/projects/1/cluster_agents"
  },
  "spp_repository_pipeline_access": false // Only visible if the security_orchestration_policies feature is available
}

Lister les projets {#list-projects}

Lister les projets et les attributs des projets.

Lister tous les projets {#list-all-projects}

{{< history >}}

  • web_based_commit_signing_enabled introduit dans GitLab 18.2 avec un flag nommé use_web_based_commit_signing_enabled. Désactivé par défaut.
  • mr_default_title_template introduit dans GitLab 18.11 avec un feature flag nommé mr_default_title_template. Désactivé par défaut.
  • Le feature flag mr_default_title_template a été supprimé dans GitLab 19.0.

{{< /history >}}

[!flag] La disponibilité de l'attribut web_based_commit_signing_enabled est contrôlée par un feature flag. Pour plus d'informations, consultez l'historique. Cette fonctionnalité est disponible à des fins de test, mais n'est pas prête pour une utilisation en production.

Liste tous les projets de l'instance accessibles à l'utilisateur authentifié. Les requêtes non authentifiées renvoient uniquement les projets publics avec un sous-ensemble limité d'attributs.

Vous pouvez filtrer les réponses par attributs personnalisés.

Cet endpoint prend en charge la pagination :

  • Utilisez la pagination par décalage pour accéder à jusqu'à 50 000 projets.
  • Utilisez la pagination par jeu de clés pour lister plus de 50 000 projets.

Pour plus d'informations, consultez Pagination.

plaintext
GET /projects

Attributs pris en charge :

AttributTypeObligatoireDescription
archivedbooleanNonFiltrer par statut archivé.
id_afterintegerNonLimiter les résultats aux projets dont les ID sont supérieurs à l'ID spécifié.
id_beforeintegerNonLimiter les résultats aux projets dont les ID sont inférieurs à l'ID spécifié.
importedbooleanNonLimiter les résultats aux projets importés depuis des systèmes externes par l'utilisateur actuel.
include_hiddenbooleanNonInclure les projets cachés. (administrateurs uniquement) Premium et Ultimate uniquement.
include_pending_deletebooleanNonInclure les projets en attente de suppression. (administrateurs uniquement)
last_activity_afterdatetimeNonLimiter les résultats aux projets dont la dernière activité est postérieure à l'heure spécifiée. Format : ISO 8601 (YYYY-MM-DDTHH:MM:SSZ)
last_activity_beforedatetimeNonLimiter les résultats aux projets dont la dernière activité est antérieure à l'heure spécifiée. Format : ISO 8601 (YYYY-MM-DDTHH:MM:SSZ)
membershipbooleanNonFiltrer par projets dont l'utilisateur actuel est membre.
min_access_levelintegerNonLimiter aux projets où l'utilisateur actuel dispose au moins du niveau d'accès spécifié. Valeurs possibles : 5 (Accès minimum), 10 (Guest), 15 (Planificateur), 20 (Reporter), 25 (Responsable sécurité), 30 (Developer), 40 (Maintainer) ou 50 (Owner).
order_bystringNonRenvoyer les projets classés par les champs id, name, path, created_at, updated_at, star_count, last_activity_at ou similarity. Les champs repository_size, storage_size, packages_size ou wiki_size sont réservés aux administrateurs. similarity est disponible uniquement lors d'une recherche et est limité aux projets dont l'utilisateur actuel est membre. La valeur par défaut est created_at.
ownedbooleanNonFiltrer par projets explicitement détenus par l'utilisateur actuel.
repository_checksum_failedbooleanNonLimiter aux projets pour lesquels le calcul de la somme de contrôle du dépôt a échoué. Premium et Ultimate uniquement.
repository_storagestringNonLimiter les résultats aux projets stockés sur repository_storage. (administrateurs uniquement)
search_namespacesbooleanNonInclure les espaces de nommage ancêtres lors de la correspondance avec les critères de recherche. La valeur par défaut est false.
searchstringNonRenvoyer la liste des projets dont le path, le name ou la description correspondent aux critères de recherche (insensible à la casse, correspondance de sous-chaîne). Plusieurs termes peuvent être fournis, séparés par un espace échappé, soit + soit %20, et seront combinés avec l'opérateur AND. Exemple : one+two correspondra aux sous-chaînes one et two (dans n'importe quel ordre).
simplebooleanNonSi true, renvoyer uniquement les champs limités pour chaque projet. Les requêtes non authentifiées renvoient uniquement les projets publics avec des champs limités, même si simple n'est pas défini.
sortstringNonRenvoyer les projets triés dans l'ordre asc ou desc. La valeur par défaut est desc.
starredbooleanNonFiltrer par projets mis en favori par l'utilisateur actuel.
statisticsbooleanNonInclure les statistiques du projet. Disponible uniquement pour les utilisateurs ayant le rôle Reporter, Developer, Maintainer ou Owner.
topic_idintegerNonLimiter les résultats aux projets avec le topic assigné correspondant à l'ID de topic donné.
topicstringNonNoms de topics séparés par des virgules. Limiter les résultats aux projets qui correspondent à tous les topics donnés. Voir l'attribut topics.
updated_afterdatetimeNonLimiter les résultats aux projets mis à jour après l'heure spécifiée. Format : ISO 8601 (YYYY-MM-DDTHH:MM:SSZ). Introduit dans GitLab 15.10. Pour que ce filtre fonctionne, vous devez également fournir updated_at comme attribut order_by.
updated_beforedatetimeNonLimiter les résultats aux projets mis à jour avant l'heure spécifiée. Format : ISO 8601 (YYYY-MM-DDTHH:MM:SSZ). Introduit dans GitLab 15.10. Pour que ce filtre fonctionne, vous devez également fournir updated_at comme attribut order_by.
visibilitystringNonFiltrer par visibilité public, internal ou private.
wiki_checksum_failedbooleanNonLimiter aux projets pour lesquels le calcul de la somme de contrôle du wiki a échoué. Premium et Ultimate uniquement.
with_custom_attributesbooleanNonInclure les attributs personnalisés dans la réponse. (administrateur uniquement)
with_issues_enabledbooleanNonFiltrer par fonctionnalité de tickets activée.
with_merge_requests_enabledbooleanNonFiltrer par fonctionnalité de merge requests activée.
with_programming_languagestringNonFiltrer par projets utilisant le langage de programmation donné.
marked_for_deletion_ondateNonFiltrer par date à laquelle le projet a été marqué pour suppression. Introduit dans GitLab 17.1. Premium et Ultimate uniquement.
activebooleanNonFiltrer par projets qui ne sont pas archivés et non marqués pour suppression.
<!-- markdownlint-disable-next-line MD055 MD056 -->

{.condensed}

En cas de succès, renvoie 200 OK et les attributs de réponse suivants :

AttributTypeDescription
idintegerID du projet.
descriptionstringDescription du projet.
namestringNom du projet.
name_with_namespacestringNom du projet avec son espace de nommage.
pathstringChemin du projet.
path_with_namespacestringChemin du projet avec son espace de nommage.
created_atdatetimeHorodatage de la création du projet.
default_branchstringBranche par défaut du projet.
tag_listtableau de chaînes de caractèresDéprécié. Utilisez plutôt topics. Liste des tags du projet.
topicstableau de chaînes de caractèresListe des topics du projet.
ssh_url_to_repostringURL SSH pour cloner le dépôt.
http_url_to_repostringURL HTTP pour cloner le dépôt.
web_urlstringURL pour accéder au projet dans un navigateur.
readme_urlstringURL vers le fichier README du projet.
forks_countintegerNombre de duplications du projet.
avatar_urlstringURL vers l'image d'avatar du projet.
star_countintegerNombre d'étoiles reçues par le projet.
last_activity_atdatetimeHorodatage de la dernière activité dans le projet.
visibilitystringNiveau de visibilité du projet. Valeurs possibles : private, internal ou public.
namespaceobjetInformations sur l'espace de nommage du projet.
namespace.idintegerID de l'espace de nommage.
namespace.namestringNom de l'espace de nommage.
namespace.pathstringChemin de l'espace de nommage.
namespace.kindstringType d'espace de nommage. Valeurs possibles : user ou group.
namespace.full_pathstringChemin complet de l'espace de nommage.
namespace.parent_idintegerID de l'espace de nommage parent, le cas échéant.
namespace.avatar_urlstringURL vers l'image d'avatar de l'espace de nommage.
namespace.web_urlstringURL pour accéder à l'espace de nommage dans un navigateur.
container_registry_image_prefixstringPréfixe pour les images du registre de conteneurs.
_linksobjetEnsemble de liens d'endpoints d'API liés au projet.
_links.selfstringURL vers la ressource du projet.
_links.issuesstringURL vers les tickets du projet.
_links.merge_requestsstringURL vers les merge requests du projet.
_links.repo_branchesstringURL vers les branches du dépôt du projet.
_links.labelsstringURL vers les labels du projet.
_links.eventsstringURL vers les événements du projet.
_links.membersstringURL vers les membres du projet.
_links.cluster_agentsstringURL vers les agents de cluster du projet.
marked_for_deletion_atdateDéprécié. Utilisez plutôt marked_for_deletion_on. Date à laquelle le projet est programmé pour la suppression.
marked_for_deletion_ondateDate à laquelle le projet est programmé pour la suppression.
packages_enabledbooleanIndique si le registre de paquets est activé pour le projet.
empty_repobooleanIndique si le dépôt est vide.
archivedbooleanIndique si le projet est archivé.
resolve_outdated_diff_discussionsbooleanIndique si les discussions sur les diffs obsolètes sont automatiquement résolues.
container_expiration_policyobjetParamètres de la politique d'expiration des images de conteneur.
container_expiration_policy.cadencestringFréquence d'exécution de la politique d'expiration des conteneurs.
container_expiration_policy.enabledbooleanIndique si la politique d'expiration des conteneurs est activée.
container_expiration_policy.keep_nintegerNombre d'images de conteneur à conserver.
container_expiration_policy.older_thanstringSupprimer les images de conteneur plus anciennes que cette valeur.
container_expiration_policy.name_regexstringDéprécié. Utilisez plutôt name_regex_delete. Expression régulière pour correspondre aux noms des images de conteneur.
container_expiration_policy.name_regex_keepstringExpression régulière pour correspondre aux noms des images de conteneur à conserver.
container_expiration_policy.next_run_atdatetimeHorodatage de la prochaine exécution planifiée de la politique.
repository_object_formatstringFormat d'objet utilisé par le dépôt (sha1 ou sha256).
issues_enabledbooleanIndique si les tickets sont activés pour le projet.
merge_requests_enabledbooleanIndique si les merge requests sont activées pour le projet.
wiki_enabledbooleanIndique si le wiki est activé pour le projet.
jobs_enabledbooleanIndique si les jobs sont activés pour le projet.
snippets_enabledbooleanIndique si les extraits de code sont activés pour le projet.
container_registry_enabledbooleanDéprécié. Utilisez plutôt container_registry_access_level. Indique si le registre de conteneurs est activé.
service_desk_enabledbooleanIndique si Service Desk est activé pour le projet.
can_create_merge_request_inbooleanIndique si l'utilisateur actuel peut créer des merge requests dans le projet.
issues_access_levelstringNiveau d'accès pour la fonctionnalité des tickets. Valeurs possibles : disabled, private ou enabled.
repository_access_levelstringNiveau d'accès pour la fonctionnalité du dépôt. Valeurs possibles : disabled, private ou enabled.
merge_requests_access_levelstringNiveau d'accès pour la fonctionnalité des merge requests. Valeurs possibles : disabled, private ou enabled.
forking_access_levelstringNiveau d'accès pour la duplication du projet. Valeurs possibles : disabled, private ou enabled.
wiki_access_levelstringNiveau d'accès pour la fonctionnalité wiki. Valeurs possibles : disabled, private ou enabled.
builds_access_levelstringNiveau d'accès pour la fonctionnalité de builds CI/CD. Valeurs possibles : disabled, private ou enabled.
snippets_access_levelstringNiveau d'accès pour la fonctionnalité des extraits de code. Valeurs possibles : disabled, private ou enabled.
pages_access_levelstringNiveau d'accès pour GitLab Pages. Valeurs possibles : disabled, private, enabled ou public.
analytics_access_levelstringNiveau d'accès pour les fonctionnalités d'analyse. Valeurs possibles : disabled, private ou enabled.
container_registry_access_levelstringNiveau d'accès pour le registre de conteneurs. Valeurs possibles : disabled, private ou enabled.
security_and_compliance_access_levelstringNiveau d'accès pour les fonctionnalités de sécurité et de conformité. Valeurs possibles : disabled, private ou enabled.
releases_access_levelstringNiveau d'accès pour la fonctionnalité des releases. Valeurs possibles : disabled, private ou enabled.
environments_access_levelstringNiveau d'accès pour la fonctionnalité des environnements. Valeurs possibles : disabled, private ou enabled.
feature_flags_access_levelstringNiveau d'accès pour la fonctionnalité des feature flags. Valeurs possibles : disabled, private ou enabled.
infrastructure_access_levelstringNiveau d'accès pour la fonctionnalité d'infrastructure. Valeurs possibles : disabled, private ou enabled.
monitor_access_levelstringNiveau d'accès pour la fonctionnalité de surveillance. Valeurs possibles : disabled, private ou enabled.
model_experiments_access_levelstringNiveau d'accès pour la fonctionnalité des expériences de modèles. Valeurs possibles : disabled, private ou enabled.
model_registry_access_levelstringNiveau d'accès pour la fonctionnalité du registre de modèles. Valeurs possibles : disabled, private ou enabled.
package_registry_access_levelstringNiveau d'accès pour la fonctionnalité du registre de paquets. Valeurs possibles : disabled, private ou enabled.
emails_disabledbooleanIndique si les e-mails sont désactivés pour le projet.
emails_enabledbooleanIndique si les e-mails sont activés pour le projet.
show_diff_preview_in_emailbooleanIndique si les aperçus de diff sont affichés dans les notifications par e-mail.
shared_runners_enabledbooleanIndique si les runners partagés sont activés pour le projet.
lfs_enabledbooleanIndique si Git LFS est activé pour le projet.
creator_idintegerID de l'utilisateur qui a créé le projet.
import_statusstringStatut de l'import du projet.
open_issues_countintegerNombre de tickets ouverts.
description_htmlstringDescription du projet au format HTML.
updated_atdatetimeHorodatage de la dernière mise à jour du projet.
ci_config_pathstringChemin vers le fichier de configuration CI/CD.
public_jobsbooleanIndique si les job logs sont accessibles publiquement.
shared_with_groupstableau d'objetsListe des groupes avec lesquels le projet est partagé.
only_allow_merge_if_pipeline_succeedsbooleanIndique si les fusions sont autorisées uniquement si le pipeline réussit.
allow_merge_on_skipped_pipelinebooleanIndique si les fusions sont autorisées lorsque le pipeline est ignoré.
request_access_enabledbooleanIndique si les utilisateurs peuvent demander l'accès au projet.
only_allow_merge_if_all_discussions_are_resolvedbooleanIndique si les fusions sont autorisées uniquement si toutes les discussions sont résolues.
remove_source_branch_after_mergebooleanIndique si la branche source est automatiquement supprimée après la fusion.
printing_merge_request_link_enabledbooleanIndique si les liens de merge request sont affichés après un push.
merge_methodstringMéthode de fusion utilisée pour le projet. Valeurs possibles : merge, rebase_merge ou ff.
merge_request_title_regexstringModèle d'expression régulière pour la validation des titres de merge request.
merge_request_title_regex_descriptionstringDescription de la validation du titre de merge request par expression régulière.
squash_optionstringOption de squash pour les merge requests.
enforce_auth_checks_on_uploadsbooleanIndique si les vérifications d'authentification sont appliquées lors des uploads.
suggestion_commit_messagestringMessage de commit personnalisé pour les suggestions.
merge_commit_templatestringModèle pour les messages de commit de fusion.
mr_default_title_templatestringModèle pour les titres de merge request.
squash_commit_templatestringModèle pour les messages de commit de squash.
issue_branch_templatestringModèle pour les noms de branches créées à partir de tickets.
warn_about_potentially_unwanted_charactersbooleanIndique si un avertissement est émis pour les caractères potentiellement indésirables.
autoclose_referenced_issuesbooleanIndique si les tickets référencés sont automatiquement fermés.
max_artifacts_sizeintegerTaille maximale en Mo pour les artefacts de job CI/CD.
approvals_before_mergeintegerDéprécié. Utilisez plutôt l'API Merge request approvals. Nombre d'approbations requises avant la fusion.
mirrorbooleanIndique si le projet est un miroir.
external_authorization_classification_labelstringLabel de classification d'autorisation externe.
requirements_enabledbooleanIndique si la gestion des exigences est activée.
requirements_access_levelstringNiveau d'accès pour la fonctionnalité des exigences.
security_and_compliance_enabledbooleanIndique si les fonctionnalités de sécurité et de conformité sont activées.
compliance_frameworkstableau de chaînes de caractèresCadres de conformité appliqués au projet.
issues_templatestringDescription par défaut pour les tickets. La description est analysée avec GitLab Flavored Markdown. Premium et Ultimate uniquement.
merge_requests_templatestringModèle pour les descriptions de merge request. Premium et Ultimate uniquement.
merge_pipelines_enabledbooleanIndique si les pipelines de fusion sont activés.
merge_trains_enabledbooleanIndique si les merge trains sont activés.
merge_trains_skip_train_allowedbooleanIndique si l'omission du merge train est autorisée.
max_pipelines_per_merge_trainintegerNombre maximum de pipelines parallèles par merge train.
only_allow_merge_if_all_status_checks_passedbooleanIndique si les fusions sont autorisées uniquement si tous les contrôles de statut ont réussi. Ultimate uniquement.
allow_pipeline_trigger_approve_deploymentbooleanIndique si les déclencheurs de pipeline peuvent approuver des déploiements.
prevent_merge_without_jira_issuebooleanIndique si les fusions nécessitent un ticket Jira associé.
duo_remote_flows_enabledbooleanIndique si les flows distants GitLab Duo sont activés.
duo_foundational_flows_enabledbooleanIndique si les flows par défaut GitLab Duo sont activés.
duo_sast_fp_detection_enabledbooleanIndique si la détection des faux positifs SAST de GitLab Duo est activée.
duo_sast_vr_workflow_enabledbooleanIndique si le workflow de résolution des vulnérabilités SAST de GitLab Duo est activé.
spp_repository_pipeline_accessbooleanAccès au pipeline du dépôt pour les politiques de sécurité. Visible uniquement si la fonctionnalité de politiques d'orchestration de sécurité est disponible.
permissionsobjetPermissions de l'utilisateur pour le projet.
permissions.project_accessobjetPermissions d'accès au projet pour l'utilisateur.
permissions.group_accessobjetPermissions d'accès au groupe pour l'utilisateur.
<!-- markdownlint-disable-next-line MD055 MD056 -->

{.condensed}

Exemple de requête :

shell
curl --header "PRIVATE-TOKEN: <your_access_token>" \
     --header "Accept: application/json" \
     --url "https://gitlab.example.com/api/v4/projects"

Exemple de réponse :

json
[
  {
    "id": 4,
    "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
    "description_html": "<p data-sourcepos=\"1:1-1:56\" dir=\"auto\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>",
    "name": "Diaspora Client",
    "name_with_namespace": "Diaspora / Diaspora Client",
    "path": "diaspora-client",
    "path_with_namespace": "diaspora/diaspora-client",
    "created_at": "2013-09-30T13:46:02Z",
    "updated_at": "2013-09-30T13:46:02Z",
    "default_branch": "main",
    "tag_list": [ //deprecated, use `topics` instead
      "example",
      "disapora client"
    ],
    "topics": [
      "example",
      "disapora client"
    ],
    "ssh_url_to_repo": "[email protected]:diaspora/diaspora-client.git",
    "http_url_to_repo": "https://gitlab.example.com/diaspora/diaspora-client.git",
    "web_url": "https://gitlab.example.com/diaspora/diaspora-client",
    "readme_url": "https://gitlab.example.com/diaspora/diaspora-client/blob/main/README.md",
    "avatar_url": "https://gitlab.example.com/uploads/project/avatar/4/uploads/avatar.png",
    "forks_count": 0,
    "star_count": 0,
    "last_activity_at": "2022-06-24T17:11:26.841Z",
    "namespace": {
      "id": 3,
      "name": "Diaspora",
      "path": "diaspora",
      "kind": "group",
      "full_path": "diaspora",
      "parent_id": null,
      "avatar_url": "https://gitlab.example.com/uploads/project/avatar/6/uploads/avatar.png",
      "web_url": "https://gitlab.example.com/diaspora"
    },
    "container_registry_image_prefix": "registry.gitlab.example.com/diaspora/diaspora-client",
    "_links": {
      "self": "https://gitlab.example.com/api/v4/projects/4",
      "issues": "https://gitlab.example.com/api/v4/projects/4/issues",
      "merge_requests": "https://gitlab.example.com/api/v4/projects/4/merge_requests",
      "repo_branches": "https://gitlab.example.com/api/v4/projects/4/repository/branches",
      "labels": "https://gitlab.example.com/api/v4/projects/4/labels",
      "events": "https://gitlab.example.com/api/v4/projects/4/events",
      "members": "https://gitlab.example.com/api/v4/projects/4/members",
      "cluster_agents": "https://gitlab.example.com/api/v4/projects/4/cluster_agents"
    },
    "packages_enabled": true, // deprecated, use package_registry_access_level instead
    "package_registry_access_level": "enabled",
    "empty_repo": false,
    "archived": false,
    "visibility": "public",
    "resolve_outdated_diff_discussions": false,
    "container_expiration_policy": {
      "cadence": "1month",
      "enabled": true,
      "keep_n": 1,
      "older_than": "14d",
      "name_regex": "",
      "name_regex_keep": ".*-main",
      "next_run_at": "2022-06-25T17:11:26.865Z"
    },
    "issues_enabled": true,
    "merge_requests_enabled": true,
    "wiki_enabled": true,
    "jobs_enabled": true,
    "snippets_enabled": true,
    "container_registry_enabled": true,
    "service_desk_enabled": true,
    "can_create_merge_request_in": true,
    "issues_access_level": "enabled",
    "repository_access_level": "enabled",
    "merge_requests_access_level": "enabled",
    "forking_access_level": "enabled",
    "wiki_access_level": "enabled",
    "builds_access_level": "enabled",
    "snippets_access_level": "enabled",
    "pages_access_level": "enabled",
    "analytics_access_level": "enabled",
    "container_registry_access_level": "enabled",
    "security_and_compliance_access_level": "private",
    "emails_disabled": null,
    "emails_enabled": null,
    "shared_runners_enabled": true,
    "group_runners_enabled": true,
    "lfs_enabled": true,
    "creator_id": 1,
    "import_url": null,
    "import_type": null,
    "import_status": "none",
    "import_error": null,
    "open_issues_count": 0,
    "ci_default_git_depth": 20,
    "ci_forward_deployment_enabled": true,
    "ci_forward_deployment_rollback_allowed": true,
    "ci_allow_fork_pipelines_to_run_in_parent_project": true,
    "ci_id_token_sub_claim_components": ["project_path", "ref_type", "ref"],
    "ci_job_token_scope_enabled": false,
    "ci_separated_caches": true,
    "ci_restrict_pipeline_cancellation_role": "developer",
    "ci_pipeline_variables_minimum_override_role": "maintainer",
    "ci_push_repository_for_job_token_allowed": false,
    "ci_display_pipeline_variables": false,
    "protect_merge_request_pipelines": true,
    "public_jobs": true,
    "build_timeout": 3600,
    "auto_cancel_pending_pipelines": "enabled",
    "ci_config_path": "",
    "shared_with_groups": [],
    "only_allow_merge_if_pipeline_succeeds": false,
    "allow_merge_on_skipped_pipeline": null,
    "allow_pipeline_trigger_approve_deployment": false,
    "restrict_user_defined_variables": false,
    "request_access_enabled": true,
    "only_allow_merge_if_all_discussions_are_resolved": false,
    "remove_source_branch_after_merge": true,
    "printing_merge_request_link_enabled": true,
    "merge_method": "merge",
    "squash_option": "default_off",
    "enforce_auth_checks_on_uploads": true,
    "suggestion_commit_message": null,
    "merge_commit_template": null,
    "mr_default_title_template": null,
    "squash_commit_template": null,
    "issue_branch_template": "gitlab/%{id}-%{title}",
    "auto_devops_enabled": false,
    "auto_devops_deploy_strategy": "continuous",
    "autoclose_referenced_issues": true,
    "keep_latest_artifact": true,
    "runner_token_expiration_interval": null,
    "external_authorization_classification_label": "",
    "requirements_enabled": false,
    "requirements_access_level": "enabled",
    "security_and_compliance_enabled": false,
    "secret_push_protection_enabled": false,
    "compliance_frameworks": [],
    "warn_about_potentially_unwanted_characters": true,
    "permissions": {
      "project_access": null,
      "group_access": null
    }
  },
  {
    ...
  }
]

[!note] last_activity_at est mis à jour en fonction de l'activité du projet et des événements du projet. Pour optimiser les performances de la base de données, ce champ est mis à jour au maximum une fois par heure. Les événements survenant dans l'heure suivant la dernière mise à jour ne modifient pas l'horodatage. Par conséquent, last_activity_at peut être en retard d'une heure au maximum. updated_at est mis à jour chaque fois que l'enregistrement du projet est modifié dans la base de données.

Lister tous les projets personnels d'un utilisateur {#list-all-personal-projects-for-a-user}

{{< history >}}

  • mr_default_title_template introduit dans GitLab 18.11 avec un feature flag nommé mr_default_title_template. Désactivé par défaut.
  • Le feature flag mr_default_title_template a été supprimé dans GitLab 19.0.

{{< /history >}}

Liste tous les projets personnels d'un utilisateur spécifié. Les restrictions suivantes s'appliquent :

  • Retourne uniquement les projets dans l'espace de nommage personnel de l'utilisateur, et non les projets de groupe ou de sous-groupe.
  • Si le profil utilisateur est privé, retourne une liste vide.
  • Les requêtes sans authentification retournent uniquement les projets publics.

Cet endpoint prend en charge la pagination :

  • Utilisez la pagination par décalage pour accéder à jusqu'à 50 000 projets.
  • Utilisez la pagination par jeu de clés pour lister plus de 50 000 projets.

Pour plus d'informations, consultez Pagination.

plaintext
GET /users/:user_id/projects

Attributs pris en charge :

AttributTypeObligatoireDescription
user_idstringOuiL'ID ou le nom d'utilisateur de l'utilisateur.
archivedbooleanNonFiltrer par statut archivé.
id_afterintegerNonLimiter les résultats aux projets dont les ID sont supérieurs à l'ID spécifié.
id_beforeintegerNonLimiter les résultats aux projets dont les ID sont inférieurs à l'ID spécifié.
membershipbooleanNonFiltrer par projets dont l'utilisateur actuel est membre.
min_access_levelintegerNonLimiter aux projets où l'utilisateur actuel dispose au moins du niveau d'accès spécifié. Valeurs possibles : 5 (Accès minimum), 10 (Guest), 15 (Planificateur), 20 (Reporter), 25 (Responsable sécurité), 30 (Developer), 40 (Maintainer) ou 50 (Owner).
order_bystringNonRetourner les projets triés par les champs id, name, path, created_at, updated_at, star_count ou last_activity_at. La valeur par défaut est created_at.
ownedbooleanNonFiltrer par projets explicitement détenus par l'utilisateur actuel.
searchstringNonRetourner la liste des projets correspondant aux critères de recherche.
simplebooleanNonSi true, renvoyer uniquement les champs limités pour chaque projet. Les requêtes non authentifiées renvoient uniquement les projets publics avec des champs limités, même si simple n'est pas défini.
sortstringNonRenvoyer les projets triés dans l'ordre asc ou desc. La valeur par défaut est desc.
starredbooleanNonFiltrer par projets mis en favori par l'utilisateur actuel.
statisticsbooleanNonInclure les statistiques du projet. Disponible uniquement pour les utilisateurs ayant le rôle Reporter, Developer, Maintainer ou Owner.
updated_afterdatetimeNonLimiter les résultats aux projets mis à jour après l'heure spécifiée. Format : ISO 8601 (YYYY-MM-DDTHH:MM:SSZ).
updated_beforedatetimeNonLimiter les résultats aux projets mis à jour avant l'heure spécifiée. Format : ISO 8601 (YYYY-MM-DDTHH:MM:SSZ).
visibilitystringNonFiltrer par visibilité. Valeurs possibles : public, internal ou private.
with_custom_attributesbooleanNonInclure les attributs personnalisés dans la réponse. Accès administrateur.
with_issues_enabledbooleanNonFiltrer par fonctionnalité de tickets activée.
with_merge_requests_enabledbooleanNonFiltrer par fonctionnalité de merge requests activée.
with_programming_languagestringNonFiltrer par projets utilisant le langage de programmation donné.

En cas de succès, renvoie 200 OK et les attributs de réponse suivants :

AttributTypeDescription
idintegerID du projet.
descriptionstringDescription du projet.
namestringNom du projet.
name_with_namespacestringNom du projet avec son espace de nommage.
pathstringChemin du projet.
path_with_namespacestringChemin du projet avec son espace de nommage.
created_atdatetimeHorodatage de la création du projet.
default_branchstringBranche par défaut du projet.
tag_listtableau de chaînes de caractèresDéprécié. Utilisez plutôt topics. Liste des tags du projet.
topicstableau de chaînes de caractèresListe des topics du projet.
ssh_url_to_repostringURL SSH pour cloner le dépôt.
http_url_to_repostringURL HTTP pour cloner le dépôt.
web_urlstringURL pour accéder au projet dans un navigateur.
readme_urlstringURL vers le fichier README du projet.
forks_countintegerNombre de duplications du projet.
avatar_urlstringURL vers l'image d'avatar du projet.
star_countintegerNombre d'étoiles reçues par le projet.
last_activity_atdatetimeHorodatage de la dernière activité dans le projet.
visibilitystringNiveau de visibilité du projet. Valeurs possibles : private, internal ou public.
namespaceobjetInformations sur l'espace de nommage du projet.
namespace.idintegerID de l'espace de nommage.
namespace.namestringNom de l'espace de nommage.
namespace.pathstringChemin de l'espace de nommage.
namespace.kindstringType d'espace de nommage. Valeurs possibles : user ou group.
namespace.full_pathstringChemin complet de l'espace de nommage.
namespace.parent_idintegerID de l'espace de nommage parent, le cas échéant.
namespace.avatar_urlstringURL vers l'image d'avatar de l'espace de nommage.
namespace.web_urlstringURL pour accéder à l'espace de nommage dans un navigateur.
container_registry_image_prefixstringPréfixe pour les images du registre de conteneurs.
_linksobjetEnsemble de liens d'endpoints d'API liés au projet.
_links.selfstringURL vers la ressource du projet.
_links.issuesstringURL vers les tickets du projet.
_links.merge_requestsstringURL vers les merge requests du projet.
_links.repo_branchesstringURL vers les branches du dépôt du projet.
_links.labelsstringURL vers les labels du projet.
_links.eventsstringURL vers les événements du projet.
_links.membersstringURL vers les membres du projet.
_links.cluster_agentsstringURL vers les agents de cluster du projet.
marked_for_deletion_atdateDéprécié. Utilisez plutôt marked_for_deletion_on. Date à laquelle le projet est programmé pour la suppression.
marked_for_deletion_ondateDate à laquelle le projet est programmé pour la suppression.
packages_enabledbooleanIndique si le registre de paquets est activé pour le projet.
empty_repobooleanIndique si le dépôt est vide.
archivedbooleanIndique si le projet est archivé.
resolve_outdated_diff_discussionsbooleanIndique si les discussions sur les diffs obsolètes sont automatiquement résolues.
container_expiration_policyobjetParamètres de la politique d'expiration des images de conteneur.
container_expiration_policy.cadencestringFréquence d'exécution de la politique d'expiration des conteneurs.
container_expiration_policy.enabledbooleanIndique si la politique d'expiration des conteneurs est activée.
container_expiration_policy.keep_nintegerNombre d'images de conteneur à conserver.
container_expiration_policy.older_thanstringSupprimer les images de conteneur plus anciennes que cette valeur.
container_expiration_policy.name_regexstringDéprécié. Utilisez plutôt name_regex_delete. Expression régulière pour correspondre aux noms des images de conteneur.
container_expiration_policy.name_regex_keepstringExpression régulière pour correspondre aux noms des images de conteneur à conserver.
container_expiration_policy.next_run_atdatetimeHorodatage de la prochaine exécution planifiée de la politique.
repository_object_formatstringFormat d'objet utilisé par le dépôt (sha1 ou sha256).
issues_enabledbooleanIndique si les tickets sont activés pour le projet.
merge_requests_enabledbooleanIndique si les merge requests sont activées pour le projet.
wiki_enabledbooleanIndique si le wiki est activé pour le projet.
jobs_enabledbooleanIndique si les jobs sont activés pour le projet.
snippets_enabledbooleanIndique si les extraits de code sont activés pour le projet.
container_registry_enabledbooleanDéprécié. Utilisez plutôt container_registry_access_level. Indique si le registre de conteneurs est activé.
service_desk_enabledbooleanIndique si Service Desk est activé pour le projet.
can_create_merge_request_inbooleanIndique si l'utilisateur actuel peut créer des merge requests dans le projet.
issues_access_levelstringNiveau d'accès pour la fonctionnalité des tickets. Valeurs possibles : disabled, private ou enabled.
repository_access_levelstringNiveau d'accès pour la fonctionnalité du dépôt. Valeurs possibles : disabled, private ou enabled.
merge_requests_access_levelstringNiveau d'accès pour la fonctionnalité des merge requests. Valeurs possibles : disabled, private ou enabled.
forking_access_levelstringNiveau d'accès pour la duplication du projet. Valeurs possibles : disabled, private ou enabled.
wiki_access_levelstringNiveau d'accès pour la fonctionnalité wiki. Valeurs possibles : disabled, private ou enabled.
builds_access_levelstringNiveau d'accès pour la fonctionnalité de builds CI/CD. Valeurs possibles : disabled, private ou enabled.
snippets_access_levelstringNiveau d'accès pour la fonctionnalité des extraits de code. Valeurs possibles : disabled, private ou enabled.
pages_access_levelstringNiveau d'accès pour GitLab Pages. Valeurs possibles : disabled, private, enabled ou public.
analytics_access_levelstringNiveau d'accès pour les fonctionnalités d'analyse. Valeurs possibles : disabled, private ou enabled.
container_registry_access_levelstringNiveau d'accès pour le registre de conteneurs. Valeurs possibles : disabled, private ou enabled.
security_and_compliance_access_levelstringNiveau d'accès pour les fonctionnalités de sécurité et de conformité. Valeurs possibles : disabled, private ou enabled.
releases_access_levelstringNiveau d'accès pour la fonctionnalité des releases. Valeurs possibles : disabled, private ou enabled.
environments_access_levelstringNiveau d'accès pour la fonctionnalité des environnements. Valeurs possibles : disabled, private ou enabled.
feature_flags_access_levelstringNiveau d'accès pour la fonctionnalité des feature flags. Valeurs possibles : disabled, private ou enabled.
infrastructure_access_levelstringNiveau d'accès pour la fonctionnalité d'infrastructure. Valeurs possibles : disabled, private ou enabled.
monitor_access_levelstringNiveau d'accès pour la fonctionnalité de surveillance. Valeurs possibles : disabled, private ou enabled.
model_experiments_access_levelstringNiveau d'accès pour la fonctionnalité des expériences de modèles. Valeurs possibles : disabled, private ou enabled.
model_registry_access_levelstringNiveau d'accès pour la fonctionnalité du registre de modèles. Valeurs possibles : disabled, private ou enabled.
package_registry_access_levelstringNiveau d'accès pour la fonctionnalité du registre de paquets. Valeurs possibles : disabled, private ou enabled.
emails_disabledbooleanIndique si les e-mails sont désactivés pour le projet.
emails_enabledbooleanIndique si les e-mails sont activés pour le projet.
show_diff_preview_in_emailbooleanIndique si les aperçus de diff sont affichés dans les notifications par e-mail.
shared_runners_enabledbooleanIndique si les runners partagés sont activés pour le projet.
lfs_enabledbooleanIndique si Git LFS est activé pour le projet.
creator_idintegerID de l'utilisateur qui a créé le projet.
import_statusstringStatut de l'import du projet.
open_issues_countintegerNombre de tickets ouverts.
description_htmlstringDescription du projet au format HTML.
updated_atdatetimeHorodatage de la dernière mise à jour du projet.
ci_default_git_depthintegerProfondeur Git par défaut pour les pipelines CI/CD. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
ci_forward_deployment_enabledbooleanIndique si le déploiement en avant est activé. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
ci_job_token_scope_enabledbooleanIndique si la portée du token de job CI/CD est activée. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
ci_separated_cachesbooleanIndique si les caches CI/CD sont séparés par branche. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
ci_allow_fork_pipelines_to_run_in_parent_projectbooleanIndique si les pipelines de fork peuvent s'exécuter dans le projet parent. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
build_git_strategystringStratégie Git utilisée pour les builds CI/CD (fetch ou clone). Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
keep_latest_artifactbooleanIndique si le dernier artefact est conservé lors de la création d'un nouvel artefact. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
restrict_user_defined_variablesbooleanIndique si les variables définies par l'utilisateur sont restreintes. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
runners_tokenstringToken pour enregistrer des runners auprès du projet. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
runner_token_expiration_intervalintegerIntervalle d'expiration en secondes pour les tokens de runner. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
group_runners_enabledbooleanIndique si les runners de groupe sont activés pour le projet. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
auto_cancel_pending_pipelinesstringParamètre pour l'annulation automatique des pipelines en attente. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
build_timeoutintegerDélai d'attente en secondes pour les jobs CI/CD. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
auto_devops_enabledbooleanIndique si Auto DevOps est activé pour le projet. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
auto_devops_deploy_strategystringStratégie de déploiement pour Auto DevOps. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
ci_config_pathstringChemin vers le fichier de configuration CI/CD.
public_jobsbooleanIndique si les job logs sont accessibles publiquement.
shared_with_groupstableau d'objetsListe des groupes avec lesquels le projet est partagé.
only_allow_merge_if_pipeline_succeedsbooleanIndique si les fusions sont autorisées uniquement si le pipeline réussit.
allow_merge_on_skipped_pipelinebooleanIndique si les fusions sont autorisées lorsque le pipeline est ignoré.
request_access_enabledbooleanIndique si les utilisateurs peuvent demander l'accès au projet.
only_allow_merge_if_all_discussions_are_resolvedbooleanIndique si les fusions sont autorisées uniquement si toutes les discussions sont résolues.
remove_source_branch_after_mergebooleanIndique si la branche source est automatiquement supprimée après la fusion.
printing_merge_request_link_enabledbooleanIndique si les liens de merge request sont affichés après un push.
merge_methodstringMéthode de fusion utilisée pour le projet. Valeurs possibles : merge, rebase_merge ou ff.
merge_request_title_regexstringModèle d'expression régulière pour la validation des titres de merge request.
merge_request_title_regex_descriptionstringDescription de la validation du titre de merge request par expression régulière.
squash_optionstringOption de squash pour les merge requests.
enforce_auth_checks_on_uploadsbooleanIndique si les vérifications d'authentification sont appliquées lors des uploads.
suggestion_commit_messagestringMessage de commit personnalisé pour les suggestions.
merge_commit_templatestringModèle pour les messages de commit de fusion.
mr_default_title_templatestringModèle pour les titres de merge request.
squash_commit_templatestringModèle pour les messages de commit de squash.
issue_branch_templatestringModèle pour les noms de branches créées à partir de tickets.
warn_about_potentially_unwanted_charactersbooleanIndique si un avertissement est émis pour les caractères potentiellement indésirables.
autoclose_referenced_issuesbooleanIndique si les tickets référencés sont automatiquement fermés.
max_artifacts_sizeintegerTaille maximale en Mo pour les artefacts de job CI/CD.
approvals_before_mergeintegerDéprécié. Utilisez plutôt l'API Merge request approvals. Nombre d'approbations requises avant la fusion.
mirrorbooleanIndique si le projet est un miroir.
external_authorization_classification_labelstringLabel de classification d'autorisation externe.
requirements_enabledbooleanIndique si la gestion des exigences est activée.
requirements_access_levelstringNiveau d'accès pour la fonctionnalité des exigences.
security_and_compliance_enabledbooleanIndique si les fonctionnalités de sécurité et de conformité sont activées.
compliance_frameworkstableau de chaînes de caractèresCadres de conformité appliqués au projet.
issues_templatestringDescription par défaut pour les tickets. La description est analysée avec GitLab Flavored Markdown. Premium et Ultimate uniquement.
merge_requests_templatestringModèle pour les descriptions de merge request. Premium et Ultimate uniquement.
merge_pipelines_enabledbooleanIndique si les pipelines de fusion sont activés.
merge_trains_enabledbooleanIndique si les merge trains sont activés.
merge_trains_skip_train_allowedbooleanIndique si l'omission du merge train est autorisée.
max_pipelines_per_merge_trainintegerNombre maximum de pipelines parallèles par merge train.
only_allow_merge_if_all_status_checks_passedbooleanIndique si les fusions sont autorisées uniquement si tous les contrôles de statut ont réussi. Ultimate uniquement.
allow_pipeline_trigger_approve_deploymentbooleanIndique si les déclencheurs de pipeline peuvent approuver des déploiements.
prevent_merge_without_jira_issuebooleanIndique si les fusions nécessitent un ticket Jira associé.
duo_remote_flows_enabledbooleanIndique si les flows distants GitLab Duo sont activés.
duo_foundational_flows_enabledbooleanIndique si les flows par défaut GitLab Duo sont activés.
duo_sast_fp_detection_enabledbooleanIndique si la détection des faux positifs SAST de GitLab Duo est activée.
duo_sast_vr_workflow_enabledbooleanIndique si le workflow de résolution des vulnérabilités SAST de GitLab Duo est activé.
spp_repository_pipeline_accessbooleanAccès au pipeline du dépôt pour les politiques de sécurité. Visible uniquement si la fonctionnalité de politiques d'orchestration de sécurité est disponible.
permissionsobjetPermissions de l'utilisateur pour le projet.
permissions.project_accessobjetPermissions d'accès au projet pour l'utilisateur.
permissions.group_accessobjetPermissions d'accès au groupe pour l'utilisateur.
<!-- markdownlint-disable-next-line MD055 MD056 -->

{.condensed}

Exemple de requête :

shell
curl --header "PRIVATE-TOKEN: <your_access_token>" \
     --header "Accept: application/json" \
     --url "https://gitlab.example.com/api/v4/users/:user_id/projects

Exemple de réponse :

json
[
  {
    "id": 4,
    "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
    "description_html": "<p data-sourcepos=\"1:1-1:56\" dir=\"auto\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>",
    "default_branch": "main",
    "visibility": "private",
    "ssh_url_to_repo": "[email protected]:diaspora/diaspora-client.git",
    "http_url_to_repo": "http://example.com/diaspora/diaspora-client.git",
    "web_url": "http://example.com/diaspora/diaspora-client",
    "readme_url": "http://example.com/diaspora/diaspora-client/blob/main/README.md",
    "tag_list": [ //deprecated, use `topics` instead
      "example",
      "disapora client"
    ],
    "topics": [
      "example",
      "disapora client"
    ],
    "owner": {
      "id": 3,
      "name": "Diaspora",
      "created_at": "2013-09-30T13:46:02Z"
    },
    "name": "Diaspora Client",
    "name_with_namespace": "Diaspora / Diaspora Client",
    "path": "diaspora-client",
    "path_with_namespace": "diaspora/diaspora-client",
    "issues_enabled": true,
    "open_issues_count": 1,
    "merge_requests_enabled": true,
    "jobs_enabled": true,
    "wiki_enabled": true,
    "snippets_enabled": false,
    "can_create_merge_request_in": true,
    "resolve_outdated_diff_discussions": false,
    "container_registry_enabled": false, // deprecated, use container_registry_access_level instead
    "container_registry_access_level": "disabled",
    "security_and_compliance_access_level": "disabled",
    "created_at": "2013-09-30T13:46:02Z",
    "updated_at": "2013-09-30T13:46:02Z",
    "last_activity_at": "2013-09-30T13:46:02Z",
    "creator_id": 3,
    "import_url": null,
    "import_type": null,
    "import_status": "none",
    "import_error": null,
    "namespace": {
      "id": 3,
      "name": "Diaspora",
      "path": "diaspora",
      "kind": "group",
      "full_path": "diaspora"
    },
    "import_status": "none",
    "archived": false,
    "avatar_url": "http://example.com/uploads/project/avatar/4/uploads/avatar.png",
    "shared_runners_enabled": true,
    "group_runners_enabled": true,
    "forks_count": 0,
    "star_count": 0,
    "runners_token": "b8547b1dc37721d05889db52fa2f02",
    "ci_default_git_depth": 50,
    "ci_forward_deployment_enabled": true,
    "ci_forward_deployment_rollback_allowed": true,
    "ci_allow_fork_pipelines_to_run_in_parent_project": true,
    "ci_id_token_sub_claim_components": ["project_path", "ref_type", "ref"],
    "ci_separated_caches": true,
    "ci_restrict_pipeline_cancellation_role": "developer",
    "ci_pipeline_variables_minimum_override_role": "maintainer",
    "ci_push_repository_for_job_token_allowed": false,
    "ci_display_pipeline_variables": false,
    "protect_merge_request_pipelines": true,
    "public_jobs": true,
    "shared_with_groups": [],
    "only_allow_merge_if_pipeline_succeeds": false,
    "allow_merge_on_skipped_pipeline": false,
    "allow_pipeline_trigger_approve_deployment": false,
    "restrict_user_defined_variables": false,
    "only_allow_merge_if_all_discussions_are_resolved": false,
    "remove_source_branch_after_merge": false,
    "request_access_enabled": false,
    "merge_method": "merge",
    "squash_option": "default_on",
    "autoclose_referenced_issues": true,
    "enforce_auth_checks_on_uploads": true,
    "suggestion_commit_message": null,
    "merge_commit_template": null,
    "mr_default_title_template": null,
    "squash_commit_template": null,
    "secret_push_protection_enabled": false,
    "issue_branch_template": "gitlab/%{id}-%{title}",
    "marked_for_deletion_at": "2020-04-03", // Deprecated in favor of marked_for_deletion_on. Planned for removal in a future version of the REST API.
    "marked_for_deletion_on": "2020-04-03",
    "statistics": {
      "commit_count": 37,
      "storage_size": 1038090,
      "repository_size": 1038090,
      "wiki_size" : 0,
      "lfs_objects_size": 0,
      "job_artifacts_size": 0,
      "pipeline_artifacts_size": 0,
      "packages_size": 0,
      "snippets_size": 0,
      "uploads_size": 0,
      "container_registry_size": 0
    },
    "container_registry_image_prefix": "registry.example.com/diaspora/diaspora-client",
    "_links": {
      "self": "http://example.com/api/v4/projects",
      "issues": "http://example.com/api/v4/projects/1/issues",
      "merge_requests": "http://example.com/api/v4/projects/1/merge_requests",
      "repo_branches": "http://example.com/api/v4/projects/1/repository_branches",
      "labels": "http://example.com/api/v4/projects/1/labels",
      "events": "http://example.com/api/v4/projects/1/events",
      "members": "http://example.com/api/v4/projects/1/members",
      "cluster_agents": "http://example.com/api/v4/projects/1/cluster_agents"
    }
  },
  {
    "id": 6,
    "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
    "description_html": "<p data-sourcepos=\"1:1-1:56\" dir=\"auto\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>",
    "default_branch": "main",
    "visibility": "private",
    "ssh_url_to_repo": "[email protected]:brightbox/puppet.git",
    "http_url_to_repo": "http://example.com/brightbox/puppet.git",
    "web_url": "http://example.com/brightbox/puppet",
    "readme_url": "http://example.com/brightbox/puppet/blob/main/README.md",
    "tag_list": [ //deprecated, use `topics` instead
      "example",
      "puppet"
    ],
    "topics": [
      "example",
      "puppet"
    ],
    "owner": {
      "id": 4,
      "name": "Brightbox",
      "created_at": "2013-09-30T13:46:02Z"
    },
    "name": "Puppet",
    "name_with_namespace": "Brightbox / Puppet",
    "path": "puppet",
    "path_with_namespace": "brightbox/puppet",
    "issues_enabled": true,
    "open_issues_count": 1,
    "merge_requests_enabled": true,
    "jobs_enabled": true,
    "wiki_enabled": true,
    "snippets_enabled": false,
    "can_create_merge_request_in": true,
    "resolve_outdated_diff_discussions": false,
    "container_registry_enabled": false, // deprecated, use container_registry_access_level instead
    "container_registry_access_level": "disabled",
    "security_and_compliance_access_level": "disabled",
    "created_at": "2013-09-30T13:46:02Z",
    "updated_at": "2013-09-30T13:46:02Z",
    "last_activity_at": "2013-09-30T13:46:02Z",
    "creator_id": 3,
    "import_url": null,
    "import_type": null,
    "import_status": "none",
    "import_error": null,
    "namespace": {
      "id": 4,
      "name": "Brightbox",
      "path": "brightbox",
      "kind": "group",
      "full_path": "brightbox"
    },
    "import_status": "none",
    "import_error": null,
    "permissions": {
      "project_access": {
        "access_level": 10,
        "notification_level": 3
      },
      "group_access": {
        "access_level": 50,
        "notification_level": 3
      }
    },
    "archived": false,
    "avatar_url": null,
    "shared_runners_enabled": true,
    "group_runners_enabled": true,
    "forks_count": 0,
    "star_count": 0,
    "runners_token": "b8547b1dc37721d05889db52fa2f02",
    "ci_default_git_depth": 0,
    "ci_forward_deployment_enabled": true,
    "ci_forward_deployment_rollback_allowed": true,
    "ci_allow_fork_pipelines_to_run_in_parent_project": true,
    "ci_id_token_sub_claim_components": ["project_path", "ref_type", "ref"],
    "ci_separated_caches": true,
    "ci_restrict_pipeline_cancellation_role": "developer",
    "ci_pipeline_variables_minimum_override_role": "maintainer",
    "ci_push_repository_for_job_token_allowed": false,
    "ci_display_pipeline_variables": false,
    "protect_merge_request_pipelines": true,
    "public_jobs": true,
    "shared_with_groups": [],
    "only_allow_merge_if_pipeline_succeeds": false,
    "allow_merge_on_skipped_pipeline": false,
    "allow_pipeline_trigger_approve_deployment": false,
    "restrict_user_defined_variables": false,
    "only_allow_merge_if_all_discussions_are_resolved": false,
    "remove_source_branch_after_merge": false,
    "request_access_enabled": false,
    "merge_method": "merge",
    "squash_option": "default_on",
    "auto_devops_enabled": true,
    "auto_devops_deploy_strategy": "continuous",
    "repository_storage": "default",
    "approvals_before_merge": 0, // Deprecated. Use merge request approvals API instead.
    "mirror": false,
    "mirror_user_id": 45,
    "mirror_trigger_builds": false,
    "only_mirror_protected_branches": false,
    "mirror_overwrites_diverged_branches": false,
    "external_authorization_classification_label": null,
    "packages_enabled": true, // deprecated, use package_registry_access_level instead
    "empty_repo": false,
    "package_registry_access_level": "enabled",
    "service_desk_enabled": false,
    "service_desk_address": null,
    "autoclose_referenced_issues": true,
    "enforce_auth_checks_on_uploads": true,
    "suggestion_commit_message": null,
    "merge_commit_template": null,
    "mr_default_title_template": null,
    "squash_commit_template": null,
    "secret_push_protection_enabled": false,
    "issue_branch_template": "gitlab/%{id}-%{title}",
    "statistics": {
      "commit_count": 12,
      "storage_size": 2066080,
      "repository_size": 2066080,
      "wiki_size" : 0,
      "lfs_objects_size": 0,
      "job_artifacts_size": 0,
      "pipeline_artifacts_size": 0,
      "packages_size": 0,
      "snippets_size": 0,
      "uploads_size": 0,
      "container_registry_size": 0
    },
    "container_registry_image_prefix": "registry.example.com/brightbox/puppet",
    "_links": {
      "self": "http://example.com/api/v4/projects",
      "issues": "http://example.com/api/v4/projects/1/issues",
      "merge_requests": "http://example.com/api/v4/projects/1/merge_requests",
      "repo_branches": "http://example.com/api/v4/projects/1/repository_branches",
      "labels": "http://example.com/api/v4/projects/1/labels",
      "events": "http://example.com/api/v4/projects/1/events",
      "members": "http://example.com/api/v4/projects/1/members",
      "cluster_agents": "http://example.com/api/v4/projects/1/cluster_agents"
    }
  }
]

Lister toutes les contributions de projets pour un utilisateur {#list-all-projects-contributions-for-a-user}

{{< history >}}

  • mr_default_title_template introduit dans GitLab 18.11 avec un feature flag nommé mr_default_title_template. Désactivé par défaut.
  • Le feature flag mr_default_title_template a été supprimé dans GitLab 19.0.

{{< /history >}}

Liste toutes les contributions aux projets visibles pour un utilisateur spécifié. Retourne uniquement les contributions de l'année écoulée. Pour plus d'informations sur ce qui est considéré comme une contribution, consultez Voir les projets avec lesquels vous travaillez.

plaintext
GET /users/:user_id/contributed_projects

Attributs pris en charge :

AttributTypeObligatoireDescription
user_idstringOuiL'ID ou le nom d'utilisateur de l'utilisateur.
order_bystringNonRetourner les projets triés par les champs id, name, path, created_at, updated_at, star_count ou last_activity_at. La valeur par défaut est created_at.
simplebooleanNonSi true, renvoyer uniquement les champs limités pour chaque projet. Les requêtes non authentifiées renvoient uniquement les projets publics avec des champs limités, même si simple n'est pas défini.
sortstringNonRenvoyer les projets triés dans l'ordre asc ou desc. La valeur par défaut est desc.

En cas de succès, renvoie 200 OK et les attributs de réponse suivants :

AttributTypeDescription
idintegerID du projet.
descriptionstringDescription du projet.
namestringNom du projet.
name_with_namespacestringNom du projet avec son espace de nommage.
pathstringChemin du projet.
path_with_namespacestringChemin du projet avec son espace de nommage.
created_atdatetimeHorodatage de la création du projet.
default_branchstringBranche par défaut du projet.
tag_listtableau de chaînes de caractèresDéprécié. Utilisez plutôt topics. Liste des tags du projet.
topicstableau de chaînes de caractèresListe des topics du projet.
ssh_url_to_repostringURL SSH pour cloner le dépôt.
http_url_to_repostringURL HTTP pour cloner le dépôt.
web_urlstringURL pour accéder au projet dans un navigateur.
readme_urlstringURL vers le fichier README du projet.
forks_countintegerNombre de duplications du projet.
avatar_urlstringURL vers l'image d'avatar du projet.
star_countintegerNombre d'étoiles reçues par le projet.
last_activity_atdatetimeHorodatage de la dernière activité dans le projet.
visibilitystringNiveau de visibilité du projet. Valeurs possibles : private, internal ou public.
namespaceobjetInformations sur l'espace de nommage du projet.
namespace.idintegerID de l'espace de nommage.
namespace.namestringNom de l'espace de nommage.
namespace.pathstringChemin de l'espace de nommage.
namespace.kindstringType d'espace de nommage. Valeurs possibles : user ou group.
namespace.full_pathstringChemin complet de l'espace de nommage.
namespace.parent_idintegerID de l'espace de nommage parent, le cas échéant.
namespace.avatar_urlstringURL vers l'image d'avatar de l'espace de nommage.
namespace.web_urlstringURL pour accéder à l'espace de nommage dans un navigateur.
container_registry_image_prefixstringPréfixe pour les images du registre de conteneurs.
_linksobjetEnsemble de liens d'endpoints d'API liés au projet.
_links.selfstringURL vers la ressource du projet.
_links.issuesstringURL vers les tickets du projet.
_links.merge_requestsstringURL vers les merge requests du projet.
_links.repo_branchesstringURL vers les branches du dépôt du projet.
_links.labelsstringURL vers les labels du projet.
_links.eventsstringURL vers les événements du projet.
_links.membersstringURL vers les membres du projet.
_links.cluster_agentsstringURL vers les agents de cluster du projet.
marked_for_deletion_atdateDéprécié. Utilisez plutôt marked_for_deletion_on. Date à laquelle le projet est programmé pour la suppression.
marked_for_deletion_ondateDate à laquelle le projet est programmé pour la suppression.
packages_enabledbooleanIndique si le registre de paquets est activé pour le projet.
empty_repobooleanIndique si le dépôt est vide.
archivedbooleanIndique si le projet est archivé.
resolve_outdated_diff_discussionsbooleanIndique si les discussions sur les diffs obsolètes sont automatiquement résolues.
container_expiration_policyobjetParamètres de la politique d'expiration des images de conteneur.
container_expiration_policy.cadencestringFréquence d'exécution de la politique d'expiration des conteneurs.
container_expiration_policy.enabledbooleanIndique si la politique d'expiration des conteneurs est activée.
container_expiration_policy.keep_nintegerNombre d'images de conteneur à conserver.
container_expiration_policy.older_thanstringSupprimer les images de conteneur plus anciennes que cette valeur.
container_expiration_policy.name_regexstringDéprécié. Utilisez plutôt name_regex_delete. Expression régulière pour correspondre aux noms des images de conteneur.
container_expiration_policy.name_regex_keepstringExpression régulière pour correspondre aux noms des images de conteneur à conserver.
container_expiration_policy.next_run_atdatetimeHorodatage de la prochaine exécution planifiée de la politique.
repository_object_formatstringFormat d'objet utilisé par le dépôt (sha1 ou sha256).
issues_enabledbooleanIndique si les tickets sont activés pour le projet.
merge_requests_enabledbooleanIndique si les merge requests sont activées pour le projet.
wiki_enabledbooleanIndique si le wiki est activé pour le projet.
jobs_enabledbooleanIndique si les jobs sont activés pour le projet.
snippets_enabledbooleanIndique si les extraits de code sont activés pour le projet.
container_registry_enabledbooleanDéprécié. Utilisez plutôt container_registry_access_level. Indique si le registre de conteneurs est activé.
service_desk_enabledbooleanIndique si Service Desk est activé pour le projet.
can_create_merge_request_inbooleanIndique si l'utilisateur actuel peut créer des merge requests dans le projet.
issues_access_levelstringNiveau d'accès pour la fonctionnalité des tickets. Valeurs possibles : disabled, private ou enabled.
repository_access_levelstringNiveau d'accès pour la fonctionnalité du dépôt. Valeurs possibles : disabled, private ou enabled.
merge_requests_access_levelstringNiveau d'accès pour la fonctionnalité des merge requests. Valeurs possibles : disabled, private ou enabled.
forking_access_levelstringNiveau d'accès pour la duplication du projet. Valeurs possibles : disabled, private ou enabled.
wiki_access_levelstringNiveau d'accès pour la fonctionnalité wiki. Valeurs possibles : disabled, private ou enabled.
builds_access_levelstringNiveau d'accès pour la fonctionnalité de builds CI/CD. Valeurs possibles : disabled, private ou enabled.
snippets_access_levelstringNiveau d'accès pour la fonctionnalité des extraits de code. Valeurs possibles : disabled, private ou enabled.
pages_access_levelstringNiveau d'accès pour GitLab Pages. Valeurs possibles : disabled, private, enabled ou public.
analytics_access_levelstringNiveau d'accès pour les fonctionnalités d'analyse. Valeurs possibles : disabled, private ou enabled.
container_registry_access_levelstringNiveau d'accès pour le registre de conteneurs. Valeurs possibles : disabled, private ou enabled.
security_and_compliance_access_levelstringNiveau d'accès pour les fonctionnalités de sécurité et de conformité. Valeurs possibles : disabled, private ou enabled.
releases_access_levelstringNiveau d'accès pour la fonctionnalité des releases. Valeurs possibles : disabled, private ou enabled.
environments_access_levelstringNiveau d'accès pour la fonctionnalité des environnements. Valeurs possibles : disabled, private ou enabled.
feature_flags_access_levelstringNiveau d'accès pour la fonctionnalité des feature flags. Valeurs possibles : disabled, private ou enabled.
infrastructure_access_levelstringNiveau d'accès pour la fonctionnalité d'infrastructure. Valeurs possibles : disabled, private ou enabled.
monitor_access_levelstringNiveau d'accès pour la fonctionnalité de surveillance. Valeurs possibles : disabled, private ou enabled.
model_experiments_access_levelstringNiveau d'accès pour la fonctionnalité des expériences de modèles. Valeurs possibles : disabled, private ou enabled.
model_registry_access_levelstringNiveau d'accès pour la fonctionnalité du registre de modèles. Valeurs possibles : disabled, private ou enabled.
package_registry_access_levelstringNiveau d'accès pour la fonctionnalité du registre de paquets. Valeurs possibles : disabled, private ou enabled.
emails_disabledbooleanIndique si les e-mails sont désactivés pour le projet.
emails_enabledbooleanIndique si les e-mails sont activés pour le projet.
show_diff_preview_in_emailbooleanIndique si les aperçus de diff sont affichés dans les notifications par e-mail.
shared_runners_enabledbooleanIndique si les runners partagés sont activés pour le projet.
lfs_enabledbooleanIndique si Git LFS est activé pour le projet.
creator_idintegerID de l'utilisateur qui a créé le projet.
import_statusstringStatut de l'import du projet.
open_issues_countintegerNombre de tickets ouverts.
description_htmlstringDescription du projet au format HTML.
updated_atdatetimeHorodatage de la dernière mise à jour du projet.
ci_default_git_depthintegerProfondeur Git par défaut pour les pipelines CI/CD. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
ci_forward_deployment_enabledbooleanIndique si le déploiement en avant est activé. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
ci_job_token_scope_enabledbooleanIndique si la portée du token de job CI/CD est activée. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
ci_separated_cachesbooleanIndique si les caches CI/CD sont séparés par branche. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
ci_allow_fork_pipelines_to_run_in_parent_projectbooleanIndique si les pipelines de fork peuvent s'exécuter dans le projet parent. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
build_git_strategystringStratégie Git utilisée pour les builds CI/CD (fetch ou clone). Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
keep_latest_artifactbooleanIndique si le dernier artefact est conservé lors de la création d'un nouvel artefact. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
restrict_user_defined_variablesbooleanIndique si les variables définies par l'utilisateur sont restreintes. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
runners_tokenstringToken pour enregistrer des runners auprès du projet. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
runner_token_expiration_intervalintegerIntervalle d'expiration en secondes pour les tokens de runner. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
group_runners_enabledbooleanIndique si les runners de groupe sont activés pour le projet. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
auto_cancel_pending_pipelinesstringParamètre pour l'annulation automatique des pipelines en attente. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
build_timeoutintegerDélai d'attente en secondes pour les jobs CI/CD. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
auto_devops_enabledbooleanIndique si Auto DevOps est activé pour le projet. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
auto_devops_deploy_strategystringStratégie de déploiement pour Auto DevOps. Visible uniquement si vous disposez d'un accès administrateur ou du rôle Owner pour le projet.
ci_config_pathstringChemin vers le fichier de configuration CI/CD.
public_jobsbooleanIndique si les job logs sont accessibles publiquement.
shared_with_groupstableau d'objetsListe des groupes avec lesquels le projet est partagé.
only_allow_merge_if_pipeline_succeedsbooleanIndique si les fusions sont autorisées uniquement si le pipeline réussit.
allow_merge_on_skipped_pipelinebooleanIndique si les fusions sont autorisées lorsque le pipeline est ignoré.
request_access_enabledbooleanIndique si les utilisateurs peuvent demander l'accès au projet.
only_allow_merge_if_all_discussions_are_resolvedbooleanIndique si les fusions sont autorisées uniquement si toutes les discussions sont résolues.
remove_source_branch_after_mergebooleanIndique si la branche source est automatiquement supprimée après la fusion.
printing_merge_request_link_enabledbooleanIndique si les liens de merge request sont affichés après un push.
merge_methodstringMéthode de fusion utilisée pour le projet. Valeurs possibles : merge, rebase_merge ou ff.
merge_request_title_regexstringModèle d'expression régulière pour la validation des titres de merge request.
merge_request_title_regex_descriptionstringDescription de la validation du titre de merge request par expression régulière.
squash_optionstringOption de squash pour les merge requests.
enforce_auth_checks_on_uploadsbooleanIndique si les vérifications d'authentification sont appliquées lors des uploads.
suggestion_commit_messagestringMessage de commit personnalisé pour les suggestions.
merge_commit_templatestringModèle pour les messages de commit de fusion.
mr_default_title_templatestringModèle pour les titres de merge request.
squash_commit_templatestringModèle pour les messages de commit de squash.
issue_branch_templatestringModèle pour les noms de branches créées à partir de tickets.
warn_about_potentially_unwanted_charactersbooleanIndique si un avertissement est émis pour les caractères potentiellement indésirables.
autoclose_referenced_issuesbooleanIndique si les tickets référencés sont automatiquement fermés.
max_artifacts_sizeintegerTaille maximale en Mo pour les artefacts de job CI/CD.
approvals_before_mergeintegerDéprécié. Utilisez plutôt l'API Merge request approvals. Nombre d'approbations requises avant la fusion.
mirrorbooleanIndique si le projet est un miroir.
external_authorization_classification_labelstringLabel de classification d'autorisation externe.
requirements_enabledbooleanIndique si la gestion des exigences est activée.
requirements_access_levelstringNiveau d'accès pour la fonctionnalité des exigences.
security_and_compliance_enabledbooleanIndique si les fonctionnalités de sécurité et de conformité sont activées.
compliance_frameworkstableau de chaînes de caractèresCadres de conformité appliqués au projet.
issues_templatestringDescription par défaut pour les tickets. La description est analysée avec GitLab Flavored Markdown. Premium et Ultimate uniquement.
merge_requests_templatestringModèle pour les descriptions de merge request. Premium et Ultimate uniquement.
merge_pipelines_enabledbooleanIndique si les pipelines de fusion sont activés.
merge_trains_enabledbooleanIndique si les merge trains sont activés.
merge_trains_skip_train_allowedbooleanIndique si l'omission du merge train est autorisée.
max_pipelines_per_merge_trainintegerNombre maximum de pipelines parallèles par merge train.
only_allow_merge_if_all_status_checks_passedbooleanIndique si les fusions sont autorisées uniquement si tous les contrôles de statut ont réussi. Ultimate uniquement.
allow_pipeline_trigger_approve_deploymentbooleanIndique si les déclencheurs de pipeline peuvent approuver des déploiements.
prevent_merge_without_jira_issuebooleanIndique si les fusions nécessitent un ticket Jira associé.
duo_remote_flows_enabledbooleanIndique si les flows distants GitLab Duo sont activés.
duo_foundational_flows_enabledbooleanIndique si les flows par défaut GitLab Duo sont activés.
duo_sast_fp_detection_enabledbooleanIndique si la détection des faux positifs SAST de GitLab Duo est activée.
duo_sast_vr_workflow_enabledbooleanIndique si le workflow de résolution des vulnérabilités SAST de GitLab Duo est activé.
spp_repository_pipeline_accessbooleanAccès au pipeline du dépôt pour les politiques de sécurité. Visible uniquement si la fonctionnalité de politiques d'orchestration de sécurité est disponible.
permissionsobjetPermissions de l'utilisateur pour le projet.
permissions.project_accessobjetPermissions d'accès au projet pour l'utilisateur.
permissions.group_accessobjetPermissions d'accès au groupe pour l'utilisateur.
<!-- markdownlint-disable-next-line MD055 MD056 -->

{.condensed}

Exemple de requête :

shell
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/users/5/contributed_projects"

Exemple de réponse :

json
[
  {
    "id": 4,
    "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
    "description_html": "<p data-sourcepos=\"1:1-1:56\" dir=\"auto\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>",
    "default_branch": "main",
    "visibility": "private",
    "ssh_url_to_repo": "[email protected]:diaspora/diaspora-client.git",
    "http_url_to_repo": "http://example.com/diaspora/diaspora-client.git",
    "web_url": "http://example.com/diaspora/diaspora-client",
    "readme_url": "http://example.com/diaspora/diaspora-client/blob/main/README.md",
    "tag_list": [ //deprecated, use `topics` instead
      "example",
      "disapora client"
    ],
    "topics": [
      "example",
      "disapora client"
    ],
    "owner": {
      "id": 3,
      "name": "Diaspora",
      "created_at": "2013-09-30T13:46:02Z"
    },
    "name": "Diaspora Client",
    "name_with_namespace": "Diaspora / Diaspora Client",
    "path": "diaspora-client",
    "path_with_namespace": "diaspora/diaspora-client",
    "issues_enabled": true,
    "open_issues_count": 1,
    "merge_requests_enabled": true,
    "jobs_enabled": true,
    "wiki_enabled": true,
    "snippets_enabled": false,
    "can_create_merge_request_in": true,
    "resolve_outdated_diff_discussions": false,
    "container_registry_enabled": false, // deprecated, use container_registry_access_level instead
    "container_registry_access_level": "disabled",
    "security_and_compliance_access_level": "disabled",
    "created_at": "2013-09-30T13:46:02Z",
    "updated_at": "2013-09-30T13:46:02Z",
    "last_activity_at": "2013-09-30T13:46:02Z",
    "creator_id": 3,
    "namespace": {
      "id": 3,
      "name": "Diaspora",
      "path": "diaspora",
      "kind": "group",
      "full_path": "diaspora"
    },
    "import_status": "none",
    "archived": false,
    "avatar_url": "http://example.com/uploads/project/avatar/4/uploads/avatar.png",
    "shared_runners_enabled": true,
    "group_runners_enabled": true,
    "forks_count": 0,
    "star_count": 0,
    "runners_token": "b8547b1dc37721d05889db52fa2f02",
    "public_jobs": true,
    "shared_with_groups": [],
    "only_allow_merge_if_pipeline_succeeds": false,
    "allow_merge_on_skipped_pipeline": false,
    "allow_pipeline_trigger_approve_deployment": false,
    "restrict_user_defined_variables": false,
    "only_allow_merge_if_all_discussions_are_resolved": false,
    "remove_source_branch_after_merge": false,
    "request_access_enabled": false,
    "merge_method": "merge",
    "squash_option": "default_on",
    "autoclose_referenced_issues": true,
    "enforce_auth_checks_on_uploads": true,
    "suggestion_commit_message": null,
    "merge_commit_template": null,
    "mr_default_title_template": null,
    "squash_commit_template": null,
    "secret_push_protection_enabled": false,
    "issue_branch_template": "gitlab/%{id}-%{title}",
    "statistics": {
      "commit_count": 37,
      "storage_size": 1038090,
      "repository_size": 1038090,
      "lfs_objects_size": 0,
      "job_artifacts_size": 0,
      "pipeline_artifacts_size": 0,
      "packages_size": 0,
      "snippets_size": 0,
      "uploads_size": 0,
      "container_registry_size": 0
    },
    "container_registry_image_prefix": "registry.example.com/diaspora/diaspora-client",
    "_links": {
      "self": "http://example.com/api/v4/projects",
      "issues": "http://example.com/api/v4/projects/1/issues",
      "merge_requests": "http://example.com/api/v4/projects/1/merge_requests",
      "repo_branches": "http://example.com/api/v4/projects/1/repository_branches",
      "labels": "http://example.com/api/v4/projects/1/labels",
      "events": "http://example.com/api/v4/projects/1/events",
      "members": "http://example.com/api/v4/projects/1/members",
      "cluster_agents": "http://example.com/api/v4/projects/1/cluster_agents"
    }
  },
  {
    "id": 6,
    "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
    "description_html": "<p data-sourcepos=\"1:1-1:56\" dir=\"auto\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>",
    "default_branch": "main",
    "visibility": "private",
    "ssh_url_to_repo": "[email protected]:brightbox/puppet.git",
    "http_url_to_repo": "http://example.com/brightbox/puppet.git",
    "web_url": "http://example.com/brightbox/puppet",
    "readme_url": "http://example.com/brightbox/puppet/blob/main/README.md",
    "tag_list": [ //deprecated, use `topics` instead
      "example",
      "puppet"
    ],
    "topics": [
      "example",
      "puppet"
    ],
    "owner": {
      "id": 4,
      "name": "Brightbox",
      "created_at": "2013-09-30T13:46:02Z"
    },
    "name": "Puppet",
    "name_with_namespace": "Brightbox / Puppet",
    "path": "puppet",
    "path_with_namespace": "brightbox/puppet",
    "issues_enabled": true,
    "open_issues_count": 1,
    "merge_requests_enabled": true,
    "jobs_enabled": true,
    "wiki_enabled": true,
    "snippets_enabled": false,
    "can_create_merge_request_in": true,
    "resolve_outdated_diff_discussions": false,
    "container_registry_enabled": false, // deprecated, use container_registry_access_level instead
    "container_registry_access_level": "disabled",
    "security_and_compliance_access_level": "disabled",
    "created_at": "2013-09-30T13:46:02Z",
    "updated_at": "2013-09-30T13:46:02Z",
    "last_activity_at": "2013-09-30T13:46:02Z",
    "creator_id": 3,
    "namespace": {
      "id": 4,
      "name": "Brightbox",
      "path": "brightbox",
      "kind": "group",
      "full_path": "brightbox"
    },
    "import_status": "none",
    "import_error": null,
    "permissions": {
      "project_access": {
        "access_level": 10,
        "notification_level": 3
      },
      "group_access": {
        "access_level": 50,
        "notification_level": 3
      }
    },
    "archived": false,
    "avatar_url": null,
    "shared_runners_enabled": true,
    "group_runners_enabled": true,
    "forks_count": 0,
    "star_count": 0,
    "runners_token": "b8547b1dc37721d05889db52fa2f02",
    "public_jobs": true,
    "shared_with_groups": [],
    "only_allow_merge_if_pipeline_succeeds": false,
    "allow_merge_on_skipped_pipeline": false,
    "allow_pipeline_trigger_approve_deployment": false,
    "restrict_user_defined_variables": false,
    "only_allow_merge_if_all_discussions_are_resolved": false,
    "remove_source_branch_after_merge": false,
    "request_access_enabled": false,
    "merge_method": "merge",
    "squash_option": "default_on",
    "auto_devops_enabled": true,
    "auto_devops_deploy_strategy": "continuous",
    "repository_storage": "default",
    "approvals_before_merge": 0, // Deprecated. Use merge request approvals API instead.
    "mirror": false,
    "mirror_user_id": 45,
    "mirror_trigger_builds": false,
    "only_mirror_protected_branches": false,
    "mirror_overwrites_diverged_branches": false,
    "external_authorization_classification_label": null,
    "packages_enabled": true, // deprecated, use package_registry_access_level instead
    "empty_repo": false,
    "package_registry_access_level": "enabled",
    "service_desk_enabled": false,
    "service_desk_address": null,
    "autoclose_referenced_issues": true,
    "enforce_auth_checks_on_uploads": true,
    "suggestion_commit_message": null,
    "merge_commit_template": null,
    "mr_default_title_template": null,
    "squash_commit_template": null,
    "secret_push_protection_enabled": false,
    "issue_branch_template": "gitlab/%{id}-%{title}",
    "statistics": {
      "commit_count": 12,
      "storage_size": 2066080,
      "repository_size": 2066080,
      "lfs_objects_size": 0,
      "job_artifacts_size": 0,
      "pipeline_artifacts_size": 0,
      "packages_size": 0,
      "snippets_size": 0,
      "uploads_size": 0,
      "container_registry_size": 0
    },
    "container_registry_image_prefix": "registry.example.com/brightbox/puppet",
    "_links": {
      "self": "http://example.com/api/v4/projects",
      "issues": "http://example.com/api/v4/projects/1/issues",
      "merge_requests": "http://example.com/api/v4/projects/1/merge_requests",
      "repo_branches": "http://example.com/api/v4/projects/1/repository_branches",
      "labels": "http://example.com/api/v4/projects/1/labels",
      "events": "http://example.com/api/v4/projects/1/events",
      "members": "http://example.com/api/v4/projects/1/members",
      "cluster_agents": "http://example.com/api/v4/projects/1/cluster_agents"
    }
  }
]

Attributs de liste {#list-attributes}

Lister les attributs d'un projet.

Lister tous les membres d'un projet {#list-all-members-of-a-project}

Liste tous les membres ayant accès à un projet spécifié.

plaintext
GET /projects/:id/users

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet.
searchstringNonRechercher un membre spécifique par son username ou son name.
skip_userstableau d'entiersNonExclure les membres avec les ID spécifiés.

En cas de succès, renvoie 200 OK et les attributs de réponse suivants :

AttributTypeDescription
idintegerID de l'utilisateur.
usernamestringNom d'utilisateur de l'utilisateur.
namestringNom complet de l'utilisateur.
statestringÉtat du compte utilisateur. Valeurs possibles : active ou blocked.
avatar_urlstringURL de l'image d'avatar de l'utilisateur.
web_urlstringURL pour accéder au profil de l'utilisateur dans un navigateur.

Exemple de requête :

shell
curl --header "PRIVATE-TOKEN: <your_access_token>" \
     --url "https://gitlab.com/api/v4/projects/<project_id>/users" \

Exemple de réponse :

json
[
  {
    "id": 1,
    "username": "john_smith",
    "name": "John Smith",
    "state": "active",
    "avatar_url": "http://localhost:3000/uploads/user/avatar/1/cd8.jpeg",
    "web_url": "http://localhost:3000/john_smith"
  },
  {
    "id": 2,
    "username": "jack_smith",
    "name": "Jack Smith",
    "state": "blocked",
    "avatar_url": "http://gravatar.com/../e32131cd8.jpeg",
    "web_url": "http://localhost:3000/jack_smith"
  }
]

Lister tous les groupes ancêtres {#list-all-ancestor-groups}

Liste tous les groupes ancêtres d'un projet spécifié.

plaintext
GET /projects/:id/groups

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet.
searchstringNonRechercher des groupes spécifiques par ID de groupe.
shared_min_access_levelintegerNonLimiter aux groupes partagés avec au moins le niveau d'accès spécifié. Valeurs possibles : 5 (Accès minimum), 10 (Guest), 15 (Planificateur), 20 (Reporter), 25 (Responsable sécurité), 30 (Developer), 40 (Maintainer) ou 50 (Owner).
shared_visible_onlybooleanNonSi true, retourne uniquement les groupes partagés auxquels l'utilisateur authentifié peut accéder.
skip_groupstableau d'entiersNonIgnorer les ID de groupe passés.
with_sharedbooleanNonInclure les projets partagés avec ce groupe. La valeur par défaut est false.

En cas de succès, renvoie 200 OK et les attributs de réponse suivants :

AttributTypeDescription
idintegerID du groupe.
namestringNom du groupe.
avatar_urlstringURL de l'image d'avatar du groupe.
web_urlstringURL pour accéder au groupe dans un navigateur.
full_namestringNom complet du groupe.
full_pathstringChemin complet du groupe.

Exemple de requête :

shell
curl --header "PRIVATE-TOKEN: <your_access_token>" \
     --url "https://gitlab.example.com/api/v4/projects/<project_id>/groups"

Exemple de réponse :

json
[
  {
    "id": 1,
    "name": "Foobar Group",
    "avatar_url": "http://localhost:3000/uploads/group/avatar/1/foo.jpg",
    "web_url": "http://localhost:3000/groups/foo-bar",
    "full_name": "Foobar Group",
    "full_path": "foo-bar"
  },
  {
    "id": 2,
    "name": "Shared Group",
    "avatar_url": "http://gitlab.example.com/uploads/group/avatar/1/bar.jpg",
    "web_url": "http://gitlab.example.com/groups/foo/bar",
    "full_name": "Shared Group",
    "full_path": "foo/shared"
  }
]

Lister tous les groupes disponibles à inviter dans un projet {#list-all-groups-available-to-invite-to-a-project}

Liste tous les groupes pouvant être invités dans un projet.

plaintext
GET /projects/:id/share_locations

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet.
searchstringNonRechercher des groupes spécifiques par ID de groupe.

En cas de succès, renvoie 200 OK et les attributs de réponse suivants :

AttributTypeDescription
idintegerID du groupe.
web_urlstringURL pour accéder au groupe dans un navigateur.
namestringNom du groupe.
avatar_urlstringURL de l'image d'avatar du groupe.
full_namestringNom complet du groupe.
full_pathstringChemin complet du groupe.

Exemple de requête :

shell
curl --header "PRIVATE-TOKEN: <your_access_token>" \
     --url "https://gitlab.example.com/api/v4/projects/<project_id>/share_locations"

Exemple de réponse :

json
[
  {
    "id": 22,
    "web_url": "http://127.0.0.1:3000/groups/gitlab-org",
    "name": "Gitlab Org",
    "avatar_url": null,
    "full_name": "Gitlab Org",
    "full_path": "gitlab-org"
  },
  {
    "id": 25,
    "web_url": "http://127.0.0.1:3000/groups/gnuwget",
    "name": "Gnuwget",
    "avatar_url": null,
    "full_name": "Gnuwget",
    "full_path": "gnuwget"
  }
]

Lister tous les groupes invités dans un projet {#list-all-invited-groups-in-a-project}

Liste tous les groupes invités dans un projet. Lorsqu'il est consulté sans authentification, retourne uniquement les groupes invités publics. Ce point de terminaison est soumis à une limite de débit de 60 requêtes par minute par :

  • Utilisateur pour les utilisateurs authentifiés
  • Adresse IP pour les utilisateurs non authentifiés

Cet endpoint prend en charge la pagination :

  • Utilisez la pagination par décalage pour accéder à jusqu'à 50 000 projets.
  • Utilisez la pagination par jeu de clés pour lister plus de 50 000 projets.

Pour plus d'informations, consultez Pagination.

plaintext
GET /projects/:id/invited_groups

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîne de caractèresouiL'ID ou le chemin encodé en URL du groupe.
searchstringnonRetourne la liste des groupes autorisés correspondant aux critères de recherche.
min_access_levelintegernonLimiter aux groupes où l'utilisateur actuel dispose d'au moins le niveau d'accès spécifié. Valeurs possibles : 5 (Accès minimum), 10 (Guest), 15 (Planificateur), 20 (Reporter), 25 (Responsable sécurité), 30 (Developer), 40 (Maintainer) ou 50 (Owner).
relationtableau de chaînes de caractèresnonFiltrer les groupes par relation. Valeurs possibles : direct ou inherited.
with_custom_attributesbooleannonSi true, retourne les attributs personnalisés dans la réponse. Nécessite un accès administrateur.

En cas de succès, renvoie 200 OK et les attributs de réponse suivants :

AttributTypeDescription
idintegerID du groupe.
web_urlstringURL pour accéder au groupe dans un navigateur.
namestringNom du groupe.
avatar_urlstringURL de l'image d'avatar du groupe.
full_namestringNom complet du groupe.
full_pathstringChemin complet du groupe.

Exemple de requête :

shell
curl --header "PRIVATE-TOKEN: <your_access_token>" \
     --url "https://gitlab.example.com/api/v4/projects/<project_id>/invited_groups"

Exemple de réponse :

json
[
  {
    "id": 35,
    "web_url": "https://gitlab.example.com/groups/twitter",
    "name": "Twitter",
    "avatar_url": null,
    "full_name": "Twitter",
    "full_path": "twitter"
  }
]

Récupérer les informations sur l'utilisation des langages de programmation {#retrieve-programming-language-usage-information}

Récupère des informations sur tous les langages de programmation utilisés dans un projet spécifié.

plaintext
GET /projects/:id/languages

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet.

En cas de succès, retourne 200 OK et une liste des langages de programmation avec leurs pourcentages d'utilisation.

Exemple de requête :

shell
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/languages"

Exemple de réponse :

json
{
  "Ruby": 66.69,
  "JavaScript": 22.98,
  "HTML": 7.91,
  "CoffeeScript": 2.42
}

Gérer les projets {#manage-projects}

Gérer un projet, notamment sa création, sa suppression et son archivage.

Créer un projet {#create-a-project}

{{< history >}}

  • operations_access_level supprimé dans GitLab 16.0.
  • model_registry_access_level introduit dans GitLab 16.7.
  • packages_enabled obsolète dans GitLab 17.10.
  • package_registry_access_level introduit dans GitLab 18.5.

{{< /history >}}

Crée un projet appartenant à l'utilisateur authentifié.

Si votre dépôt HTTP n'est pas accessible publiquement, ajoutez des informations d'authentification à l'URL https://username:[email protected]/group/project.git, où password est une clé d'accès publique avec la portée api activée.

plaintext
POST /projects

Attributs généraux du projet pris en charge :

AttributTypeObligatoireDescription
namestringOui (si path n'est pas fourni)Le nom du nouveau projet. Correspond au chemin si non fourni.
pathstringOui (si name n'est pas fourni)Nom du dépôt pour le nouveau projet. Généré à partir du nom si non fourni (généré en minuscules avec des tirets). Le chemin ne doit pas commencer ou se terminer par un caractère spécial et ne doit pas contenir de caractères spéciaux consécutifs.
allow_merge_on_skipped_pipelinebooleanNonDéfinir si les merge requests peuvent être fusionnées avec des jobs ignorés.
approvals_before_mergeintegerNonCombien d'approbateurs devraient approuver les merge requests par défaut. Pour configurer les règles d'approbation, consultez l'API d'approbation des merge requests. Déprécié dans GitLab 16.0. Premium et Ultimate uniquement.
auto_cancel_pending_pipelinesstringNonAnnuler automatiquement les pipelines en attente. Cette action bascule entre un état activé et un état désactivé ; ce n'est pas un booléen.
auto_devops_deploy_strategystringNonStratégie de déploiement automatique (continuous, manual ou timed_incremental).
auto_devops_enabledbooleanNonActiver Auto DevOps pour ce projet.
autoclose_referenced_issuesbooleanNonDéfinir si les tickets référencés sont automatiquement fermés sur la branche par défaut.
avatarmixteNonFichier image pour l'avatar du projet.
build_git_strategystringNonLa stratégie Git. La valeur par défaut est fetch.
build_timeoutintegerNonLe temps maximum, en secondes, qu'un job peut s'exécuter.
ci_config_pathstringNonLe chemin vers le fichier de configuration CI.
container_expiration_policy_attributeshashNonMettre à jour la politique de nettoyage des images pour ce projet. Accepte : cadence (chaîne), keep_n (entier), older_than (chaîne), name_regex (chaîne), name_regex_delete (chaîne), name_regex_keep (chaîne), enabled (booléen). Consultez la documentation du registre de conteneurs pour plus d'informations sur les valeurs cadence, keep_n et older_than.
container_registry_enabledbooleanNon(Obsolète) Activer le registre de conteneurs pour ce projet. Utilisez plutôt container_registry_access_level.
default_branchstringNonLe nom de la branche par défaut. Accepte un nom de branche (par exemple, main) ou une référence complète (par exemple, refs/heads/main). Si une référence complète est fournie, l'API supprime le préfixe refs/heads/. Requiert que initialize_with_readme soit true.
descriptionstringNonCourte description du projet.
emails_disabledbooleanNon(Obsolète) Désactiver les notifications par e-mail. Utilisez emails_enabled à la place
emails_enabledbooleanNonActiver les notifications par e-mail.
external_authorization_classification_labelstringNonLe label de classification pour le projet. Premium et Ultimate uniquement.
group_runners_enabledbooleanNonActiver les runners de groupe pour ce projet.
group_with_project_templates_idintegerNonPour les modèles personnalisés au niveau du groupe, spécifie l'ID du groupe à partir duquel tous les modèles de projets personnalisés sont issus. Laisser vide pour les modèles au niveau de l'instance. Requiert que use_custom_template soit vrai. Premium et Ultimate uniquement.
import_urlstringNonURL pour importer le dépôt. Lorsque la valeur de l'URL n'est pas vide, vous ne devez pas définir initialize_with_readme sur true. Cela pourrait entraîner l'erreur suivante : not a git repository.
initialize_with_readmebooleanNonIndique si un dépôt Git doit être créé avec uniquement un fichier README.md. La valeur par défaut est false. Lorsque ce booléen est vrai, vous ne devez pas passer import_url ni d'autres attributs de ce point de terminaison qui spécifient un contenu alternatif pour le dépôt. Cela pourrait entraîner l'erreur suivante : not a git repository.
issues_enabledbooleanNon(Obsolète) Activer les tickets pour ce projet. Utilisez plutôt issues_access_level.
jobs_enabledbooleanNon(Obsolète) Activer les jobs pour ce projet. Utilisez plutôt builds_access_level.
lfs_enabledbooleanNonActiver LFS.
merge_methodstringNonDéfinir la méthode de fusion du projet. Peut être merge (commit de fusion), rebase_merge (commit de fusion avec historique semi-linéaire) ou ff (fusion en avance rapide).
merge_pipelines_enabledbooleanNonActiver ou désactiver les pipelines de résultats fusionnés.
merge_requests_enabledbooleanNon(Obsolète) Activer les merge requests pour ce projet. Utilisez plutôt merge_requests_access_level.
merge_trains_enabledbooleanNonActiver ou désactiver les merge trains.
merge_trains_skip_train_allowedbooleanNonPermet aux merge requests du merge train d'être fusionnées sans attendre la fin des pipelines.
max_pipelines_per_merge_trainintegerNonNombre maximum de pipelines parallèles par merge train.
mirror_trigger_buildsbooleanNonLa mise en miroir en extraction déclenche des builds. Premium et Ultimate uniquement.
mirrorbooleanNonActive la mise en miroir en extraction dans un projet. Premium et Ultimate uniquement.
namespace_idintegerNonEspace de nommage pour le nouveau projet. Spécifiez un ID de groupe ou de sous-groupe. Si non fourni, utilise par défaut l'espace de nommage personnel de l'utilisateur actuel.
only_allow_merge_if_all_discussions_are_resolvedbooleanNonDéfinir si les merge requests ne peuvent être fusionnées que lorsque toutes les discussions sont résolues.
only_allow_merge_if_all_status_checks_passedbooleanNonIndique que les fusions de merge requests doivent être bloquées tant que toutes les vérifications de statut n'ont pas réussi. Par défaut : false. Introduit dans GitLab 15.5 avec le feature flag only_allow_merge_if_all_status_checks_passed désactivé par défaut. Ultimate uniquement.
only_allow_merge_if_pipeline_succeedsbooleanNonDéfinir si les merge requests ne peuvent être fusionnées qu'avec des pipelines réussis. Ce paramètre est nommé Les pipelines doivent réussir dans les paramètres du projet.
packages_enabledbooleanNonDéprécié dans GitLab 17.10. Activer ou désactiver la fonctionnalité de dépôt de paquets. Utilisez plutôt package_registry_access_level.
package_registry_access_levelstringNonActiver ou désactiver la fonctionnalité de dépôt de paquets.
printing_merge_request_link_enabledbooleanNonAfficher le lien pour créer/voir une merge request lors d'un push depuis la ligne de commande.
public_buildsbooleanNon(Obsolète) Si true, les jobs peuvent être consultés par des non-membres du projet. Utilisez plutôt public_jobs.
public_jobsbooleanNonSi true, les jobs peuvent être consultés par des non-membres du projet.
repository_object_formatstringNonFormat d'objet du dépôt. La valeur par défaut est sha1. Introduite dans GitLab 16.9.
remove_source_branch_after_mergebooleanNonActiver l'option Delete source branch par défaut pour toutes les nouvelles merge requests.
repository_storagestringNonSur quelle partition de stockage se trouve le dépôt. (administrateur uniquement)
request_access_enabledbooleanNonPermettre aux utilisateurs de demander l'accès en tant que membre.
resolve_outdated_diff_discussionsbooleanNonRésoudre automatiquement les discussions des diffs de merge request sur les lignes modifiées lors d'un push.
shared_runners_enabledbooleanNonActiver les runners d'instance pour ce projet.
show_default_award_emojisbooleanNonAfficher les réactions emoji par défaut.
snippets_enabledbooleanNon(Obsolète) Activer les extraits de code pour ce projet. Utilisez plutôt snippets_access_level.
squash_optionstringNonL'une des valeurs suivantes : never, always, default_on ou default_off.
tag_listarrayNonLa liste des tags d'un projet ; indiquez un tableau de tags qui doivent être finalement attribués au projet. Obsolète dans GitLab 14.0. Utilisez plutôt topics.
template_namestringNonLorsqu'utilisé sans use_custom_template, nom d'un modèle de projet intégré. Lorsqu'utilisé avec use_custom_template, nom d'un modèle de projet personnalisé.
template_project_idintegerNonLorsqu'utilisé avec use_custom_template, ID de projet d'un modèle de projet personnalisé. L'utilisation d'un ID de projet est préférable à l'utilisation de template_name car template_name peut être ambigu. Premium et Ultimate uniquement.
topicsarrayNonLa liste des sujets d'un projet ; indiquez un tableau de sujets qui doivent être finalement attribués au projet.
use_custom_templatebooleanNonUtiliser un modèle de projet personnalisé d'instance ou de groupe (avec group_with_project_templates_id). Premium et Ultimate uniquement.
visibilitystringNonVoir le niveau de visibilité du projet.
warn_about_potentially_unwanted_charactersbooleanNonActiver les avertissements concernant l'utilisation de caractères potentiellement indésirables dans ce projet.
wiki_enabledbooleanNon(Obsolète) Activer le wiki pour ce projet. Utilisez plutôt wiki_access_level.

Exemple de requête :

shell
curl --request POST --header "PRIVATE-TOKEN: <your-token>" \
     --header "Content-Type: application/json" --data '{
        "name": "new_project", "description": "New Project", "path": "new_project",
        "namespace_id": "42", "initialize_with_readme": "true"}' \
     --url "https://gitlab.example.com/api/v4/projects/"

Pour définir le niveau de visibilité des fonctionnalités individuelles du projet, consultez Niveau de visibilité des fonctionnalités du projet.

Créer un projet pour un utilisateur {#create-a-project-for-a-user}

{{< history >}}

  • operations_access_level supprimé dans GitLab 16.0.
  • model_registry_access_level introduit dans GitLab 16.7.
  • packages_enabled obsolète dans GitLab 17.10.
  • package_registry_access_level introduit dans GitLab 18.5.
  • mr_default_title_template introduit dans GitLab 18.11 avec un feature flag nommé mr_default_title_template. Désactivé par défaut.
  • Le feature flag mr_default_title_template a été supprimé dans GitLab 19.0.

{{< /history >}}

Crée un projet pour un utilisateur.

Prérequis :

  • Vous devez être un administrateur.

Si votre dépôt HTTP n'est pas accessible publiquement, ajoutez des informations d'authentification à l'URL. Par exemple, https://username:[email protected]/group/project.gitpassword est une clé d'accès public avec la portée api activée.

plaintext
POST /projects/user/:user_id

Attributs généraux du projet pris en charge :

AttributTypeObligatoireDescription
namestringOuiLe nom du nouveau projet.
user_idintegerOuiL'ID utilisateur du propriétaire du projet.
allow_merge_on_skipped_pipelinebooleanNonDéfinir si les merge requests peuvent être fusionnées avec des jobs ignorés.
approvals_before_mergeintegerNonCombien d'approbateurs devraient approuver les merge requests par défaut. Déprécié dans GitLab 16.0. Pour configurer les règles d'approbation, consultez l'API d'approbation des merge requests. Premium et Ultimate uniquement.
auto_cancel_pending_pipelinesstringNonAnnuler automatiquement les pipelines en attente. Cette action bascule entre un état activé et un état désactivé ; ce n'est pas un booléen.
auto_devops_deploy_strategystringNonStratégie de déploiement automatique (continuous, manual ou timed_incremental).
auto_devops_enabledbooleanNonActiver Auto DevOps pour ce projet.
autoclose_referenced_issuesbooleanNonDéfinir si les tickets référencés sont automatiquement fermés sur la branche par défaut.
avatarmixteNonFichier image pour l'avatar du projet.
build_git_strategystringNonLa stratégie Git. La valeur par défaut est fetch.
build_timeoutintegerNonLe temps maximum, en secondes, qu'un job peut s'exécuter.
ci_config_pathstringNonLe chemin vers le fichier de configuration CI.
container_registry_enabledbooleanNon(Obsolète) Activer le registre de conteneurs pour ce projet. Utilisez plutôt container_registry_access_level.
default_branchstringNonLe nom de la branche par défaut. Requiert que initialize_with_readme soit true.
descriptionstringNonCourte description du projet.
emails_disabledbooleanNon(Obsolète) Désactiver les notifications par e-mail. Utilisez emails_enabled à la place
emails_enabledbooleanNonActiver les notifications par e-mail.
enforce_auth_checks_on_uploadsbooleanNonAppliquer les vérifications d'authentification sur les téléversements.
external_authorization_classification_labelstringNonLe label de classification pour le projet. Premium et Ultimate uniquement.
group_runners_enabledbooleanNonActiver les runners de groupe pour ce projet.
group_with_project_templates_idintegerNonPour les modèles personnalisés au niveau du groupe, spécifie l'ID du groupe à partir duquel tous les modèles de projets personnalisés sont issus. Laisser vide pour les modèles au niveau de l'instance. Requiert que use_custom_template soit vrai. Premium et Ultimate uniquement.
import_urlstringNonURL pour importer le dépôt.
initialize_with_readmebooleanNonfalse par défaut.
issue_branch_templatestringNonModèle utilisé pour suggérer des noms pour les branches créées à partir de tickets. (Introduit dans GitLab 15.6.)
issues_enabledbooleanNon(Obsolète) Activer les tickets pour ce projet. Utilisez plutôt issues_access_level.
jobs_enabledbooleanNon(Obsolète) Activer les jobs pour ce projet. Utilisez plutôt builds_access_level.
lfs_enabledbooleanNonActiver LFS.
merge_commit_templatestringNonModèle utilisé pour créer le message de commit de fusion dans les merge requests.
merge_methodstringNonDéfinir la méthode de fusion du projet. Peut être merge (commit de fusion), rebase_merge (commit de fusion avec historique semi-linéaire) ou ff (fusion en avance rapide).
merge_requests_enabledbooleanNon(Obsolète) Activer les merge requests pour ce projet. Utilisez plutôt merge_requests_access_level.
mr_default_title_templatestringNonModèle utilisé pour définir le titre par défaut des merge requests.
mirror_trigger_buildsbooleanNonLa mise en miroir en extraction déclenche des builds. Premium et Ultimate uniquement.
mirrorbooleanNonActive la mise en miroir en extraction dans un projet. Premium et Ultimate uniquement.
namespace_idintegerNonEspace de nommage pour le nouveau projet (par défaut, l'espace de nommage de l'utilisateur actuel).
only_allow_merge_if_all_discussions_are_resolvedbooleanNonDéfinir si les merge requests ne peuvent être fusionnées que lorsque toutes les discussions sont résolues.
only_allow_merge_if_all_status_checks_passedbooleanNonIndique que les fusions de merge requests doivent être bloquées tant que toutes les vérifications de statut n'ont pas réussi. Par défaut : false. Introduit dans GitLab 15.5 avec le feature flag only_allow_merge_if_all_status_checks_passed désactivé par défaut. Ultimate uniquement.
only_allow_merge_if_pipeline_succeedsbooleanNonDéfinir si les merge requests ne peuvent être fusionnées qu'avec des jobs réussis.
packages_enabledbooleanNonDéprécié dans GitLab 17.10. Activer ou désactiver la fonctionnalité de dépôt de paquets. Utilisez plutôt package_registry_access_level.
package_registry_access_levelstringNonActiver ou désactiver la fonctionnalité de dépôt de paquets.
pathstringNonNom de dépôt personnalisé pour le nouveau projet. Par défaut, généré à partir du nom.
printing_merge_request_link_enabledbooleanNonAfficher le lien pour créer/voir une merge request lors d'un push depuis la ligne de commande.
public_buildsbooleanNon(Obsolète) Si true, les jobs peuvent être consultés par des non-membres du projet. Utilisez plutôt public_jobs.
public_jobsbooleanNonSi true, les jobs peuvent être consultés par des non-membres du projet.
repository_object_formatstringNonFormat d'objet du dépôt. La valeur par défaut est sha1. Introduite dans GitLab 16.9.
remove_source_branch_after_mergebooleanNonActiver l'option Delete source branch par défaut pour toutes les nouvelles merge requests.
repository_storagestringNonSur quel segment de stockage se trouve le dépôt. (administrateurs uniquement)
request_access_enabledbooleanNonPermettre aux utilisateurs de demander l'accès en tant que membre.
resolve_outdated_diff_discussionsbooleanNonRésoudre automatiquement les discussions des diffs de merge request sur les lignes modifiées lors d'un push.
shared_runners_enabledbooleanNonActiver les runners d'instance pour ce projet.
show_default_award_emojisbooleanNonAfficher les réactions emoji par défaut.
snippets_enabledbooleanNon(Obsolète) Activer les extraits de code pour ce projet. Utilisez plutôt snippets_access_level.
squash_commit_templatestringNonModèle utilisé pour créer le message de commit squash dans les merge requests.
squash_optionstringNonL'une des valeurs suivantes : never, always, default_on ou default_off.
suggestion_commit_messagestringNonLe message de commit utilisé pour appliquer les suggestions de merge requests.
tag_listarrayNon(Déprécié dans GitLab 14.0) La liste des tags d'un projet ; saisissez le tableau des tags qui doivent être finalement assignés au projet. Utilisez plutôt topics.
template_namestringNonLorsqu'utilisé sans use_custom_template, nom d'un modèle de projet intégré. Lorsqu'utilisé avec use_custom_template, nom d'un modèle de projet personnalisé.
topicsarrayNonLa liste des sujets du projet.
use_custom_templatebooleanNonUtiliser un modèle de projet personnalisé d'instance ou de groupe (avec group_with_project_templates_id). Premium et Ultimate uniquement.
visibilitystringNonVoir le niveau de visibilité du projet.
warn_about_potentially_unwanted_charactersbooleanNonActiver les avertissements concernant l'utilisation de caractères potentiellement indésirables dans ce projet.
wiki_enabledbooleanNon(Obsolète) Activer le wiki pour ce projet. Utilisez plutôt wiki_access_level.

Pour définir le niveau de visibilité des fonctionnalités individuelles du projet, consultez Niveau de visibilité des fonctionnalités du projet.

Mettre à jour un projet {#update-a-project}

{{< history >}}

  • operations_access_level supprimé dans GitLab 16.0.
  • model_registry_access_level introduit dans GitLab 16.7.
  • packages_enabled obsol��te dans GitLab 17.10.
  • package_registry_access_level introduit dans GitLab 18.5.
  • protect_merge_request_pipelines et ci_display_pipeline_variables introduits dans GitLab 18.10.
  • mr_default_title_template introduit dans GitLab 18.11 avec un feature flag nommé mr_default_title_template. Désactivé par défaut.
  • Le feature flag mr_default_title_template a été supprimé dans GitLab 19.0.

{{< /history >}}

Met à jour un projet existant.

Si votre dépôt HTTP n'est pas accessible publiquement, ajoutez des informations d'authentification à l'URL https://username:[email protected]/group/project.git, où password est une clé d'accès publique avec la portée api activée.

plaintext
PUT /projects/:id

Attributs généraux du projet pris en charge :

AttributTypeObligatoireDescription
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet.
allow_merge_on_skipped_pipelinebooleanNonDéfinir si les merge requests peuvent être fusionnées avec des jobs ignorés.
allow_pipeline_trigger_approve_deploymentbooleanNonDéfinir si le déclencheur d'un pipeline est autorisé ou non à approuver des déploiements. Premium et Ultimate uniquement.
only_allow_merge_if_all_status_checks_passedbooleanNonIndique que les fusions de merge requests doivent être bloquées tant que toutes les vérifications de statut n'ont pas réussi. Par défaut : false.

Introduit dans GitLab 15.5 avec le feature flag only_allow_merge_if_all_status_checks_passed désactivé par défaut. Le feature flag a été activé par défaut dans GitLab 15.9. Ultimate uniquement. | | approvals_before_merge | integer | Non | Combien d'approbateurs devraient approuver les merge requests par défaut. Déprécié dans GitLab 16.0. Pour configurer les règles d'approbation, consultez l'API d'approbation des merge requests. Premium et Ultimate uniquement. | | auto_cancel_pending_pipelines | string | Non | Annuler automatiquement les pipelines en attente. Cette action bascule entre un état activé et un état désactivé ; ce n'est pas un booléen. | | auto_devops_deploy_strategy | string | Non | Stratégie de déploiement automatique (continuous, manual, ou timed_incremental). | | auto_devops_enabled | boolean | Non | Activer Auto DevOps pour ce projet. | | auto_duo_code_review_enabled | boolean | Non | Activer les revues automatiques par GitLab Duo sur les merge requests. Voir GitLab Duo dans les merge requests. Ultimate uniquement. | | autoclose_referenced_issues | boolean | Non | Définir si les tickets référencés sont automatiquement fermés sur la branche par défaut. | | avatar | mixte | Non | Fichier image pour l'avatar du projet. | | build_git_strategy | string | Non | La stratégie Git. La valeur par défaut est fetch. | | build_timeout | integer | Non | Le temps maximum, en secondes, qu'un job peut s'exécuter. | | ci_config_path | string | Non | Le chemin vers le fichier de configuration CI. | | ci_default_git_depth | integer | Non | Nombre de révisions par défaut pour le clonage superficiel. | | ci_delete_pipelines_in_seconds | integer | Non | Les pipelines plus anciens que la durée configurée sont supprimés. | | ci_display_pipeline_variables | boolean | Non | Afficher toutes les variables définies manuellement dans la page de détails du pipeline après l'exécution manuelle d'un pipeline. | | ci_forward_deployment_enabled | boolean | Non | Activer ou désactiver la fonctionnalité Empêcher les jobs de déploiement obsolètes. | | ci_forward_deployment_rollback_allowed | boolean | Non | Activer ou désactiver la fonctionnalité Autoriser les reprises de jobs pour les déploiements en rollback. | | ci_allow_fork_pipelines_to_run_in_parent_project | boolean | Non | Activer ou désactiver l'exécution des pipelines dans le projet parent pour les merge requests issues de duplications. (Introduit dans GitLab 15.3.) | | ci_id_token_sub_claim_components | array | Non | Champs inclus dans le claim sub du jeton d'identité. Accepte un tableau commençant par project_path. Le tableau peut également inclure ref_type, ref, ref_protected, environment_protected, et deployment_tier. La valeur par défaut est ["project_path", "ref_type", "ref"]. Introduit dans GitLab 17.10. Prise en charge de environment_protected et deployment_tier introduite dans GitLab 18.7. | | ci_separated_caches | boolean | Non | Définir si les caches doivent ou non être séparés selon le statut de protection de la branche. | | ci_restrict_pipeline_cancellation_role | string | Non | Définir le rôle requis pour annuler un pipeline ou un job. L'une des valeurs suivantes : developer, maintainer, ou no_one. Introduit dans GitLab 16.8. Premium et Ultimate uniquement. | | ci_pipeline_variables_minimum_override_role | string | Non | Vous pouvez spécifier quel rôle peut remplacer les variables. L'une des valeurs suivantes : owner, maintainer, developer ou no_one_allowed. Introduit dans GitLab 17.1. Dans GitLab 17.1 à 17.7, restrict_user_defined_variables doit être activé. | | ci_push_repository_for_job_token_allowed | boolean | Non | Activer ou désactiver la possibilité de pousser vers le dépôt du projet en utilisant un jeton de job. Introduit dans GitLab 17.2. | | container_expiration_policy_attributes | hash | Non | Mettre à jour la politique de nettoyage des images pour ce projet. Accepte : cadence (chaîne), keep_n (entier), older_than (chaîne), name_regex (chaîne), name_regex_delete (chaîne), name_regex_keep (chaîne), enabled (booléen). | | container_registry_enabled | boolean | Non | (Obsolète) Activer le registre de conteneurs pour ce projet. Utilisez plutôt container_registry_access_level. | | default_branch | string | Non | Le nom de la branche par défaut. | | description | string | Non | Courte description du projet. | | duo_remote_flows_enabled | boolean | Non | Déterminer si les flows peuvent s'exécuter dans votre projet. | | duo_sast_fp_detection_enabled | boolean | Non | Activer ou désactiver la détection des faux positifs SAST. Voir activer la détection des faux positifs SAST. | | duo_sast_vr_workflow_enabled | boolean | Non | Activer ou désactiver le workflow de résolution des SAST vulnérabilités. Voir activer le workflow de résolution des vulnérabilités SAST. | | emails_disabled | boolean | Non | (Obsolète) Désactiver les notifications par e-mail. Utilisez emails_enabled à la place | | emails_enabled | boolean | Non | Activer les notifications par e-mail. | | enforce_auth_checks_on_uploads | boolean | Non | Appliquer les vérifications d'authentification sur les téléversements. | | external_authorization_classification_label | string | Non | Le label de classification pour le projet. Premium et Ultimate uniquement. | | group_runners_enabled | boolean | Non | Activer les runners de groupe pour ce projet. | | import_url | string | Non | URL depuis laquelle le dépôt a été importé. | | issues_enabled | boolean | Non | (Obsolète) Activer les tickets pour ce projet. Utilisez plutôt issues_access_level. | | issues_template | string | Non | Description par défaut pour les nouveaux tickets. Formaté en GitLab Flavored Markdown. Premium et Ultimate uniquement. | | merge_requests_template | string | Non | Description par défaut pour les nouvelles merge requests. Formaté en GitLab Flavored Markdown. Premium et Ultimate uniquement. | | jobs_enabled | boolean | Non | (Obsolète) Activer les jobs pour ce projet. Utilisez plutôt builds_access_level. | | keep_latest_artifact | boolean | Non | Désactiver ou activer la possibilité de conserver le dernier artefact de job pour ce projet. | | lfs_enabled | boolean | Non | Activer LFS. | | max_artifacts_size | integer | Non | La taille maximale de fichier en mégaoctets pour les artefacts de job individuels. | | merge_commit_template | string | Non | Modèle utilisé pour créer le message de commit de fusion dans les merge requests. | | merge_method | string | Non | Définir la méthode de fusion du projet. Peut être merge (commit de fusion), rebase_merge (commit de fusion avec historique semi-linéaire) ou ff (fusion en avance rapide). | | merge_pipelines_enabled | boolean | Non | Activer ou désactiver les pipelines de résultats fusionnés. | | merge_requests_enabled | boolean | Non | (Obsolète) Activer les merge requests pour ce projet. Utilisez plutôt merge_requests_access_level. | | mr_default_title_template | string | Non | Modèle utilisé pour définir le titre par défaut des merge requests. | | merge_trains_enabled | boolean | Non | Activer ou désactiver les merge trains. | | merge_trains_skip_train_allowed | boolean | Non | Permet aux merge requests du merge train d'être fusionnées sans attendre la fin des pipelines. | | max_pipelines_per_merge_train | integer | Non | Nombre maximum de pipelines parallèles par merge train. | | mirror_overwrites_diverged_branches | boolean | Non | La mise en miroir en mode pull écrase les branches divergentes. Premium et Ultimate uniquement. | | mirror_trigger_builds | boolean | Non | La mise en miroir en extraction déclenche des builds. Premium et Ultimate uniquement. | | mirror_user_id | integer | Non | Utilisateur responsable de toute l'activité liée à un événement de mise en miroir en mode pull. (administrateurs uniquement) Premium et Ultimate uniquement. | | mirror | boolean | Non | Active la mise en miroir en extraction dans un projet. Premium et Ultimate uniquement. | | mr_default_target_self | boolean | Non | Pour les projets dupliqués, cibler les merge requests vers ce projet. Si false, la cible est le projet amont. | | name | string | Non | Le nom du projet. | | only_allow_merge_if_all_discussions_are_resolved | boolean | Non | Définir si les merge requests ne peuvent être fusionnées que lorsque toutes les discussions sont résolues. | | only_allow_merge_if_pipeline_succeeds | boolean | Non | Définir si les merge requests ne peuvent être fusionnées qu'avec des jobs réussis. | | only_mirror_protected_branches | boolean | Non | Ne mettre en miroir que les branches protégées. Premium et Ultimate uniquement. | | packages_enabled | boolean | Non | Déprécié dans GitLab 17.10. Activer ou désactiver la fonctionnalité de dépôt de paquets. Utilisez plutôt package_registry_access_level. | | package_registry_access_level | string | Non | Activer ou désactiver la fonctionnalité de dépôt de paquets. | | path | string | Non | Nom de dépôt personnalisé pour le projet. Par défaut, généré à partir du nom. | | prevent_merge_without_jira_issue | boolean | Non | Définir si les merge requests nécessitent un ticket associé dans Jira. Ultimate uniquement. | | printing_merge_request_link_enabled | boolean | Non | Afficher le lien pour créer/voir une merge request lors d'un push depuis la ligne de commande. | | protect_merge_request_pipelines | boolean | Non | Activer ou désactiver le contrôle d'accès aux variables protégées et aux runners. | | public_builds | boolean | Non | (Obsolète) Si true, les jobs peuvent être consultés par des non-membres du projet. Utilisez plutôt public_jobs. | | public_jobs | boolean | Non | Si true, les jobs peuvent être consultés par des non-membres du projet. | | remove_source_branch_after_merge | boolean | Non | Activer l'option Delete source branch par défaut pour toutes les nouvelles merge requests. | | repository_storage | string | Non | Sur quel segment de stockage se trouve le dépôt. (administrateurs uniquement) | | request_access_enabled | boolean | Non | Permettre aux utilisateurs de demander l'accès en tant que membre. | | resolve_outdated_diff_discussions | boolean | Non | Résoudre automatiquement les discussions des diffs de merge request sur les lignes modifiées lors d'un push. | | restrict_user_defined_variables | boolean | Non | (Déprécié dans GitLab 17.7 en faveur de ci_pipeline_variables_minimum_override_role) N'autoriser que les utilisateurs ayant le rôle Maintainer à transmettre des variables définies par l'utilisateur lors du déclenchement d'un pipeline. Par exemple, lorsque le pipeline est déclenché depuis l'interface utilisateur, via l'API ou par un token de déclencheur. | | service_desk_enabled | boolean | Non | Activer ou désactiver la fonctionnalité Service Desk. | | shared_runners_enabled | boolean | Non | Activer les runners d'instance pour ce projet. | | show_default_award_emojis | boolean | Non | Afficher les réactions emoji par défaut. | | snippets_enabled | boolean | Non | (Obsolète) Activer les extraits de code pour ce projet. Utilisez plutôt snippets_access_level. | | issue_branch_template | string | Non | Modèle utilisé pour suggérer des noms pour les branches créées à partir de tickets. (Introduit dans GitLab 15.6.) | | spp_repository_pipeline_access | boolean | Non | Autoriser les utilisateurs et les jetons à accéder en lecture seule aux configurations de politiques de sécurité depuis ce projet. Requis pour appliquer les politiques de sécurité dans les projets qui utilisent ce projet comme source de politique de sécurité. Ultimate uniquement. | | squash_commit_template | string | Non | Modèle utilisé pour créer le message de commit squash dans les merge requests. | | squash_option | string | Non | L'une des valeurs suivantes : never, always, default_on ou default_off. | | suggestion_commit_message | string | Non | Le message de commit utilisé pour appliquer les suggestions de merge requests. | | tag_list | array | Non | (Déprécié dans GitLab 14.0) La liste des tags d'un projet ; saisissez le tableau des tags qui doivent être finalement assignés au projet. Utilisez plutôt topics. | | topics | array | Non | La liste des sujets du projet. Cela remplace tous les sujets existants déjà ajoutés au projet. | | visibility | string | Non | Voir le niveau de visibilité du projet. | | warn_about_potentially_unwanted_characters | boolean | Non | Activer les avertissements concernant l'utilisation de caractères potentiellement indésirables dans ce projet. | | wiki_enabled | boolean | Non | (Obsolète) Activer le wiki pour ce projet. Utilisez plutôt wiki_access_level. | | web_based_commit_signing_enabled | boolean | Non | Active la signature des commits via le web pour les commits créés depuis l'interface GitLab. Disponible uniquement sur GitLab.com. |

Par exemple, pour basculer le paramètre pour les runners d'instance sur un projet GitLab.com :

shell
curl --request PUT --header "PRIVATE-TOKEN: <your-token>" \
     --url "https://gitlab.com/api/v4/projects/<your-project-ID>" \
     --data "shared_runners_enabled=true" # to turn off: "shared_runners_enabled=false"

Pour définir le niveau de visibilité des fonctionnalités individuelles du projet, consultez Niveau de visibilité des fonctionnalités du projet.

Importer des membres {#import-members}

Importe des membres depuis un autre projet.

Si le rôle du membre importateur pour le projet cible est :

  • Maintainer, alors les membres ayant le rôle Owner dans le projet source sont importés avec le rôle Maintainer.
  • Owner, alors les membres ayant le rôle Owner dans le projet source sont importés avec le rôle Owner.
plaintext
POST /projects/:id/import_project_members/:project_id

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet cible qui doit recevoir les membres.
project_identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet source depuis lequel importer les membres.

Exemple de requête :

shell
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/import_project_members/32"

Retourne :

  • 200 OK en cas de succès.
  • 404 Project Not Found si le projet cible ou source n'existe pas ou ne peut pas être consulté par le demandeur.
  • 422 Unprocessable Entity si l'importation des membres du projet ne s'est pas terminée avec succès.

Exemples de réponses :

  • Lorsque tous les e-mails ont été envoyés avec succès (code de statut HTTP 200) :

    json
    {  "status":  "success"  }
    
  • Lorsqu'une erreur s'est produite lors de l'importation d'un ou plusieurs membres (code de statut HTTP 200) :

    json
    {
      "status": "error",
      "message": {
                   "john_smith": "Some individual error message",
                   "jane_smith": "Some individual error message"
                 },
      "total_members_count": 3
    }
    
  • Lorsqu'une erreur système survient (codes de statut HTTP 404 et 422) :

json
{  "message":  "Import failed"  }

Archiver un projet {#archive-a-project}

{{< history >}}

  • mr_default_title_template introduit dans GitLab 18.11 avec un feature flag nommé mr_default_title_template. Désactivé par défaut.
  • Le feature flag mr_default_title_template a été supprimé dans GitLab 19.0.

{{< /history >}}

Archive le projet spécifié.

Prérequis :

  • Vous devez être administrateur ou avoir le rôle Owner sur le projet.

Ce point de terminaison est idempotent. Archiver un projet déjà archivé ne modifie pas le projet.

plaintext
POST /projects/:id/archive

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet.

Exemple de requête :

shell
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/archive"

Exemple de réponse :

json
{
  "id": 3,
  "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
  "description_html": "<p data-sourcepos=\"1:1-1:56\" dir=\"auto\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>",
  "default_branch": "main",
  "visibility": "private",
  "ssh_url_to_repo": "[email protected]:diaspora/diaspora-project-site.git",
  "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
  "web_url": "http://example.com/diaspora/diaspora-project-site",
  "readme_url": "http://example.com/diaspora/diaspora-project-site/blob/main/README.md",
  "tag_list": [ //deprecated, use `topics` instead
    "example",
    "disapora project"
  ],
  "topics": [
    "example",
    "disapora project"
  ],
  "owner": {
    "id": 3,
    "name": "Diaspora",
    "created_at": "2013-09-30T13:46:02Z"
  },
  "name": "Diaspora Project Site",
  "name_with_namespace": "Diaspora / Diaspora Project Site",
  "path": "diaspora-project-site",
  "path_with_namespace": "diaspora/diaspora-project-site",
  "repository_object_format": "sha1",
  "issues_enabled": true,
  "open_issues_count": 1,
  "merge_requests_enabled": true,
  "jobs_enabled": true,
  "wiki_enabled": true,
  "snippets_enabled": false,
  "can_create_merge_request_in": true,
  "resolve_outdated_diff_discussions": false,
  "container_registry_enabled": false, // deprecated, use container_registry_access_level instead
  "container_registry_access_level": "disabled",
  "security_and_compliance_access_level": "disabled",
  "created_at": "2013-09-30T13:46:02Z",
  "updated_at": "2013-09-30T13:46:02Z",
  "last_activity_at": "2013-09-30T13:46:02Z",
  "creator_id": 3,
  "namespace": {
    "id": 3,
    "name": "Diaspora",
    "path": "diaspora",
    "kind": "group",
    "full_path": "diaspora"
  },
  "import_status": "none",
  "import_error": null,
  "permissions": {
    "project_access": {
      "access_level": 10,
      "notification_level": 3
    },
    "group_access": {
      "access_level": 50,
      "notification_level": 3
    }
  },
  "archived": true,
  "avatar_url": "http://example.com/uploads/project/avatar/3/uploads/avatar.png",
  "license_url": "http://example.com/diaspora/diaspora-client/blob/main/LICENSE",
  "license": {
    "key": "lgpl-3.0",
    "name": "GNU Lesser General Public License v3.0",
    "nickname": "GNU LGPLv3",
    "html_url": "http://choosealicense.com/licenses/lgpl-3.0/",
    "source_url": "http://www.gnu.org/licenses/lgpl-3.0.txt"
  },
  "shared_runners_enabled": true,
  "group_runners_enabled": true,
  "forks_count": 0,
  "star_count": 0,
  "runners_token": "b8bc4a7a29eb76ea83cf79e4908c2b",
  "ci_default_git_depth": 50,
  "ci_forward_deployment_enabled": true,
  "ci_forward_deployment_rollback_allowed": true,
  "ci_allow_fork_pipelines_to_run_in_parent_project": true,
  "ci_id_token_sub_claim_components": ["project_path", "ref_type", "ref"],
  "ci_separated_caches": true,
  "ci_restrict_pipeline_cancellation_role": "developer",
  "ci_pipeline_variables_minimum_override_role": "maintainer",
  "ci_push_repository_for_job_token_allowed": false,
  "ci_display_pipeline_variables": false,
  "protect_merge_request_pipelines": true,
  "public_jobs": true,
  "shared_with_groups": [],
  "only_allow_merge_if_pipeline_succeeds": false,
  "allow_merge_on_skipped_pipeline": false,
  "allow_pipeline_trigger_approve_deployment": false,
  "restrict_user_defined_variables": false,
  "only_allow_merge_if_all_discussions_are_resolved": false,
  "remove_source_branch_after_merge": false,
  "request_access_enabled": false,
  "merge_method": "merge",
  "squash_option": "default_on",
  "autoclose_referenced_issues": true,
  "enforce_auth_checks_on_uploads": true,
  "suggestion_commit_message": null,
  "merge_commit_template": null,
  "mr_default_title_template": null,
  "secret_push_protection_enabled": false,
  "container_registry_image_prefix": "registry.example.com/diaspora/diaspora-project-site",
  "_links": {
    "self": "http://example.com/api/v4/projects",
    "issues": "http://example.com/api/v4/projects/1/issues",
    "merge_requests": "http://example.com/api/v4/projects/1/merge_requests",
    "repo_branches": "http://example.com/api/v4/projects/1/repository_branches",
    "labels": "http://example.com/api/v4/projects/1/labels",
    "events": "http://example.com/api/v4/projects/1/events",
    "members": "http://example.com/api/v4/projects/1/members",
    "cluster_agents": "http://example.com/api/v4/projects/1/cluster_agents"
  }
}

Désarchiver un projet {#unarchive-a-project}

{{< history >}}

  • mr_default_title_template introduit dans GitLab 18.11 avec un feature flag nommé mr_default_title_template. Désactivé par défaut.
  • Le feature flag mr_default_title_template a été supprimé dans GitLab 19.0.

{{< /history >}}

Désarchive le projet spécifié.

Prérequis :

  • Vous devez être administrateur ou avoir le rôle Owner sur le projet.

Ce point de terminaison est idempotent. Désarchiver un projet qui n'est pas archivé ne modifie pas le projet.

plaintext
POST /projects/:id/unarchive

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet.

Exemple de requête :

shell
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/unarchive"

Exemple de réponse :

json
{
  "id": 3,
  "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
  "description_html": "<p data-sourcepos=\"1:1-1:56\" dir=\"auto\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>",
  "default_branch": "main",
  "visibility": "private",
  "ssh_url_to_repo": "[email protected]:diaspora/diaspora-project-site.git",
  "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
  "web_url": "http://example.com/diaspora/diaspora-project-site",
  "readme_url": "http://example.com/diaspora/diaspora-project-site/blob/main/README.md",
  "tag_list": [ //deprecated, use `topics` instead
    "example",
    "disapora project"
  ],
  "topics": [
    "example",
    "disapora project"
  ],
  "owner": {
    "id": 3,
    "name": "Diaspora",
    "created_at": "2013-09-30T13:46:02Z"
  },
  "name": "Diaspora Project Site",
  "name_with_namespace": "Diaspora / Diaspora Project Site",
  "path": "diaspora-project-site",
  "path_with_namespace": "diaspora/diaspora-project-site",
  "repository_object_format": "sha1",
  "issues_enabled": true,
  "open_issues_count": 1,
  "merge_requests_enabled": true,
  "jobs_enabled": true,
  "wiki_enabled": true,
  "snippets_enabled": false,
  "can_create_merge_request_in": true,
  "resolve_outdated_diff_discussions": false,
  "container_registry_enabled": false, // deprecated, use container_registry_access_level instead
  "container_registry_access_level": "disabled",
  "security_and_compliance_access_level": "disabled",
  "created_at": "2013-09-30T13:46:02Z",
  "updated_at": "2013-09-30T13:46:02Z",
  "last_activity_at": "2013-09-30T13:46:02Z",
  "creator_id": 3,
  "namespace": {
    "id": 3,
    "name": "Diaspora",
    "path": "diaspora",
    "kind": "group",
    "full_path": "diaspora"
  },
  "import_status": "none",
  "import_error": null,
  "permissions": {
    "project_access": {
      "access_level": 10,
      "notification_level": 3
    },
    "group_access": {
      "access_level": 50,
      "notification_level": 3
    }
  },
  "archived": false,
  "avatar_url": "http://example.com/uploads/project/avatar/3/uploads/avatar.png",
  "license_url": "http://example.com/diaspora/diaspora-client/blob/main/LICENSE",
  "license": {
    "key": "lgpl-3.0",
    "name": "GNU Lesser General Public License v3.0",
    "nickname": "GNU LGPLv3",
    "html_url": "http://choosealicense.com/licenses/lgpl-3.0/",
    "source_url": "http://www.gnu.org/licenses/lgpl-3.0.txt"
  },
  "shared_runners_enabled": true,
  "group_runners_enabled": true,
  "forks_count": 0,
  "star_count": 0,
  "runners_token": "b8bc4a7a29eb76ea83cf79e4908c2b",
  "ci_default_git_depth": 50,
  "ci_forward_deployment_enabled": true,
  "ci_forward_deployment_rollback_allowed": true,
  "ci_allow_fork_pipelines_to_run_in_parent_project": true,
  "ci_id_token_sub_claim_components": ["project_path", "ref_type", "ref"],
  "ci_separated_caches": true,
  "ci_restrict_pipeline_cancellation_role": "developer",
  "ci_pipeline_variables_minimum_override_role": "maintainer",
  "ci_push_repository_for_job_token_allowed": false,
  "ci_display_pipeline_variables": false,
  "protect_merge_request_pipelines": true,
  "public_jobs": true,
  "shared_with_groups": [],
  "only_allow_merge_if_pipeline_succeeds": false,
  "allow_merge_on_skipped_pipeline": false,
  "allow_pipeline_trigger_approve_deployment": false,
  "restrict_user_defined_variables": false,
  "only_allow_merge_if_all_discussions_are_resolved": false,
  "remove_source_branch_after_merge": false,
  "request_access_enabled": false,
  "merge_method": "merge",
  "squash_option": "default_on",
  "autoclose_referenced_issues": true,
  "enforce_auth_checks_on_uploads": true,
  "suggestion_commit_message": null,
  "merge_commit_template": null,
  "mr_default_title_template": null,
  "container_registry_image_prefix": "registry.example.com/diaspora/diaspora-project-site",
  "secret_push_protection_enabled": false,
  "_links": {
    "self": "http://example.com/api/v4/projects",
    "issues": "http://example.com/api/v4/projects/1/issues",
    "merge_requests": "http://example.com/api/v4/projects/1/merge_requests",
    "repo_branches": "http://example.com/api/v4/projects/1/repository_branches",
    "labels": "http://example.com/api/v4/projects/1/labels",
    "events": "http://example.com/api/v4/projects/1/events",
    "members": "http://example.com/api/v4/projects/1/members",
    "cluster_agents": "http://example.com/api/v4/projects/1/cluster_agents"
  }
}

Supprimer un projet {#delete-a-project}

{{< history >}}

{{< /history >}}

Prérequis :

  • Vous devez être administrateur ou avoir le rôle Owner sur le projet.

Marque un projet pour suppression. Les projets sont supprimés à la fin de la période de rétention :

  • Sur GitLab.com, les projets sont conservés pendant 30 jours.
  • Sur GitLab Self-Managed, la période de rétention est contrôlée par les paramètres de l'instance.

Ce point de terminaison peut également supprimer immédiatement un projet précédemment marqué pour suppression.

[!warning] Sur GitLab.com, après la suppression d'un projet, ses données sont conservées pendant 30 jours, et la suppression définitive n'est pas disponible. Si vous avez vraiment besoin de supprimer un projet immédiatement sur GitLab.com, vous pouvez ouvrir un ticket de support.

plaintext
DELETE /projects/:id

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet.
full_pathstringnonChemin complet du projet à utiliser avec permanently_remove. Introduit dans GitLab 15.11 pour Premium et Ultimate uniquement, puis déplacé vers GitLab Free dans la version 18.0. Pour trouver le chemin du projet, utilisez path_with_namespace depuis obtenir un projet unique.
permanently_removebooléen/chaînenonSupprime immédiatement un projet s'il est marqué pour suppression. Introduit dans GitLab 15.11 pour Premium et Ultimate uniquement, puis déplacé vers GitLab Free dans la version 18.0. Désactivé sur GitLab.com et Dedicated.

Restaurer un projet marqué pour suppression {#restore-a-project-marked-for-deletion}

Restaure un projet spécifié qui a été marqué pour suppression.

plaintext
POST /projects/:id/restore

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet.

Transférer un projet vers un nouvel espace de nommage {#transfer-a-project-to-a-new-namespace}

{{< history >}}

  • mr_default_title_template introduit dans GitLab 18.11 avec un feature flag nommé mr_default_title_template. Désactivé par défaut.
  • Le feature flag mr_default_title_template a été supprimé dans GitLab 19.0.

{{< /history >}}

Transfère un projet vers un nouvel espace de nommage.

Pour plus d'informations sur les prérequis pour transférer un projet, voir Transférer un projet vers un autre espace de nommage.

plaintext
PUT /projects/:id/transfer

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet.
namespaceentier ou chaîne de caractèresOuiL'ID ou le chemin de l'espace de nommage vers lequel transférer le projet.

Exemple de requête :

shell
curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/transfer?namespace=14"

Exemple de réponse :

json
  {
  "id": 7,
  "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
  "description_html": "<p data-sourcepos=\"1:1-1:56\" dir=\"auto\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>",
  "name": "hello-world",
  "name_with_namespace": "cute-cats / hello-world",
  "path": "hello-world",
  "path_with_namespace": "cute-cats/hello-world",
  "created_at": "2020-10-15T16:25:22.415Z",
  "updated_at": "2020-10-15T16:25:22.415Z",
  "default_branch": "main",
  "tag_list": [], //deprecated, use `topics` instead
  "topics": [],
  "ssh_url_to_repo": "[email protected]:cute-cats/hello-world.git",
  "http_url_to_repo": "https://gitlab.example.com/cute-cats/hello-world.git",
  "web_url": "https://gitlab.example.com/cute-cats/hello-world",
  "readme_url": "https://gitlab.example.com/cute-cats/hello-world/-/blob/main/README.md",
  "avatar_url": null,
  "forks_count": 0,
  "star_count": 0,
  "last_activity_at": "2020-10-15T16:25:22.415Z",
  "namespace": {
    "id": 18,
    "name": "cute-cats",
    "path": "cute-cats",
    "kind": "group",
    "full_path": "cute-cats",
    "parent_id": null,
    "avatar_url": null,
    "web_url": "https://gitlab.example.com/groups/cute-cats"
  },
  "container_registry_image_prefix": "registry.example.com/cute-cats/hello-world",
  "_links": {
    "self": "https://gitlab.example.com/api/v4/projects/7",
    "issues": "https://gitlab.example.com/api/v4/projects/7/issues",
    "merge_requests": "https://gitlab.example.com/api/v4/projects/7/merge_requests",
    "repo_branches": "https://gitlab.example.com/api/v4/projects/7/repository/branches",
    "labels": "https://gitlab.example.com/api/v4/projects/7/labels",
    "events": "https://gitlab.example.com/api/v4/projects/7/events",
    "members": "https://gitlab.example.com/api/v4/projects/7/members"
  },
  "packages_enabled": true, // deprecated, use package_registry_access_level instead
  "package_registry_access_level": "enabled",
  "empty_repo": false,
  "archived": false,
  "visibility": "private",
  "resolve_outdated_diff_discussions": false,
  "container_registry_enabled": true, // deprecated, use container_registry_access_level instead
  "container_registry_access_level": "enabled",
  "container_expiration_policy": {
    "cadence": "7d",
    "enabled": false,
    "keep_n": null,
    "older_than": null,
    "name_regex": null,
    "name_regex_keep": null,
    "next_run_at": "2020-10-22T16:25:22.746Z"
  },
  "issues_enabled": true,
  "merge_requests_enabled": true,
  "wiki_enabled": true,
  "jobs_enabled": true,
  "snippets_enabled": true,
  "service_desk_enabled": false,
  "service_desk_address": null,
  "can_create_merge_request_in": true,
  "issues_access_level": "enabled",
  "repository_access_level": "enabled",
  "merge_requests_access_level": "enabled",
  "forking_access_level": "enabled",
  "analytics_access_level": "enabled",
  "wiki_access_level": "enabled",
  "builds_access_level": "enabled",
  "snippets_access_level": "enabled",
  "pages_access_level": "enabled",
  "security_and_compliance_access_level": "enabled",
  "emails_disabled": null,
  "emails_enabled": null,
  "shared_runners_enabled": true,
  "group_runners_enabled": true,
  "lfs_enabled": true,
  "creator_id": 2,
  "import_status": "none",
  "open_issues_count": 0,
  "ci_default_git_depth": 50,
  "public_jobs": true,
  "build_timeout": 3600,
  "auto_cancel_pending_pipelines": "enabled",
  "ci_config_path": null,
  "shared_with_groups": [],
  "only_allow_merge_if_pipeline_succeeds": false,
  "allow_merge_on_skipped_pipeline": null,
  "allow_pipeline_trigger_approve_deployment": false,
  "restrict_user_defined_variables": false,
  "request_access_enabled": true,
  "only_allow_merge_if_all_discussions_are_resolved": false,
  "remove_source_branch_after_merge": true,
  "printing_merge_request_link_enabled": true,
  "merge_method": "merge",
  "squash_option": "default_on",
  "suggestion_commit_message": null,
  "merge_commit_template": null,
  "mr_default_title_template": null,
  "auto_devops_enabled": true,
  "auto_devops_deploy_strategy": "continuous",
  "autoclose_referenced_issues": true,
  "approvals_before_merge": 0, // Deprecated. Use merge request approvals API instead.
  "mirror": false,
  "compliance_frameworks": [],
  "warn_about_potentially_unwanted_characters": true,
  "secret_push_protection_enabled": false
}

Lister les groupes disponibles pour le transfert de projet {#list-groups-available-for-project-transfer}

Récupérer la liste des groupes vers lesquels l'utilisateur peut transférer un projet.

plaintext
GET /projects/:id/transfer_locations

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet.
searchstringNonLes noms de groupes à rechercher.

Exemple de requête :

shell
curl --url "https://gitlab.example.com/api/v4/projects/1/transfer_locations"

Exemple de réponse :

json
[
  {
    "id": 27,
    "web_url": "https://gitlab.example.com/groups/gitlab",
    "name": "GitLab",
    "avatar_url": null,
    "full_name": "GitLab",
    "full_path": "GitLab"
  },
  {
    "id": 31,
    "web_url": "https://gitlab.example.com/groups/foobar",
    "name": "FooBar",
    "avatar_url": null,
    "full_name": "FooBar",
    "full_path": "FooBar"
  }
]

Téléverser un avatar de projet {#upload-a-project-avatar}

Téléverse un avatar vers le projet spécifié.

plaintext
PUT /projects/:id

Prérequis :

  • Vous devez avoir le rôle Maintainer ou Owner pour le projet.
  • Votre fichier doit faire 200 Ko ou moins. La taille d'image idéale est de 192 x 192 pixels.
  • L'image doit être de l'un des types de fichiers suivants :
    • .bmp
    • .gif
    • .ico
    • .jpeg
    • .png
    • .tiff

Attributs pris en charge :

AttributTypeObligatoireDescription
avatarstringOuiLe fichier à téléverser.
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet.

Pour téléverser un avatar depuis votre système de fichiers, utilisez l'argument --form. Cela oblige cURL à envoyer des données en utilisant l'en-tête Content-Type: multipart/form-data. Le paramètre avatar= doit pointer vers un fichier image sur votre système de fichiers et être précédé de @.

Exemple de requête :

shell
curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5" \
  --form "[email protected]"

Exemple de réponse :

json
{
  "avatar_url": "https://gitlab.example.com/uploads/-/system/project/avatar/2/dk.png"
}

Télécharger un avatar de projet {#download-a-project-avatar}

{{< history >}}

{{< /history >}}

Télécharge un avatar de projet. Vous pouvez accéder à ce point de terminaison sans authentification si le projet est accessible publiquement.

plaintext
GET /projects/:id/avatar

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîne de caractèresouiL'ID ou le chemin encodé en URL du projet.

Exemple de requête :

shell
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/4/avatar"

Supprimer un avatar de projet {#remove-a-project-avatar}

Pour supprimer un avatar de projet, utilisez une valeur vide pour l'attribut avatar.

Exemple de requête :

shell
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
     --data "avatar=" "https://gitlab.example.com/api/v4/projects/5"

Partager des projets {#share-projects}

Partager un projet avec un groupe.

Pour plus d'informations, voir Inviter un groupe dans un projet.

Partager un projet avec un groupe {#share-a-project-with-a-group}

Partage un projet spécifié avec un groupe.

plaintext
POST /projects/:id/share

Attributs pris en charge :

AttributTypeObligatoireDescription
group_accessintegerOuiLe niveau d'accès à accorder au groupe. Valeurs possibles : 5 (Accès minimum), 10 (Guest), 15 (Planificateur), 20 (Reporter), 25 (Responsable sécurité), 30 (Developer), 40 (Maintainer) ou 50 (Owner).
group_idintegerOuiL'ID du groupe avec lequel partager.
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet.
expires_atstringNonDate d'expiration du partage au format ISO 8601. Par exemple, 2016-09-26.

Annule le partage d'un projet avec un groupe spécifié. Retourne 204 et aucun contenu en cas de succès.

plaintext
DELETE /projects/:id/share/:group_id

Attributs pris en charge :

AttributTypeObligatoireDescription
group_idintegerOuiL'ID du groupe.
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet.

Exemple de requête :

shell
curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/share/17"

Démarrer la tâche de maintenance pour un projet {#start-the-housekeeping-task-for-a-project}

Démarre la tâche de maintenance pour un projet.

plaintext
POST /projects/:id/housekeeping

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet.
taskstringNonprune pour déclencher l'élagage manuel des objets inaccessibles ou eager pour déclencher une maintenance intensive.

Analyse de sécurité en temps réel {#real-time-security-scan}

{{< details >}}

  • Édition : Ultimate
  • Offre : GitLab.com
  • Statut : Expérience

{{< /details >}}

{{< history >}}

{{< /history >}}

Retourne les résultats de l'analyse SAST pour un seul fichier en temps réel.

plaintext
POST /projects/:id/security_scans/sast/scan

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet.

Exemple de requête :

shell
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
 --header "Content-Type: application/json" \
 --data '{
  "file_path":"src/main.c",
  "content":"#include<string.h>\nint main(int argc, char **argv) {\n  char buff[128];\n  strcpy(buff, argv[1]);\n  return 0;\n}\n"
 }' \
 --url "https://gitlab.example.com/api/v4/projects/:id/security_scans/sast/scan"

Exemple de réponse :

json
{
  "vulnerabilities": [
    {
      "name": "Insecure string processing function (strcpy)",
      "description": "The `strcpy` family of functions do not provide the ability to limit or check buffer\nsizes before copying to a destination buffer. This can lead to buffer overflows. Consider\nusing more secure alternatives such as `strncpy` and provide the correct limit to the\ndestination buffer and ensure the string is null terminated.\n\nFor more information please see: https://linux.die.net/man/3/strncpy\n\nIf developing for C Runtime Library (CRT), more secure versions of these functions should be\nused, see:\nhttps://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/strncpy-s-strncpy-s-l-wcsncpy-s-wcsncpy-s-l-mbsncpy-s-mbsncpy-s-l?view=msvc-170\n",
      "severity": "High",
      "location": {
        "file": "src/main.c",
        "start_line": 5,
        "end_line": 5,
        "start_column": 3,
        "end_column": 23
      }
    }
  ]
}

Télécharger un instantané d'un dépôt Git {#download-snapshot-of-a-git-repository}

Ce point de terminaison est uniquement accessible par un utilisateur administrateur.

Télécharge un instantané du dépôt Git du projet (ou du wiki, si demandé). Cet instantané est toujours au format tar non compressé.

Si un dépôt est corrompu au point où git clone ne fonctionne plus, l'instantané peut permettre de récupérer une partie des données.

plaintext
GET /projects/:id/snapshot

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet.
wikibooleanNonIndique si le wiki doit être téléchargé plutôt que le dépôt du projet.

Récupérer le chemin vers le stockage du dépôt {#retrieve-the-path-to-repository-storage}

Récupère le chemin vers le stockage du dépôt pour le projet spécifié. Si vous utilisez Gitaly Cluster (Praefect), consultez plutôt les chemins de réplique générés par Praefect.

Disponible pour les administrateurs uniquement.

plaintext
GET /projects/:id/storage

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîne de caractèresOuiL'ID ou le chemin encodé en URL du projet.
json
[
  {
    "project_id": 1,
    "disk_path": "@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b",
    "created_at": "2012-10-12T17:04:47Z",
    "repository_storage": "default"
  }
]

Statut de la protection push secrète {#secret-push-protection-status}

{{< details >}}

  • Édition : Ultimate

{{< /details >}}

{{< history >}}

  • Introduit dans GitLab 17.3.
  • Renommé depuis setPreReceiveSecretDetection dans GitLab 17.11.

{{< /history >}}

Si vous avez le rôle Responsable sécurité, Developer, Maintainer ou Owner, les requêtes suivantes peuvent également retourner la valeur secret_push_protection_enabled. Certaines de ces requêtes ont des exigences plus strictes concernant les rôles. Référez-vous aux points de terminaison mentionnés précédemment pour plus de précisions. Utilisez ces informations pour déterminer si la protection push secrète est activée pour un projet. Pour modifier la valeur secret_push_protection_enabled, utilisez l'API des paramètres de sécurité du projet.

  • GET /projects
  • GET /projects/:id
  • GET /users/:user_id/projects
  • GET /users/:user_id/contributed_projects
  • PUT /projects/:project_id/transfer?namespace=:namespace_id
  • PUT /projects/:id
  • POST /projects
  • POST /projects/user/:user_id
  • POST /projects/:id/archive
  • POST /projects/:id/unarchive

Exemple de réponse :

json
{
  "id": 1,
  "project_id": 3,
  "secret_push_protection_enabled": true,
  ...
}

Dépannage {#troubleshooting}

Valeur restrict_user_defined_variables inattendue dans la réponse {#unexpected-restrict_user_defined_variables-value-in-response}

Si vous définissez des valeurs contradictoires pour restrict_user_defined_variables et ci_pipeline_variables_minimum_override_role, les valeurs de la réponse peuvent différer de ce que vous attendez car le paramètre pipeline_variables_minimum_override_role a la priorité la plus haute.

Par exemple, si vous :

  • Définissez restrict_user_defined_variables à true et ci_pipeline_variables_minimum_override_role à developer, la réponse retourne restrict_user_defined_variables: false. Définir ci_pipeline_variables_minimum_override_role à developer a la priorité et les variables ne sont pas restreintes.
  • Définissez restrict_user_defined_variables à false et ci_pipeline_variables_minimum_override_role à maintainer, la réponse retourne restrict_user_defined_variables: true car définir ci_pipeline_variables_minimum_override_role à maintainer a la priorité et les variables sont restreintes.