Configurer DevOps les détails de la demande de changement dans le pipeline

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 6 minutes de lecture
  • Configurez la façon dont les champs Informations sur la fermeture, État du changement et Demande de changement sont mis à jour à partir d’un pipeline dans l’étape de changement du pipeline.

    Remarque :
    La configuration des détails d’une demande de changement à partir d’un GitLab pipeline n’est pas prise en charge.

    Par défaut, la variable système pointe vers le flux secondaire Par défaut pour fermer automatiquement un changement dans le système de base. Le flux secondaire de fermeture automatique du changement à l’achèvement du pipeline DevOps (sn_devops.auto_close_change) détermine la façon dont les champs informations de fermeture, état du changement et demande de changement sont mis à jour lorsqu’un pipeline est terminé. Si vous souhaitez spécifier un flux secondaire personnalisé qui doit être activé lorsqu’un pipeline est terminé, vous pouvez cloner ce flux secondaire et le personnaliser en fonction de vos besoins.

    Les informations sur la fermeture et les attributs de demande de changement sont contenus dans l’objet changeRequestDetails .

    Changement de fermeture automatique

    Définissez le autoCloseChange paramètre sur vrai/faux dans l’objet changeRequestDetails lors de la création d’un changement à partir d’un pipeline pour mettre à jour les champs Code de fermeture et Notes de fermeture et fermer la demande de changement lorsqu’un pipeline est terminé. Les valeurs des champs Date de début réelle et Date de fin réelle sont également mises à jour lorsque le pipeline est terminé. Les valeurs de date sont basées sur l’heure de début du pipeline ou l’heure de début de la première étape du pipeline, ainsi que l’heure de fin du pipeline ou l’heure de fin de la dernière étape du pipeline. Les notes de fermeture seront suivies d’un texte précisant que les informations de fermeture ont été mises à jour en fonction de la fonctionnalité de changement de fermeture automatique.

    Si la valeur est définie sur vrai, les champs Code de fermeture et Notes de fermeture seront mis à jour et le système tentera de fermer la demande de changement lorsque le pipeline sera terminé.

    Si la valeur est définie sur faux, les champs Code de fermeture et Notes de fermeture sont mis à jour lorsqu’un pipeline est terminé, mais la demande de changement n’est pas fermée.

    Vous pouvez également définir la valeur du champ Changement de fermeture automatique d’un pipeline dans l’application ServiceNow. Si vous sélectionnez Mettre à jour le changement uniquement, les champs Code de fermeture et Notes de fermeture sont mis à jour lorsqu’un pipeline est terminé, et si vous sélectionnez Mettre à jour et fermer le changement, la demande de changement est également fermée avec la mise à jour des informations de fermeture.

    Selon que le changement de fermeture automatique est spécifié dans le pipeline ou dans la colonne, l’état final pris en compte est le suivant :
    marqueur autoCloseChange dans les attributs de demande de changement Fermeture automatique Changer la valeur de colonne (sn_devops_pipeline) État final
    Vrai Mettre à jour le changement uniquement Met à jour le changement et passe l’état à Fermé
    Faux Mettre à jour et fermer le changement Uniquement des mises à jour du changement
    - Mettre à jour le changement uniquement Uniquement des mises à jour du changement
    - Mettre à jour et fermer le changement Met à jour le changement et passe l’état à Fermé
    Remarque :
    La valeur spécifiée pour l’attribut autoCloseChange dans le pipeline a priorité sur la valeur spécifiée dans la colonne Changement de fermeture automatique dans ServiceNow.
    Remarque :
    • La fonctionnalité de changement de fermeture automatique ne s’applique qu’aux pipelines de base avec un seul changement créé. S’il y a plusieurs changements, le dernier changement sera pris en compte pour la fermeture automatique.
    • La fonctionnalité de fermeture automatique du changement n’est pas prise en charge pour Jenkins les pipelines Freestyle et les demandes de changement lorsque la fonctionnalité de réception du changement est activée.
    • Pour un pipeline de Azure mise en production, l’état d’achèvement du pipeline est dérivé en consolidant l’état de chaque étape du pipeline. Si ne serait-ce qu’une étape échoue, le pipeline sera considéré comme ayant échoué. Si ne serait-ce qu’une étape est partiellement réussie, le pipeline sera considéré comme ayant réussi avec des problèmes.

    Informations sur la mise à niveau

    Si vous effectuez une mise à niveau, vous devez reconfigurer votre outil d’orchestration avant de définir le paramètre autoCloseChange pour GitHub les pipelines et Azure les pipelines de build.

    Définir le code de fermeture

    Définissez le setCloseCode: paramètre sur vrai/faux en fonction du comportement souhaité. La valeur par défaut est vrai.

    Si la valeur est définie sur vrai, les champs Code de fermeture et Notes de fermeture sont mis à jour comme spécifié dans les attributs d’étape de changement et la demande de changement passe en post-implémentation lorsqu’une étape est terminée. Vous pouvez remplacer ce comportement en activant la fonctionnalité Code de fermeture automatique . La fonctionnalité setCloseCode est désactivée lorsque la fonctionnalité autoCloseChange est activée et définie sur vrai ou faux. Pour plus d’informations, reportez-vous à la section Fermer automatiquement le changement. Utilisez la fonctionnalité autoCloseChange pour obtenir des détails de demande de changement plus précis.

    Si elle est définie sur faux, lorsque la tâche ou le pipeline est terminé, la demande de changement n’est pas mise à jour et reste à l’état Implémenter.

    • Les informations sur la fermeture dans la demande de changement ne sont pas définies (les champs Code de fermeture et Notes de fermeture sont laissés vides).
    • Un lien vers l’exécution de l’étape est ajouté aux notes de travail.

    Champs de demande de changement

    Définissez les valeurs de champ de demande de changement dans le pipeline pour le modèle de demande de changement spécifié.
    Remarque :
    • Si un champ spécifié comporte un champ dépendant requis, vous devez également définir cet attribut.
    • Si l’attribut du champ obligatoire dépendant n’est pas défini, la demande de changement et l’exécution de l’étape connexe sont annulées et les notes de travail sont mises à jour.

    Les valeurs de champ dans le paramètre sont des attributes: paires clé-valeur. En d’autres termes, la clé est le nom du champ dans le modèle et la valeur est les informations à renseigner dans le champ.

    Vous pouvez utiliser l’API changeControl pour spécifier des champs tels que type, , cmdb_ci, chg_modeltemplateassignment_group business_servicestandard_change_template, , et créer une demande de changement.

    Lorsque des attributs sont transmis pour le changement, l’ordre de priorité est le suivant :

    1. Champs de demande de changement ou API changeControl.
    2. Valeurs de l’enregistrement de l’étape.
    3. Valeurs fournies dans le modèle de demande de changement.
    Remarque :
    Lorsque vous configurez des demandes de changement à partir du pipeline, les champs de type de changement et de modèle proviennent toujours d’une seule source. Vous ne pouvez pas utiliser une combinaison d’attributs de la demande API et du formulaire de demande de changement.

    Tous les champs de la table Demande de changement [change_request] sont pris en charge, sauf indication contraire.

    Tableau 1. Champs de demande de changement pris en charge
    Champs non pris en charge
    • risk
    • impact
    • Numéro
    • sys_id
    • risk_impact_analysis
    Champs pris en charge Tous les champs restants dans la table Demande de changement [change_request].
    Remarque :
    Le nom d’attribut doit correspondre au nom du champ de demande de changement et la valeur spécifiée doit être valide.

    Exemple de charge utile JSON

    {
       "callbackURL":"http://192.168.0.4:3000/jenkins/sn-devops/pipeline_839b7605-b98d-4831-bc87-96829de7da37",
       "orchestrationTaskURL":"http://192.168.0.4:3000/jenkins/job/java_sample_tests#deploy/",
       "isMultiBranch":"false",
       "orchestrationTaskName":"java_sample_tests#deploy",
       "orchestrationTaskDetails":{
          "triggerType":"upstream",
          "upstreamTaskExecutionURL":"http://192.168.0.4:3000/jenkins/job/java_sample_tests/129/execution/node/35/wfapi/describe",
          "taskExecutionURL":"http://192.168.0.4:3000/jenkins/job/java_sample_tests/129/execution/node/50/wfapi/describe"
       },
       "changeRequestDetails":{
          "setCloseCode":false,
          "attributes":{
             "sys_created_by":"1832fbe1d701120035ae23c7ce610369",
             "sys_updated_by":"56826bf03710200044e0bfc8bcbe5dca",
             "requested_by":{
                "name":"Abel Tuter"
             },
             "watch_list":[
                {
                   "name":"Abel Tuter"
                },
                {
                   "name":"Aileen Mottern"
                },
                {
                   "name":"Alejandra Prenatt"
                },
                "56826bf03710200044e0bfc8bcbe5dca"
             ],
             "work_notes_list":[
                "56826bf03710200044e0bfc8bcbe5dca",
                "46c6f9efa9fe198101ddf5eed9adf6e7",
                "d8f57f140b20220050192f15d6673a98"
             ],
             "assigned_to":"1832fbe1d701120035ae23c7ce610369",
             "category":"Service",
             "sys_created_on":"2021-02-09 18:58:41",
             "priority":"2",
          }
       }
    }

    Exemples de pipelines

    Figure 1. Détails de la demande de changement : pipeline Azure
    Détails du changement DevOps Azure.
    Figure 2. Paramètres des niveaux de poste — Jenkins
    JenkinsJobSettings.
    Figure 3. Détails de la demande de changement : Jenkins
    Détails du changement DevOps Jenkins .
    Figure 4. Détails de la demande de changement : GitHub
    Détails du changement DevOps GitHub.