Configuração de DevOps detalhes da solicitação de mudança no pipeline

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 5 min. de leitura
  • 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.

    Nota:
    Não há suporte para a configuração de detalhes da solicitação de mudança de dentro de um pipeline GitLab.

    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.

    Dependendo de se a mudança de fechamento automático está especificada no pipeline ou na coluna, o estado final considerado será o seguinte:
    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
    Nota:
    O valor especificado para o atributo autoCloseChange no pipeline tem precedência sobre o valor especificado na coluna Mudança de fechamento automático em ServiceNow.
    Nota:
    • 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

    Defina valores de campo de solicitação de mudança no pipeline para o modelo de solicitação de mudança especificado.
    Nota:
    • 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:

    1. Campos de solicitação de mudança ou API changeControl.
    2. Valores no registro de Etapa.
    3. Valores fornecidos no modelo de solicitação de mudança.
    Nota:
    Ao configurar solicitações de mudança de dentro do pipeline, os campos de tipo de mudança e modelo são sempre obtidos de uma origem. Você não pode usar uma combinação de atributos da solicitação de API e do formulário 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.

    Tabela 1. Campos de solicitação de mudança compatíveis
    Campos incompatíveis
    • risco
    • impacto
    • número
    • sys_id
    • análise_de_impacto_risco
    Campos compatíveis Todos os campos restantes na tabela Solicitação de mudança [change_request].
    Nota:
    O nome do atributo deve corresponder ao nome do campo da solicitação de mudança e o valor especificado deve ser válido.

    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",
          }
       }
    }

    Exemplos de pipeline

    Figura 1. Detalhes da solicitação de mudança - Pipeline do Azure
    Detalhes da mudança do DevOps Azure.
    Figura 2. Configurações de nível de trabalho — Jenkins
    JenkinsJobSettings.
    Figura 3. Detalhes da solicitação de mudança - Jenkins
    Detalhes da mudança de DevOps Jenkins.
    Figura 4. Detalhes da solicitação de mudança - GitHub
    Detalhes da mudança do DevOps GitHub.