doc-locale/fr-fr/user/profile/achievements.md
{{< details >}}
{{< /details >}}
{{< history >}}
achievements. Désactivés par défaut.{{< /history >}}
[!flag] Un feature flag contrôle la disponibilité de cette fonctionnalité. Pour plus d'informations, consultez l'historique.
Les réalisations sont un moyen de récompenser les utilisateurs pour leur activité sur GitLab. En tant que mainteneur ou propriétaire d'un espace de nommage, vous pouvez créer des réalisations personnalisées pour des contributions spécifiques. Vous pouvez attribuer ces réalisations aux utilisateurs ou les révoquer en fonction de critères définis.
En tant qu'utilisateur, vous pouvez collecter des réalisations pour mettre en valeur vos contributions à différents projets ou groupes sur votre profil. Une réalisation se compose d'un nom, d'une description et d'un avatar.
Les réalisations sont considérées comme appartenant à l'utilisateur. Elles sont visibles indépendamment du paramètre de visibilité de l'espace de nommage qui a créé la réalisation.
Pour plus d'informations sur les travaux planifiés, consultez l'epic 9429. Faites-nous part de vos cas d'usage en laissant des commentaires dans l'epic.
Par programmation, il n'existe qu'une seule façon de créer, attribuer, révoquer ou supprimer des réalisations.
En pratique, vous pouvez faire la distinction entre les réalisations attribuées :
Pour afficher toutes les réalisations disponibles et attribuées pour un groupe :
https://gitlab.com/groups/<group-path>/-/achievements.La page affiche une liste de réalisations et les membres qui ont reçu la réalisation.
Vous pouvez consulter les réalisations d'un utilisateur sur sa page de profil.
Prérequis :
Pour afficher les réalisations d'un utilisateur :
Accédez à la page de profil de l'utilisateur.
Sous l'avatar de l'utilisateur, consultez ses réalisations.
Pour afficher les détails d'une réalisation, passez le curseur dessus. Les informations suivantes s'affichent :
Pour récupérer la liste des réalisations d'un utilisateur, interrogez le type GraphQL user.
Le champ User.userAchievements accepte un paramètre facultatif includeHidden. Lorsqu'il est défini sur true, la réponse inclut les réalisations masquées du profil. Les réalisations masquées ne sont incluses que dans les cas suivants :
query {
user(username: "<username>") {
userAchievements(includeHidden: true) {
nodes {
achievement {
name
description
avatarUrl
namespace {
fullPath
name
}
}
}
}
}
}
Vous pouvez créer des réalisations personnalisées à attribuer pour des contributions spécifiques.
Prérequis :
Pour créer une réalisation :
Dans l'interface utilisateur :
Avec l'API GraphQL, appelez la mutation GraphQL achievementsCreate :
mutation achievementsCreate($file: Upload!) {
achievementsCreate(
input: {
namespaceId: "gid://gitlab/Namespace/<namespace id>",
name: "<name>",
description: "<description>",
avatar: $file}
) {
errors
achievement {
id
name
description
avatarUrl
}
}
}
Pour fournir le fichier avatar, appelez la mutation en utilisant curl :
curl "https://gitlab.com/api/graphql" \
-H "Authorization: Bearer <your-pat-token>" \
-H "Content-Type: multipart/form-data" \
-F operations='{ "query": "mutation ($file: Upload!) { achievementsCreate(input: { namespaceId: \"gid://gitlab/Namespace/<namespace-id>\", name: \"<name>\", description: \"<description>\", avatar: $file }) { achievement { id name description avatarUrl } } }", "variables": { "file": null } }' \
-F map='{ "0": ["variables.file"] }' \
-F 0='@/path/to/your/file.jpg'
En cas de succès, la réponse retourne l'ID de la réalisation :
{"data":{"achievementsCreate":{"achievement":{"id":"gid://gitlab/Achievements::Achievement/1","name":"<name>","description":"<description>","avatarUrl":"https://gitlab.com/uploads/-/system/achievements/achievement/avatar/1/file.jpg"}}}}
Vous pouvez modifier le nom, la description et l'avatar d'une réalisation à tout moment.
Prérequis :
Pour mettre à jour une réalisation, appelez la mutation GraphQL achievementsUpdate.
mutation achievementsUpdate($file: Upload!) {
achievementsUpdate(
input: {
achievementId: "gid://gitlab/Achievements::Achievement/<achievement id>",
name: "<new name>",
description: "<new description>",
avatar: $file}
) {
errors
achievement {
id
name
description
avatarUrl
}
}
}
{{< history >}}
{{< /history >}}
Vous pouvez attribuer des réalisations aux utilisateurs pour reconnaître leurs contributions. Après l'attribution, l'utilisateur reçoit une notification par e-mail avec un lien pour accepter la réalisation. Les réalisations ne sont pas visibles sur un profil tant que l'utilisateur ne les a pas acceptées.
Le lien d'acceptation reste valide pendant 30 jours. Passé ce délai, appelez la mutation GraphQL userAchievementsUpdate pour accepter la réalisation.
Prérequis :
Pour attribuer une réalisation à un utilisateur, appelez la mutation GraphQL achievementsAward.
mutation {
achievementsAward(input: {
achievementId: "gid://gitlab/Achievements::Achievement/<achievement id>",
userId: "gid://gitlab/User/<user id>" }) {
userAchievement {
id
achievement {
id
name
}
user {
id
username
}
}
errors
}
}
Vous pouvez révoquer la réalisation d'un utilisateur si vous estimez que celui-ci ne remplit plus les critères d'attribution.
Prérequis :
Pour révoquer une réalisation, appelez la mutation GraphQL achievementsRevoke.
mutation {
achievementsRevoke(input: {
userAchievementId: "gid://gitlab/Achievements::UserAchievement/<user achievement id>" }) {
userAchievement {
id
achievement {
id
name
}
user {
id
username
}
revokedAt
}
errors
}
}
Si vous avez attribué une réalisation à un utilisateur par erreur, vous pouvez la supprimer.
Prérequis :
Pour supprimer une réalisation attribuée, appelez la mutation GraphQL userAchievementsDelete.
mutation {
userAchievementsDelete(input: {
userAchievementId: "gid://gitlab/Achievements::UserAchievement/<user achievement id>" }) {
userAchievement {
id
achievement {
id
name
}
user {
id
username
}
}
errors
}
}
Si vous estimez que vous n'avez plus besoin d'une réalisation, vous pouvez la supprimer. Cela supprime toutes les instances attribuées et révoquées associées à la réalisation.
Prérequis :
Pour supprimer une réalisation, appelez la mutation GraphQL achievementsDelete.
mutation {
achievementsDelete(input: {
achievementId: "gid://gitlab/Achievements::Achievement/<achievement id>" }) {
achievement {
id
name
}
errors
}
}
Si vous ne souhaitez pas afficher les réalisations sur votre profil, vous pouvez vous désabonner. Pour cela :
{{< history >}}
{{< /history >}}
Si vous ne souhaitez pas afficher toutes vos réalisations sur votre profil, vous pouvez modifier la visibilité de réalisations spécifiques.
Pour masquer l'une de vos réalisations, appelez la mutation GraphQL userAchievementsUpdate.
mutation {
userAchievementsUpdate(input: {
userAchievementId: "gid://gitlab/Achievements::UserAchievement/<user achievement id>"
showOnProfile: false
}) {
userAchievement {
id
showOnProfile
}
errors
}
}
Pour afficher à nouveau l'une de vos réalisations, appelez la même mutation avec la valeur true pour l'argument showOnProfile.
Par défaut, les réalisations sur votre profil sont affichées par ordre croissant selon la date d'attribution.
Pour modifier l'ordre de vos réalisations, appelez la mutation GraphQL userAchievementPrioritiesUpdate avec une liste ordonnée de toutes les réalisations prioritaires.
mutation {
userAchievementPrioritiesUpdate(input: {
userAchievementIds: ["gid://gitlab/Achievements::UserAchievement/<first user achievement id>", "gid://gitlab/Achievements::UserAchievement/<second user achievement id>"],
}) {
userAchievements {
id
priority
}
errors
}
}