Configuração de DevOps detalhes da solicitação de mudança no pipeline
Configure como as informações de fechamento, o estado de mudança e os campos de solicitação de mudança são atualizados de dentro de um pipeline na etapa de mudança do pipeline.
A variável do sistema, por padrão, aponta para o subfluxo Padrão para fechar automaticamente uma mudança no sistema de base. O subfluxo de fechamento automático da mudança na conclusão do pipeline de DevOps (sn_devops.auto_close_change) determina como as informações de fechamento, o estado de mudança e os campos de solicitação de mudança são atualizados quando um pipeline é concluído. Se você quiser especificar um subfluxo personalizado que deve ser ativado quando um pipeline for concluído, poderá clonar esse subfluxo e personalizá-lo de acordo com seus requisitos.
As informações de fechamento e os atributos da solicitação de mudança estão contidos no objeto changeRequestDetails.
Fechar mudança automaticamente
Defina o parâmetro autoCloseChange como verdadeiro/falso no objeto changeRequestDetails ao criar uma mudança a partir de um pipeline para atualizar os campos Código de fechamento e Anotações de fechamento e fechar a solicitação de mudança quando um pipeline for concluído. Os valores do campo Data de início real e Data de término real também são atualizados quando o pipeline é concluído. Os valores de data são baseados na hora de início do pipeline ou na hora de início da primeira fase do pipeline e na hora de término do pipeline ou na hora de término da última fase do pipeline. As anotações de fechamento serão sufixadas com texto especificando que as informações de fechamento foram atualizadas com base no recurso de mudança de fechamento automático.
Se definido como verdadeiro, os campos Código de fechamento e Anotações de fechamento serão atualizados e o sistema tentará fechar a solicitação de mudança quando o pipeline for concluído.
Se definido como falso, os campos Código de fechamento e Anotações de fechamento serão atualizados quando um pipeline for concluído, mas a solicitação de mudança não será fechada.
Você também pode definir o valor do campo Mudança de fechamento automático para um pipeline na aplicação ServiceNow. Se você selecionar Atualizar mudança somente, os campos Código de fechamento e Anotações de fechamento serão atualizados quando um pipeline for concluído e, se você selecionar Atualizar e fechar mudança, a solicitação de mudança também será fechada junto com a atualização das informações de fechamento.
| Sinalizador autoCloseChange nos atributos de solicitação de mudança | Valor da coluna Mudança de fechamento automático (sn_devops_pipeline) | Estado final |
|---|---|---|
| Verdadeiro | Atualizar somente mudança | Atualiza a mudança e move o estado para fechar |
| Falso | Atualizar e fechar mudança | Somente atualiza a mudança |
| - | Atualizar somente mudança | Somente atualiza a mudança |
| - | Atualizar e fechar mudança | Atualiza a mudança e move o estado para fechar |
- O recurso de mudança de fechamento automático só se aplica a pipelines básicos com uma única mudança criada nele. Se houver várias mudanças, a mudança mais recente será considerada para fechamento automático.
- O recurso de mudança de fechamento automático não é compatível com Jenkins pipelines de estilo livre e solicitações de mudança em que o recurso de recibo de mudança está habilitado.
- Para um pipeline de versão Azure, o estado de conclusão do pipeline é derivado da consolidação do estado de cada fase no pipeline. Se pelo menos uma fase falhar, o pipeline será considerado malsucedido. Se pelo menos uma fase for parcialmente bem-sucedida, o pipeline será considerado bem-sucedido com problemas.
Informações de upgrade
Se você estiver atualizando, deverá configurar novamente a ferramenta de orquestração antes de definir o parâmetro autoCloseChange para os pipelines de compilação GitHub e Azure.
Definir código de fechamento
Defina o parâmetro setCloseCode: como verdadeiro/falso com base no comportamento desejado. O valor padrão é verdadeiro.
Se definido como verdadeiro, os campos Código de fechamento e Anotações de fechamento serão atualizados conforme especificado nos atributos da etapa de mudança e a solicitação de mudança será movida para a pós-implementação quando uma fase for concluída. Você pode substituir esse comportamento habilitando o recurso Código de fechamento automático. O recurso setCloseCode será desabilitado quando autoCloseChange estiver habilitado e definido como verdadeiro ou falso. Para obter mais informações, consulte Mudança de fechamento automático. Use o recurso autoCloseChange para obter detalhes mais precisos da solicitação de mudança.
Se definido como falso, quando o trabalho ou o pipeline for concluído, a solicitação de mudança não será atualizada e permanecerá no estado Implementar.
- As informações de fechamento na solicitação de mudança não estão definidas (os camposCódigo de fechamento e Anotações de fechamento são deixados em branco).
- Um link para a execução da etapa é adicionado às Anotações de trabalho.
Campos de solicitação de mudança
- Use o parâmetro attributes: para definir valores de campo.
- Use o endpoint DevOps - POST /devops/orchestration/changeControl da API DevOps.
- Se um campo especificado tiver um campo dependente necessário, você também deverá definir esse atributo.
- Se o atributo do campo obrigatório dependente não estiver definido, a solicitação de mudança e a execução da etapa relacionada serão canceladas e as anotações de trabalho serão atualizadas.
Os valores de campo no parâmetro attributes: são pares de chave-valor. Ou seja, a chave é o nome do campo no modelo e o valor são as informações a serem preenchidas no campo.
Você pode usar a API changeControl para especificar campos como type, cmdb_ci, template, assignment_group business_service, standard_change_template, chg_model e criar uma solicitação de mudança.
Quando os atributos são passados para mudança, a ordem de prioridade é a seguinte:
- Campos de solicitação de mudança ou API changeControl.
- Valores no registro de Etapa.
- Valores fornecidos no modelo de solicitação de mudança.
Todos os campos na tabela Solicitação de mudança [change_request] são compatíveis, exceto onde especificado.
| Campos incompatíveis |
|
| Campos compatíveis | Todos os campos restantes na tabela Solicitação de mudança [change_request]. |
Amostra de carga 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",
}
}
}