6.1.12. Produits

Cette partie de l'API de Bugzilla permet de lister les produits disponibles et d'obtenir des informations sur ceux-ci.

6.1.12.1. Liste des produits

Renvoie une liste des identifiants de produits pour lesquels l'utilisateur a les droits.

Requête

Pour obtenir une liste d'identifiants de produits qu'un utilisateur peut sélectionner :

GET /rest/product_selectable

Pour obtenir une liste de produits pour lesquels un utilisateur a le droit de créer un bogue :

GET /rest/product_enterable

Pour obtenir une liste de produits pour lesquels un utilisateur peut créer un bogue et faire des requêtes :

GET /rest/product_accessible

Réponse

{
  "ids": [
    "2",
    "3",
    "19",
    "1",
    "4"
  ]
}
nom type description
ids array Liste d'identifiants (entiers) de produits.

6.1.12.2. Obtention de produit

Renvoie une liste d'informations sur les produits.

Requête

Pour obtenir des informations sur un type spécifique de produit tels que accessible, selectable ou enterable:

GET /rest/product?type=accessible

Pour obtenir des informations sur un produit spécifique par id ou name:

GET /rest/product/(id_or_name)

Vous pouvez aussi obtenir des informations sur plus d'un produit en utilisant les paramètres suivants dans la chaîne de requête :

GET /rest/product?ids=1&ids=2&ids=3
GET /rest/product?names=ProductOne&names=Product2
nom type description
id_or_name mixed Identifiant (entier) ou nom de produit.
ids array Identifiants de produits
names array Noms de produits
type string Le groupe de produit à renvoyer. Les valeurs valides sont accessible (défaut), selectable et enterable. type peut être une valeur unique ou un tableau de valeurs si plus d'un groupe est nécessaire, avec les doublons supprimés.

Réponse

{
  "products": [
    {
      "id": 1,
      "default_milestone": "---",
      "components": [
        {
          "is_active": true,
          "default_assigned_to": "admin@bugzilla.org",
          "id": 1,
          "sort_key": 0,
          "name": "TestComponent",
          "flag_types": {
            "bug": [
              {
                "is_active": true,
                "grant_group": null,
                "cc_list": "",
                "is_requestable": true,
                "id": 3,
                "is_multiplicable": true,
                "name": "needinfo",
                "request_group": null,
                "is_requesteeble": true,
                "sort_key": 0,
                "description": "needinfo"
              }
            ],
            "attachment": [
              {
                "description": "Review",
                "is_multiplicable": true,
                "name": "review",
                "is_requesteeble": true,
                "request_group": null,
                "sort_key": 0,
                "cc_list": "",
                "grant_group": null,
                "is_requestable": true,
                "id": 2,
                "is_active": true
              }
            ]
          },
          "default_qa_contact": "",
          "description": "This is a test component."
        }
      ],
      "is_active": true,
      "classification": "Unclassified",
      "versions": [
        {
          "id": 1,
          "name": "unspecified",
          "is_active": true,
          "sort_key": 0
        }
      ],
      "description": "This is a test product.",
      "has_unconfirmed": true,
      "milestones": [
        {
          "name": "---",
          "is_active": true,
          "sort_key": 0,
          "id": 1
        }
      ],
      "name": "TestProduct"
    }
  ]
}

products (array) Chaque objet contient les éléments suivants :

nom type description
id int Un identifiant (entier) unique identifiant le produit dans cette installation seulement.
name string Le nom du produit. C'est un identifiant unique pour ce produit.
description string Une description du produit, qui peut contenir du code HTML.
is_active boolean Un booléen indiquant si le produit est actif.
default_milestone string Le nom du jalon par défaut pour le produit.
has_unconfirmed boolean Indique si l'état de bogue NON CONFIRMÉ est disponible pour ce produit.
classification string Le nom de catégorie pour le produit.
components array Chaque objet composant contient les éléments décrits dans l'objet composant ci-dessous.
versions array Chaque objet décrit une version et contient les éléments suivants : name, sort_key et is_active.
milestones array Chaque objet décrit un jalon et contient les éléments suivants : name, sort_key et is_active.

Si l'utilisateur essaie d'accéder à un produit qui n'est pas dans la liste des produits accessibles pour l'utilisateur, ou un produit qui n'existe pas, celui-ci est ignoré sans message d'erreur et aucune information sur ce produit n'est renvoyée.

Objet composant :

nom type description
id int Un identifiant (entier) unique identifiant le composant dans cette installation seulement.
name string Le nom du composant. C'est un identifiant unique pour ce composant.
description string Une description du composant qui peut contenir du code HTML.
default_assigned_to string L'identifiant de connexion de l'utilisateur à qui sera par défaut les nouveaux bogues.
default_qa_contact string L'identifiant de connexion de l'utilisateur qui sera défini par défaut comme contact QA pour les nouveaux bogues. Vide si le contact QA n'est pas défini.
sort_key int Les composants, lorsqu'ils sont affichés dans une liste, sont d'abord classés selon cet entier puis par leur nom.
is_active boolean Un booléen indiquant si le composant est actif. Les composants inactifs ne sont pas disponibles pour les nouveaux bogues.
flag_types object Un objet contenant deux éléments bug et attachment, contenant chacun un tableau d'objets, chacun décrivant un type d'étiquette. Les éléments type d'étiquette sont décrits dans l'objet type d'étiquette ci-dessous.

Objet type d'étiquette :

nom type description
id int Renvoie l'identifiant du type d'étiquette.
name string Renvoie le nom du type d'étiquette.
description string Renvoie la description du type d'étiquette.
cc_list string Renvoie la liste 'Copie à' concaténée pour le type d'étiquette sous la forme d'une seule chaîne.
sort_key int Renvoie le rang de classement du type d'étiquette.
is_active boolean Renvoie si le type d'étiquette est actif ou pas. Les étiquettes faisant partie d'un type d'étiquette désactivé ne sont pas supprimées. Cela empêche seulement d'y ajouter de nouvelles étiquettes.
is_requestable boolean Renvoie si vous pouvez demander le type d'étiquette donné (c'est-à-dire si l'étiquette '?' est disponible ou pas).
is_requesteeble boolean Renvoie si vous pouvez demander à un utilisateur en particulier ou pas.
is_multiplicable boolean Renvoie si vous pouvez avoir plus d'une étiquette pour le type d'étiquette donné dans un bogue ou un fichier joint donné.
grant_group int L'identifiant du groupe autorisé à approuver/refuser les étiquettes de ce type. Si l'identifiant n'est pas indiqué, tous les utilisateurs sont autorisés à approuver/refuser pour ce type d'étiquette.
request_group int L'identifiant du groupe autorisé à demander l'étiquette si celle-ci est de type 'requestable'. Si l'identifiant n'est pas indiqué, tous les utilisateurs peuvent demander ce type d'étiquette.

6.1.12.3. Création de produit

Ceci permet de créer de nouveaux produits dans Bugzilla.

Requête

POST /rest/product
{
  "name" : "AnotherProduct",
  "description" : "Another Product",
  "classification" : "Unclassified",
  "is_open" : false,
  "has_unconfirmed" : false,
  "version" : "unspecified"
}

Certains paramètres sont obligatoires, sans quoi une erreur est renvoyée. Les paramètres obligatoires sont indiqués en gras.

nom type description
name string Le nom de ce produit. Il doit être unique dans cette installation Bugzilla.
description string Une description de ce produit. Peut contenir du code HTML simple.
version string La version par défaut de ce produit.
has_unconfirmed boolean Permet d'autoriser l'état NON CONFIRMÉ pour les bogues de ce produit. Par défaut : true.
classification string Le nom de la catégorie qui contient ce produit.
default_milestone string Le jalon par défaut pour ce produit. Par défaut : '---'.
is_open boolean true si le produit est ouvert pour la saisie de bogues. Par défaut : true.
create_series boolean true si vous voulez que des collections puissent être créées dans les nouveaux graphiques pour ce produit. Par défaut : true.

Réponse

{
  "id": 20
}

Renvoie un objet contenant l'élément suivant :

nom type description
id int Identifiant du nouveau produit créé.

6.1.12.4. Mise à jour de produit

Ceci permet de mettre à jour un produit dans Bugzilla.

Requête

PUT /rest/product/(id_or_name)

Vous pouvez modifier un produit en passant l'identifiant ou le nom du produit dans l'URL. Pour modifier plus d'un produit, vous pouvez spécifier des identifiants ou des noms de produits supplémentaires en utilisant respectivement les paramètres ids et names.

{
  "ids" : [123],
  "name" : "BarName",
  "has_unconfirmed" : false
}

Au moins un des éléments ci-dessous doit être indiqué.

nom type description
id_or_name mixed Identifiant (entier) ou nom du produit.
ids array Identifiants numériques des produits à mettre à jour.
names array Noms des produits à mettre à jour.

Les paramètres suivants spécifient les nouvelles valeurs à définir pour le(s) produit(s) à mettre à jour.

nom type description
name string Le nouveau nom du produit. Si vous essayez de définir ceci pour plus d'un produit, une erreur est renvoyée car les noms de produits doivent être uniques.
default_milestone string Lors de la saisie d'un nouveau bogue, le jalon par défaut si l'utilisateur n'en choisit pas. Doit être un jalon valide pour ce produit.
description string Met à jour la description longue pour ces produits avec cette valeur.
has_unconfirmed boolean Autorise l'état NON CONFIRMÉ pour les bogues dans ces produits.
is_open boolean true si le produit est ouvert pour la saisie de bogues, false dans le cas contraire.

Réponse

{
   "products" : [
      {
         "id" : 123,
         "changes" : {
            "name" : {
               "removed" : "FooName",
               "added" : "BarName"
            },
            "has_unconfirmed" : {
               "removed" : "1",
               "added" : "0"
            }
         }
      }
   ]
}

products (array) Objets de modification de produit contenant les éléments suivants :

nom type description
id int L'identifiant du produit mis à jour.
changes object

Les modifications effectuées sur ce produit. Les clés sont les noms des champs qui ont été modifiés et les valeurs sont des objets contenant deux éléments :

  • added: (string) La nouvelle valeur pour ce champ.
  • removed: (string) La valeur précédente pour ce champ.

Les booléens seront représentés par des chaînes '1' et '0' pour les valeurs modifiées car ils sont actuellement stockés sous forme de chaîne dans la base de données.


Cette documentation contient très probablement des bogues ; si vous en découvrez, veuillez les signaler ici.