Configurer les détails de la demande de changement DevOps dans le pipeline
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.
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 Fermer automatiquement le changement à l'achèvement du pipeline DevOps (sn_devops.auto_close_change) détermine le mode de mise à jour des champs Informations sur la fermeture, État du changement et Demande de changement 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 attributs d'informations sur la fermeture et de demande de changement sont contenus dans l'objet changeRequestDetails.
Changement de fermeture automatique
Si la valeur est définie sur true, les champs Code de fermeture et Notes de fermeture sont mis à jour et le système tente de fermer la demande de changement à l'achèvement du pipeline.
Si la valeur est définie sur false, les champs Code de fermeture et Notes de fermeture sont mis à jour à l'achèvement d'un pipeline, mais la demande de changement n'est pas fermée.
Vous pouvez également définir la valeur du champ Fermer automatiquement le changement 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 à l'achèvement d'un pipeline ; si vous sélectionnez Mettre à jour et fermer le changement, la demande de changement est également fermée et les informations sur la fermeture sont mises à jour.
| Marqueur autoCloseChange dans les attributs de demande de changement | Valeur de la colonne Fermer automatiquement le changement (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 | Met à jour uniquement le changement |
| - | Mettre à jour le changement uniquement | Met à jour uniquement le changement |
| - | Mettre à jour et fermer le changement | Met à jour le changement et passe l'état à Fermé |
- La fonctionnalité de fermeture automatique du changement ne s'applique qu'aux pipelines de base avec un seul changement créé. S'il y a plusieurs changements, le dernier changement est pris en compte pour la fermeture automatique.
- La fonctionnalité de fermeture automatique du changement n'est pas prise en charge pour les pipelines Freestyle et les demandes de changement Jenkins lorsque la fonctionnalité de reçu du changement est activée.
- Pour un pipeline de mise en production Azure, l'état d'achèvement du pipeline est dérivé en consolidant l'état de chaque étape du pipeline. Même si une seule étape échoue, le pipeline est considéré comme ayant échoué. Même si une seule étape réussit partiellement, le pipeline est considéré comme ayant réussi, mais 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 les pipelines de version GitHub et Azure.
Définir le code de fermeture
Définissez le paramètre setCloseCode: sur true/false en fonction du comportement souhaité. La valeur par défaut est true.
Si la valeur est définie sur true, les champs Code de fermeture et Notes de fermeture sont mis à jour selon les attributs d'étape de changement, et la demande de changement passe en post-implémentation à l'achèvement d'une étape. 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 true ou false. Pour plus d'informations, consultez 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 false, à l'achèvement de la tâche ou du pipeline, 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 vides).
- Un lien vers l'exécution de l'étape est ajouté aux notes de travail.
Champs de demande de changement
- Utilisez le paramètre attributes: pour définir des valeurs de champ.
- Utilisez le point de terminaison DevOps - POST /devops/orchestration/changeControl de l'API DevOps.
- Si un champ spécifié comporte un champ dépendant obligatoire, 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 attributes: sont des paires clé-valeur. En d'autres termes, la clé correspond au nom du champ dans le modèle et la valeur aux informations à renseigner dans le champ.
Vous pouvez utiliser l'API changeControl pour spécifier des champs tels que type, cmdb_ci, template, assignment_group business_service, standard_change_template, chg_model et créer une demande de changement.
Lorsque des attributs sont transmis pour le changement, l'ordre de priorité est le suivant :
- Champs de demande de changement ou API changeControl.
- Valeurs de l'enregistrement d'étape.
- Valeurs fournies dans le modèle de demande de changement.
Tous les champs de la table Demande de changement [change_request] sont pris en charge, sauf indication contraire.
| Champs non pris en charge |
|
| Champs pris en charge | Tous les champs restants dans la table Demande de changement [change_request]. |
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",
}
}
}