doc-locale/fr-fr/api/epic_links.md
{{< details >}}
{{< /details >}}
[!warning] L'API REST Epics a été dépréciée dans GitLab 17.0 et sa suppression est prévue dans la v5 de l'API. De GitLab 17.4 à 18.0, si le nouveau look pour les epics est activé, et dans GitLab 18.1 et versions ultérieures, utilisez plutôt l'API Work Items. Pour plus d'informations, consultez migrer les API d'epic vers les éléments de travail. Ce changement est un changement majeur.
Gère les relations d'epic parent-enfant.
Chaque appel d'API REST à epic_links doit être authentifié.
Si un utilisateur n'est pas membre d'un groupe privé, une requête GET sur ce groupe renvoie un code de statut 404.
Les Epics multi-niveaux sont disponibles uniquement dans GitLab Ultimate. Si la fonctionnalité Multi-level Epics n'est pas disponible, un code de statut 403 est retourné.
Lister tous les epics enfants d'un epic.
GET /groups/:id/epics/:epic_iid/epics
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
id | entier ou chaîne | oui | L'ID ou le chemin encodé en URL du groupe |
epic_iid | entier | oui | L'ID interne de l'epic. |
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/1/epics/5/epics"
Exemple de réponse :
[
{
"id": 29,
"iid": 6,
"group_id": 1,
"parent_id": 5,
"title": "Accusamus iste et ullam ratione voluptatem omnis debitis dolor est.",
"description": "Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum.",
"author": {
"id": 10,
"name": "Lu Mayer",
"username": "kam",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/018729e129a6f31c80a6327a30196823?s=80&d=identicon",
"web_url": "http://localhost:3001/kam"
},
"start_date": null,
"start_date_is_fixed": false,
"start_date_fixed": null,
"start_date_from_milestones": null, //deprecated in favor of start_date_from_inherited_source
"start_date_from_inherited_source": null,
"end_date": "2018-07-31", //deprecated in favor of due_date
"due_date": "2018-07-31",
"due_date_is_fixed": false,
"due_date_fixed": null,
"due_date_from_milestones": "2018-07-31", //deprecated in favor of start_date_from_inherited_source
"due_date_from_inherited_source": "2018-07-31",
"created_at": "2018-07-17T13:36:22.770Z",
"updated_at": "2018-07-18T12:22:05.239Z",
"labels": []
}
]
Crée une association entre deux epics, en désignant l'un comme l'epic parent et l'autre comme l'epic enfant. Un epic parent peut avoir plusieurs epics enfants. Si le nouvel epic enfant appartenait déjà à un autre epic, il est désassigné de ce parent précédent.
POST /groups/:id/epics/:epic_iid/epics/:child_epic_id
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
id | entier ou chaîne | oui | L'ID ou le chemin encodé en URL du groupe |
epic_iid | entier | oui | L'ID interne de l'epic. |
child_epic_id | entier | oui | L'ID global de l'epic enfant. L'ID interne ne peut pas être utilisé car il peut entrer en conflit avec des epics d'autres groupes. |
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/1/epics/5/epics/6"
Exemple de réponse :
{
"id": 6,
"iid": 38,
"group_id": 1,
"parent_id": 5,
"title": "Accusamus iste et ullam ratione voluptatem omnis debitis dolor est.",
"description": "Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum.",
"author": {
"id": 10,
"name": "Lu Mayer",
"username": "kam",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/018729e129a6f31c80a6327a30196823?s=80&d=identicon",
"web_url": "http://localhost:3001/kam"
},
"start_date": null,
"start_date_is_fixed": false,
"start_date_fixed": null,
"start_date_from_milestones": null, //deprecated in favor of start_date_from_inherited_source
"start_date_from_inherited_source": null,
"end_date": "2018-07-31", //deprecated in favor of due_date
"due_date": "2018-07-31",
"due_date_is_fixed": false,
"due_date_fixed": null,
"due_date_from_milestones": "2018-07-31", //deprecated in favor of start_date_from_inherited_source
"due_date_from_inherited_source": "2018-07-31",
"created_at": "2018-07-17T13:36:22.770Z",
"updated_at": "2018-07-18T12:22:05.239Z",
"labels": []
}
Crée un nouvel epic et l'associe à l'epic parent fourni. La réponse est un objet LinkedEpic.
POST /groups/:id/epics/:epic_iid/epics
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
id | entier ou chaîne | oui | L'ID ou le chemin encodé en URL du groupe |
epic_iid | entier | oui | L'ID interne de l'epic (futur parent). |
title | string | oui | Le titre d'un epic nouvellement créé. |
confidential | boolean | non | Indique si l'epic doit être confidentiel. Le paramètre est ignoré si le feature flag confidential_epics est désactivé. Par défaut, il correspond à l'état de confidentialité de l'epic parent. |
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/1/epics/5/epics?title=Newpic"
Exemple de réponse :
{
"id": 24,
"iid": 2,
"title": "child epic",
"group_id": 49,
"parent_id": 23,
"has_children": false,
"has_issues": false,
"reference": "&2",
"url": "http://localhost/groups/group16/-/epics/2",
"relation_url": "http://localhost/groups/group16/-/epics/1/links/24"
}
PUT /groups/:id/epics/:epic_iid/epics/:child_epic_id
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
id | entier ou chaîne | oui | L'ID ou le chemin encodé en URL du groupe. |
epic_iid | entier | oui | L'ID interne de l'epic. |
child_epic_id | entier | oui | L'ID global de l'epic enfant. L'ID interne ne peut pas être utilisé car il peut entrer en conflit avec des epics d'autres groupes. |
move_before_id | entier | non | L'ID global d'un epic frère qui doit être placé avant l'epic enfant. |
move_after_id | entier | non | L'ID global d'un epic frère qui doit être placé après l'epic enfant. |
curl --request PUT \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/1/epics/4/epics/5"
Exemple de réponse :
[
{
"id": 29,
"iid": 6,
"group_id": 1,
"parent_id": 5,
"title": "Accusamus iste et ullam ratione voluptatem omnis debitis dolor est.",
"description": "Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum.",
"author": {
"id": 10,
"name": "Lu Mayer",
"username": "kam",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/018729e129a6f31c80a6327a30196823?s=80&d=identicon",
"web_url": "http://localhost:3001/kam"
},
"start_date": null,
"start_date_is_fixed": false,
"start_date_fixed": null,
"start_date_from_milestones": null, //deprecated in favor of start_date_from_inherited_source
"start_date_from_inherited_source": null,
"end_date": "2018-07-31", //deprecated in favor of due_date
"due_date": "2018-07-31",
"due_date_is_fixed": false,
"due_date_fixed": null,
"due_date_from_milestones": "2018-07-31", //deprecated in favor of start_date_from_inherited_source
"due_date_from_inherited_source": "2018-07-31",
"created_at": "2018-07-17T13:36:22.770Z",
"updated_at": "2018-07-18T12:22:05.239Z",
"labels": []
}
]
Désassigner un epic enfant d'un epic parent.
DELETE /groups/:id/epics/:epic_iid/epics/:child_epic_id
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
id | entier ou chaîne | oui | L'ID ou le chemin encodé en URL du groupe. |
epic_iid | entier | oui | L'ID interne de l'epic. |
child_epic_id | entier | oui | L'ID global de l'epic enfant. L'ID interne ne peut pas être utilisé car il peut entrer en conflit avec des epics d'autres groupes. |
curl --request DELETE \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/1/epics/4/epics/5"
Exemple de réponse :
{
"id": 5,
"iid": 38,
"group_id": 1,
"parent_id": null,
"title": "Accusamus iste et ullam ratione voluptatem omnis debitis dolor est.",
"description": "Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum.",
"author": {
"id": 10,
"name": "Lu Mayer",
"username": "kam",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/018729e129a6f31c80a6327a30196823?s=80&d=identicon",
"web_url": "http://localhost:3001/kam"
},
"start_date": null,
"start_date_is_fixed": false,
"start_date_fixed": null,
"start_date_from_milestones": null, //deprecated in favor of start_date_from_inherited_source
"start_date_from_inherited_source": null,
"end_date": "2018-07-31", //deprecated in favor of due_date
"due_date": "2018-07-31",
"due_date_is_fixed": false,
"due_date_fixed": null,
"due_date_from_milestones": "2018-07-31", //deprecated in favor of start_date_from_inherited_source
"due_date_from_inherited_source": "2018-07-31",
"created_at": "2018-07-17T13:36:22.770Z",
"updated_at": "2018-07-18T12:22:05.239Z",
"labels": []
}