---
sourceDocument: Xanadu IT Service Management
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/it-service-management

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Xanadu IT Service Management

ft:clusterId :

    - itsm

bundleId :

    - itsm

workflow :

    - Technology


---

# ServiceNow ações personalizadas para GitLab

# ServiceNow ações personalizadas para GitLab {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 7 min. de leitura

Use as ações personalizadas \[ ServiceNow para GitLab para coletar dados relacionados à criação de solicitação de mudança, verificação do Sonar, registro de artefato e registro de pacote em seu pipeline GitLab com a ajuda da imagem do contêiner Docker.

Docker Imagem é um pacote de software que pode ser usado para executar uma aplicação. Esta imagem informa como um contêiner deve ser instanciado e quais componentes de software devem ser executados. Docker O contêiner é um ambiente virtual que combina o código da aplicação e todas as dependências necessárias para executar a aplicação. Para obter mais informações sobre o Docker, consulte a [documentação do Docker](https://docs.docker.com/get-started/overview/).  
Para configurar imagens Docker, as seguintes variáveis ambientais devem estar disponíveis na instância GitLab do projeto.

* SNOW_TOKEN: ServiceNow número de token. É uma variável mascarada e não será exibida nos trabalhos.
* SNOW_TOOLID: ServiceNow ID da ferramenta.
* SNOW_URL: ServiceNow URL da instância.

{#servicenow-custom-actions-for-gitlab__ul_nvc_2z5_yzb}Quando você configura um projeto GitLab, as variáveis ambientais são criadas para o projeto e os valores de variáveis configurados mais recentes são considerados. Se você for um cliente de upgrade, deverá reconfigurar seus projetos GitLab existentes ou adicionar manualmente as variáveis ambientais em sua instância GitLab. Para obter informações sobre como adicionar variáveis, consulte [a documentação do GitLab](https://docs.gitlab.com/ee/ci/variables/).

Ao adicionar a variável SNOW_TOKEN, você pode adquirir o token clicando no botão Copiar token no registro da ferramenta, localizado na tabela Ferramenta \[sn_devops_tool\].

As variáveis de ambiente devem ser atualizadas com os valores disponíveis no pop-up Configurar webhooks manualmente na página de registro da ferramenta. Para obter detalhes sobre como exibir os detalhes da conexão, consulte [Configurar webhooks a partir do registro da ferramenta](https://servicenow-prod.fluidtopics.net/1YeBcS62d9_OTF8TnC3W7Q "Configure webhooks do registro da ferramenta para enviar dados para Velocidade de mudança para DevOps depois que a ferramenta estiver conectada.") e [Configurar webhooks em GitLab manualmente](https://servicenow-prod.fluidtopics.net/2IGl1Zvcz27l_VmQDNV5Yg "Configure manualmente os webhooks em GitLab para enviar notificações de trabalho e por push para a aplicação DevOps.").

## ServiceNow Imagem do Docker {#servicenow-custom-actions-for-gitlab__section_tys_cbd_zzb}

Você deve passar a ServiceNow Docker Image (servicenowdocker/sndevops:4.0.0) no pipeline antes de adicionar ações personalizadas ao pipeline. Você pode clonar o repositório público app-devops-gitlab localizado em <https://github.com/ServiceNow/app-devops-gitlab>e criar a imagem do Docker executando os seguintes comandos:

    docker build -t servicenowdocker/sndevops:4.0.0

    docker push servicenowdocker/sndevops:4.0.0

Você pode adicionar a imagem do Docker no início do arquivo .yml. Você não precisa adicioná-lo para cada trabalho separadamente.  
Nota:  
Se você quiser usar várias imagens, adicione-as nos níveis de trabalho.

Você também pode personalizar o repositório público app-devops-gitlab e criar sua própria imagem do Docker para passar no pipeline.

## ServiceNow Etapa de mudança do DevOps {#servicenow-custom-actions-for-gitlab__section_w34_zw5_yzb}

Adicione a etapa personalizada ServiceNow DevOps Change no nível do trabalho para criar uma mudança em sua instância da ServiceNow. Por exemplo:


    stages:
      - DevOpsChangeApproval

    ServiceNow DevOps Change:
      stage: DevOpsChangeApproval
      image: servicenowdocker/sndevops:4.0.0
      script: 
        - sndevopscli create change -p "{\"changeStepDetails\":{\"timeout\":3600,\"interval\":100},\"attributes\":{\"short_description\":\"Software Deployment\",\"description\":\"Software Deployment.\",\"assignment_group\":\"xxxxxxxxx\",\"implementation_plan\":\"Software update is tested and results can be found in Test Summaries Tab.\",\"backout_plan\":\"When software fails in production, the previous software release will be re-deployed.\",\"test_plan\":\"Testing if the software was successfully deployed or not\"}}"

Nota:  
Se você estiver usando a etapa de mudança do Docker e a etapa de mudança de instrução manual quando:, certifique-se de adicioná-las em diferentes níveis de trabalho.

Você deve inserir os valores de entrada para esta ação personalizada como uma cadeia de caracteres no formato JSON.  
* changeStepDetails: \[opcional\] Contém os detalhes do tempo limite e do intervalo.
* intervalo: \[opcional\] O tempo em segundos de espera entre tentativas da API. O valor padrão é 100 segundos.
* timeout: \[opcional\] O tempo máximo em segundos de espera até que a ação falhe. O valor padrão é 3600 segundos.  
  Nota:  
  Quando o valor de tempo limite também está disponível aqui no executor de tempo limite no GitLab, o valor de tempo limite que é anterior é considerado.
* atributos: \[opcional\] Os detalhes do atributo da solicitação de mudança devem ser usados ao criar a mudança na instância ServiceNow. A solicitação de mudança é um objeto JSON entre chaves {} que contém pares de chave-valor separados por uma vírgula (,). Um par de chave-valor consiste em uma chave e um valor separados por dois pontos (:). As chaves compatíveis com o par chave-valor são short_description, description, assign_group, execution_plan, backout_plan, test_plan e assim por diante.

{#servicenow-custom-actions-for-gitlab__ul_szf_4bd_zzb}  
Nota:  
O nome da etapa de mudança deve conter a palavra-chave ServiceNow DevOps Change, que é o nome do trabalho.

## ServiceNow Resultados do SonarScan do DevOps {#servicenow-custom-actions-for-gitlab__section_osj_zw5_yzb}

Adicione a etapa personalizada ServiceNow Resultados do SonarScan do DevOps no nível do trabalho para criar um resumo do Sonar em sua instância da ServiceNow. Por exemplo:


    stages:
      - DevOpsSonarStage

    ServiceNow DevOps SonarScan Results:
      stage: DevOpsSonarStage
      image: servicenowdocker/sndevops:4.0.0
      script: 
        - sndevopscli create sonar -url 'https://sonarcloud.io' -projectKey 'devsystem2019_TestImportTest'

* url: \[obrigatório\] Especifica a URL do Sonar.
* projectKey: \[obrigatório\] Especifica a chave do projeto do Sonar.

{#servicenow-custom-actions-for-gitlab__ul_nrg_hbd_zzb}  
Nota:  
O nome da etapa do Sonar deve ser igual ao nome do trabalho, que é ServiceNow DevOps SonarScan Results.  

Limitação
:   Ao criar resultados de resumo de qualidade de software, a variável de ambiente CI_MERGE_REQUEST_SOURCE_BRANCH_NAME será usada para pipelines de mesclagem e CI_DEFAULT_BRANCH será usada para pipelines de marcador porque a variável CI_COMMIT_BRANCH não está disponível para pipelines de mesclagem ou de marcador. Para obter mais informações, consulte [a documentação do GitLab](https://docs.gitlab.com/ee/ci/variables/predefined_variables.html).

## Registrar artefato {#servicenow-custom-actions-for-gitlab__section_dmt_zw5_yzb}

Adicione a etapa personalizada do artefato no nível do trabalho para registrar um artefato em sua instância da ServiceNow. Por exemplo:


    stages:
      - artifact

    artifact:
      stage: artifact
      image: servicenowdocker/sndevops:4.0.0
      script: 
        - sndevopscli create artifact -a "[{\"name\":\"Artifact-${CI_JOB_NAME}\",\"repositoryName\":\"Repo\",\"version\":\"1.${CI_JOB_ID}.0\"}]"
     
Você deve inserir os valores de entrada para esta ação personalizada como uma cadeia de caracteres no formato JSON.

-a: \[obrigatório\] Especifica detalhes do artefato.

## Registrar pacote {#servicenow-custom-actions-for-gitlab__section_jnc_tx5_yzb}

Adicione a etapa personalizada de pacote no nível do trabalho para registrar um pacote em sua instância da ServiceNow. Por exemplo:


    stages:
      - package

    package:
      stage: package
      image: servicenowdocker/sndevops:4.0.0
      script: 
        - sndevopscli create package -n "Package2" -a "[{\"name\":\"Artifact-${CI_JOB_NAME}\",\"repositoryName\":\"Repo\" ,\"version\":\"1.${CI_JOB_ID}.0\"}]"

Você deve inserir os valores de entrada para esta ação personalizada como uma cadeia de caracteres no formato JSON.

-n: \[obrigatório\] Especifica o nome do pacote.

## Obter mudança {#servicenow-custom-actions-for-gitlab__section_h34_tyw_v1c}

Adicione no nível do trabalho para obter changeRequestNumber da instância ServiceNow com os changeDetails fornecidos para identificar a solicitação de mudança.  
Por exemplo:



    stages:
      - DevOpsGetChange

    ServiceNow DevOps Get Change:
      stage: DevOpsGetChange
      image: servicenowdocker/sndevops:4.0.0
      script: 
        - sndevopscli get change -p "{\"buildNumber\":${CHG_JOB_ID},\"stageName\":\"ServiceNow DevOps Change Step\",\"pipelineName\":\"GitlabDockerGetAndUpdateChange\"}"

    -p: It stands for changeDetails. The change details to be used for identifying change request in ServiceNow instance. The change details is a JSON object surrounded by curly braces {} containing key-value pair separated by a comma ,. A key-value pair consists of a key and a value separated by a colon :. The keys supported in key-value pair are buildNumber, pipelineName, stageName

    buildNumber: [mandatory]
    This specifies ID of the Job where we have created change request.

    stageName: [mandatory]
    This specifies the Job name where we have created change request..

    pipelineName: [mandatory]
    This specifies the pipeline name.

    Outputs:
      sndevopschg.json file created with content: {
        "status": "SUCCESS",
        "changeRequestNumber": "CHGXXXXX"
      }
      
      changeRequestNumber: Change Request Number found for the given change details
      status: To know the status of the Change Request GET.

## Atualizar mudança {#servicenow-custom-actions-for-gitlab__section_efb_lyw_v1c}

Adicione no nível de trabalho para atualizar a mudança na instância ServiceNow para o changeRequestNumber fornecido como entrada junto com changeRequestDetails.  
Por exemplo:


    stages:
      - DevOpsUpdateChangeStage

    ServiceNow DevOps Update Change:
      stage: DevOpsUpdateChangeStage
      image: servicenowdocker/sndevops:4.0.0
      script: 
        - sndevopscli update change -n 'CHGXXXXXX' -p "{\"short_description\":\"G Venkata12345 Automated Software Deployment\",\"description\":\"Automated Software Deployment.\",\"assignment_group\":\"XXXXX\",\"implementation_plan\":\"Software update is tested and results can be found in Test Summaries Tab.\",\"backout_plan\":\"When software fails in production, the previous software release will be re-deployed.\",\"test_plan\":\"Testing if the software was successfully deployed or not\"}"

    -n [Not mandatory if we have sndevopschg.json in our pipeline yml]: It stands for changeRequestNumber. The change request number to identify a unique change request. 
       Precedence of choosing changeRequestNumber: 
         - changeRequestNumber mentioned in the pipeline yml
         - changeRequestNumber stored in sndevopschg.json.

    -p : It stands for changeDetails. The change details to be used for Updating the change request information identified by the specified change request number with the key-value pairs. The change details is a JSON object surrounded by curly braces {} containing key-value pair separated by a comma ,. A key-value pair consists of a key and a value separated by a colon :. The keys supported in key-value pair are short_description, state, description, work_notes ..so on

    OR
      - sndevopscli update change -p "{\"short_description\":\"Updated Automated Software Deployment\",\"description\":\"Automated Software Deployment.\",\"assignment_group\":\"XXXXXXXXXX\",\"implementation_plan\":\"Software update is tested and results can be found in Test Summaries Tab.\",\"backout_plan\":\"When software fails in production, the previous software release will be re-deployed.\",\"test_plan\":\"Testing if the software was successfully deployed or not\"}"

    NOTE: State should be specified at last in case if you are update the state of change request.
    - sndevopscli update change -p "{\"short_description\":\"Updated Automated Software Deployment\",\"description\":\"Automated Software Deployment.\",\"assignment_group\":\"XXXXXXXXXX\",\"implementation_plan\":\"Software update is tested and results can be found in Test Summaries Tab.\",\"backout_plan\":\"When software fails in production, the previous software release will be re-deployed.\",\"test_plan\":\"Testing if the software was successfully deployed or not\","state":"3"}'

## Fechar mudança automaticamente {#servicenow-custom-actions-for-gitlab__section_adl_hzw_v1c}

Incorpore a mudança de fechamento automático na instância ServiceNow. Para obter informações detalhadas sobre o fechamento automático, consulte [Configuração de DevOps detalhes da solicitação de mudança no pipeline](https://servicenow-prod.fluidtopics.net/FOHkGJCsddLYGIN5A_pB~g "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.").  
Por exemplo:


    stages:
      - changeapproval

    ServiceNow DevOps Change Step:
      stage: changeapproval
      image: servicenowdocker/sndevops:4.0.0
      script: 
         - sndevopscli create change -p "{\"changeStepDetails\":{\"timeout\":3600,\"interval\":100},\"autoCloseChange\":true,\"attributes\":{\"short_description\":\"G Venkata Automated Software Deployment\",\"description\":\"Automated Software Deployment.\",\"assignment_group\":\"xxxxxxxx\",\"implementation_plan\":\"Software update is tested and results can be found in Test Summaries Tab.\",\"backout_plan\":\"When software fails in production, the previous software release will be re-deployed.\",\"test_plan\":\"Testing if the software was successfully deployed or not\"}}"
      
    autoCloseChange: [optional] : Boolean value


