DevOps API

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 99 min. de leitura
  • . DevOps A API fornece endpoints que permitem a interação com externos DevOps ferramentas.

    Esta REST API permite que os integradores:

    • Recupere o disponível DevOps ferramentas associadas a uma instância.
    • Recupere o objeto de esquema para um recurso de código, plano ou recurso de orquestração.
    • Verifique se uma tarefa de orquestração está sob controle de mudanças e verifique seu status de controle de mudanças.
    • Crie retornos de chamada para associar a execuções de tarefa no controle de mudanças.
    • Envie várias cargas úteis de evento, que são transformadas em objetos normalizados e armazenadas como objetos de código, orquestração e plano.
    • PESQUISE uma confirmação, ramificação ou repositório usando consultas codificadas e critérios de pesquisa/classificação específicos.
    • Registre versões e pacotes de artefatos junto com a execução e confirmações de pipeline associadas.
    • Criar e gerenciar eventos de aplicações e ferramentas de integração.

    Para obter informações adicionais, confira DevOps Config.

    A partir da v2, esta API oferece suporte à autenticação baseada em token. Os tokens podem ser adquiridos clicando em Token de cópia Botão no registro da ferramenta, localizado na tabela Ferramenta [sn_devops_tool]. O token pode ser usado em um cabeçalho de autorização no formato Autorização: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .
    Nota:
    Se os detalhes da Autenticação básica (nome de usuário e senha) forem fornecidos além de um cabeçalho de autorização com token, a Autenticação básica terá precedência.

    . devops.systemo usuário não está disponível em sua instância, use Alterne para este usuário depois que a autenticação baseada em token for bem-sucedida propriedade. Esta propriedade permite definir qualquer usuário que tenha a função sn_devops.integration, que é necessária para concluir a autenticação de token. Para obter informações, consulte DevOps Change Velocity properties.

    DevOps - OBTER /devops/code/schema

    Retorna o objeto de esquema para um recurso de código especificado: Confirmação, repositório ou ramificação.

    Depois de ter o objeto de esquema necessário, use-o para criar o corpo da solicitação para sua chamada POST correspondente; POST /code/commit , POST /code/repositório ou POST /code/ramificação .

    Nota:
    Este endpoint retorna somente os elementos do corpo da solicitação necessários.

    Formato de URL

    URL com controle de versão: /api/sn_devops//devops/code/schema

    URL padrão: /api/sn_devops/devops/code/schema

    Nota:
    As versões disponíveis são especificadas em REST API Explorer . Para REST APIs com script, há informações adicionais de versão no Formulário de serviço REST com script .

    Parâmetros de solicitação compatíveis

    Tabela 1. Parâmetros de caminho
    Nome Descrição
    api_version Opcional. Versão do endpoint a ser acessado. Por exemplo, v1 ou v2 . Especifique este valor somente para usar uma versão de endpoint diferente da mais recente.

    Tipo de dados: Cadeia de caracteres

    Tabela 2. Parâmetros de consulta
    Nome Descrição
    recurso Obrigatório. Tipo de esquema de recurso a ser retornado.

    Valores válidos (não diferenciam maiúsculas de minúsculas):

    • ramificação
    • confirmar
    • repositório

    Tipo de dados: Cadeia de caracteres

    Tabela 3. Solicitar parâmetros do corpo (XML ou JSON)
    Nome Descrição
    Nenhum(a)

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 4. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Tabela 5. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 6. Códigos de status
    Código do status Descrição
    200 Solicitação concluída com sucesso.
    401 Autenticação inválida ou ausente.
    500 Erro interno do servidor. Ocorreu um erro inesperado ao processar a solicitação. A resposta contém informações adicionais sobre o erro.

    Parâmetros do corpo da resposta

    Nome Descrição
    ramificação Descrição da ramificação na qual a confirmação do código foi feita.

    Tipo de dados: Objeto

    "branch": {
      "name": "String",
      "path": "String"
    }
    branch.name Nome da ramificação na qual a confirmação do código foi feita.

    Tipo de dados: Cadeia de caracteres

    branch.path Caminho relativo da ramificação.

    Tipo de dados: Cadeia de caracteres

    confirmações Descrição das confirmações.

    Tipo de dados: Matriz de objetos

    "commits": [
      {
        "committedDate": "String",
        "committer": {Object},
        "details": [Array],
        "id": "String",
        "url": "String"      
      }
    ]
    commits.committedDate Data/hora em que o código foi confirmado na origem DevOpsferramenta.

    Tipo de dados: Cadeia de caracteres

    Formato: ISO 8601 com deslocamento de fuso horário

    Por exemplo: 1970-01-01T08:15:30-05:00

    commits.committer Descrição da pessoa/entidade que solicitou a confirmação.

    Tipo de dados: Objeto

    "committer": {
      "email": "String"
    }
    commits.committer.email Endereço de e-mail da pessoa que solicitou a confirmação.

    Tipo de dados: Cadeia de caracteres

    commits.details Detalhes da confirmação.
    Nota:
    Incluir detalhes em uma confirmação não é obrigatório. Este endpoint retornará uma matriz vazia para obter detalhes se eles não estiverem incluídos na confirmação.

    Tipo de dados: Matriz de objetos

    "details": [
      {
        "action": "String",
        "additions": Number,
        "changes": Number,
        "deletions": Number,
        "file": "String",
        "totalChanges": Number
      }
    ]
    commits.details.action Ação que foi executada no arquivo.

    Tipo de dados: Cadeia de caracteres

    commits.details.additions Número total de adições no arquivo.

    Tipo de dados: Número

    commits.details.changes Número total de mudanças feitas.

    Tipo de dados: Número

    commits.details.deletions Número total de exclusões no arquivo.

    Tipo de dados: Número

    commits.details.file Caminho do arquivo que foi modificado em relação à ramificação.

    Tipo de dados: Cadeia de caracteres

    commits.details.totalChanges Número total de adições e exclusões.

    Tipo de dados: Número

    commits.id Identificador da plataforma de origem ou SHA de confirmação.

    Tipo de dados: Cadeia de caracteres

    commits.url URL da confirmação, como "https://github.com/mycompany/mobileplatform/commit/3fa85f6457174562b3fc2c963f66afa6".

    Tipo de dados: Cadeia de caracteres

    nome Nome da ramificação ou repositório, como "Master" ou "Platform-Mobile".

    Tipo de dados: Cadeia de caracteres

    caminho Caminho relativo da ramificação.

    Tipo de dados: Cadeia de caracteres

    repositório Descrição do repositório no qual a confirmação foi feita.

    Tipo de dados: Objeto

    "repository": {
      "name": "String",
      "url": "String"
    }
    repository.name Nome do repositório.

    Tipo de dados: Cadeia de caracteres

    repository.url URL do repositório na origem DevOpsferramenta.

    Tipo de dados: Cadeia de caracteres

    URL URL do repositório, como "https://github.com/mycompany/mobileplatform".

    Tipo de dados: Cadeia de caracteres

    Solicitação de cURL de amostra para ramificação

    curl "https://instance.servicenow.com/api/sn_devops/v1/devops/code/schema?resource=branch" \
    --request GET \
    --header "Accept:application/json" \
    --user "username":"password"
    
    {
       "result": {
          "name": "Master",
          "path": "refs/heads/master",
          "repository": {
             "name": "Platform-Mobile",
             "url": "https://github.com/mycompany/mobileplatform"
          }
       }
    }

    Solicitação de cURL de amostra para resource-commit

    curl "https://instance.servicenow.com/api/sn_devops/v1/devops/code/schema?resource=commit" \
    --request GET \
    --header "Accept:application/json" \
    --user "username":"password"
    
    {
       "result": {
          "repository": {
             "name": "Platform-Mobile",
             "url": "https://github.com/mycompany/mobileplatform"
          },
          "branch": {
             "name": "refs/heads/master"
          },
          "commits": [
             {
                "committer": {
                   "email": "name@email.com"
                },
                "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                "url": "https://github.com/mycompany/mobileplatform/commit/3fa85f6457174562b3fc2c963f66afa6",
                "committedDate": "2022-01-01T08:15:30-05:00",
                "details": [
                   {
                      "action": "edit",
                      "changes": "",
                      "file": "/azure-pipelines.yml",
                      "additions": 1,
                      "deletions": 0,
                      "totalChanges": 1
                   }
                ]
             }
          ]
       }
    }

    Solicitação de cURL de amostra para repositório

    curl "https://instance.servicenow.com/api/sn_devops/v1/devops/code/schema?resource=repository" \
    --request GET \
    --header "Accept:application/json" \
    --user "username":"password"
    
    {
        "result": {
            "name": "Platform-Mobile",
            "url": "https://github.com/mycompany/mobileplatform"
        }
    }

    DevOps - OBTER /devops/onboarding/status

    Retorna o status atual do evento de integração especificado que é processado ou está sendo processado de forma assíncrona pelo DevOps serviço.

    Formato de URL

    URL com controle de versão: /api/sn_devops//devops/onboarding/status

    URL padrão: /api/sn_devops/devops/onboarding/status

    Nota:
    As versões disponíveis são especificadas em REST API Explorer . Para REST APIs com script, há informações adicionais de versão no Formulário de serviço REST com script .

    Parâmetros de solicitação compatíveis

    Tabela 7. Parâmetros de caminho
    Nome Descrição
    api_version Opcional. Versão do endpoint a ser acessado. Por exemplo, v1 ou v2 . Especifique este valor somente para usar uma versão de endpoint diferente da mais recente.

    Tipo de dados: Cadeia de caracteres

    Tabela 8. Parâmetros de consulta
    Nome Descrição
    id Identificador exclusivo do evento de integração cujo status será retornado. Este valor é fornecido nos resultados de retorno do endpoint que invocou a solicitação de evento, como devops/onboarding/app ou /devops/onboarding/tool .

    Tipo de dados: Cadeia de caracteres

    Tabela 9. Parâmetros do corpo da solicitação
    Nome Descrição
    Nenhum(a)

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 10. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Tabela 11. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 12. Códigos de status
    Código do status Descrição
    200 Bem-sucedido. A solicitação foi processada com sucesso.
    202 Pendente - A solicitação de integração foi criada e DevOps o serviço está processando a solicitação.
    207 Sucesso parcial - A solicitação de integração foi criada e DevOps o serviço processará a solicitação.
    400 Falha - Falha no evento de integração.
    404 Falha - O endpoint não conseguiu encontrar qualquer solicitação correspondente ao ID do evento especificado.

    Parâmetros do corpo da resposta

    Nome Descrição
    resultado Resultados da solicitação de integração.
    Tipo de dados: Objeto
    "result": {
      "code": "String",
      "importRequestsSysIds": "[Array],
      "messageDetails": {Object],
      "onboardingRequestID": "String",
      "status": "String"
    }
    result.code Código de status HTTP.

    Tipo de dados: Cadeia de caracteres

    ImportRequestsSysIds Lista de solicitações de importação que foram criadas como parte da solicitação de integração.

    Tipo de dados: Matriz de cadeias de caracteres

    Result.messageDetails Detalhes sobre o andamento do evento de integração.
    Tipo de dados: Objeto
    "messageDetails": {
      "apps": [Array],
      "pipelines": [Array],
      "plans": [Array],
      "repositories": [Array],
      "status": "String",
      "toolResponse": [Array]
    }
    Result.messageDetails.apps Define os aplicativos a serem criados no associado ServiceNow instância.

    Tipo de dados: Matriz de objetos

    "apps": [{
      "appId": "String",
      "message": "String",
      "name": "String",
      "status": "String",
    }]
    Result.messageDetails.apps.appId Sys_id da aplicação que foi gerada quando a aplicação foi integrada.

    Tipo de dados: Cadeia de caracteres

    Tabela: Apps [sn_devops_app]

    MessageDetails.apps.message Mensagem que descreve o status da integração da aplicação.

    Tipo de dados: Cadeia de caracteres

    result.messageDetails.apps.name Nome da aplicação que está sendo integrada.

    Tipo de dados: Cadeia de caracteres

    MessageDetails.apps.status Status atual da integração da aplicação.
    Valores possíveis:
    • Reprovado
    • Sucesso parcial
    • Êxito

    Tipo de dados: Cadeia de caracteres

    MessageDetails.Pipelines.Pipelines Lista de pipelines associados ao evento de integração e seus detalhes correspondentes.

    Tipo de dados: Matriz de objetos

    "pipelines": [{
      "changeStepAssociation": [Array],
      "errors": "String",
      "message": "String",
      "name": "String",
      "status": "String",
    }]
    result.messageDetails.pipelines.changeStepAssociation Matriz de objetos que descrevem todas as etapas de mudança associadas à integração.

    Tipo de dados: Matriz de objetos

    "changeStepAssociation": [{
      "changeStepName": "String",
      "status": "String",
      "summary": "String",
    }]
    result.messageDetails.pipelines.changeStepAssociation.changeStepName Nome da etapa de mudança.

    Tipo de dados: Cadeia de caracteres

    result.messageDetails.pipelines.changeStepAssociation.status Status da associação da etapa de mudança ao pipeline.
    Valores possíveis:
    • Reprovado
    • Êxito

    Tipo de dados: Cadeia de caracteres

    result.messageDetails.pipelines.changeStepAssociation.summary Resumo do status da associação da etapa de mudança.

    Tipo de dados: Cadeia de caracteres

    Result.messageDetails.Pipelines.Errors Lista de erros detectados ao associar o pipeline.

    Tipo de dados: Matriz

    MessageDetails.pipelines.message Mensagem que descreve o status da associação de pipeline.

    Tipo de dados: Cadeia de caracteres

    result.messageDetails.pipelines.name Nome do pipeline.

    Tipo de dados: Cadeia de caracteres

    Result.messageDetails.pipelines.status Status da associação de pipeline.

    Tipo de dados: Cadeia de caracteres

    result.messageDetails.plans Lista de planos associados ao evento de integração e seus detalhes correspondentes.

    Tipo de dados: Matriz de objetos

    "plans": [{
      "errors": "String",
      "message": "String",
      "name": "String",
      "status": "String",
    }]
    result.messageDetails.plans.errors Lista de erros detectados ao associar o plano.

    Tipo de dados: Matriz

    result.messageDetails.plans.message Mensagem que descreve o status da associação de pipeline.

    Tipo de dados: Cadeia de caracteres

    result.messageDetails.plans.name Nome do plano.

    Tipo de dados: Cadeia de caracteres

    result.messageDetails.plans.status Status da associação do plano.

    Tipo de dados: Cadeia de caracteres

    Result.messageDetails.Repositórios Lista de repositórios associados ao evento de integração e seus detalhes correspondentes.

    Tipo de dados: Matriz de objetos

    "repositories": [{
      "configureStatus": {Object}, 
      "name": "String",
      "status": "String",
    }]
    MessageDetails.repositórios.configureStatus Detalhes do status da configuração do webhook para o repositório.

    Tipo de dados: Objeto

    "configureStatus": {
      "message": "String",
      "status": "String",
    }
    MessageDetails.repositórios.configureStatus.message Mensagem que descreve o status da configuração atual do webhook.

    Tipo de dados: Cadeia de caracteres

    MessageDetails.repositórios.configureStatus.status Status da configuração do webhook.

    Tipo de dados: Cadeia de caracteres

    MessageDetails.Repositórios.message Mensagem que descreve o status de associação do repositório atual.

    Tipo de dados: Cadeia de caracteres

    result.messageDetails.repositories.name Nome do repositório.

    Tipo de dados: Cadeia de caracteres

    Result.messageDetails.repositórios.status Status da associação do repositório.

    Tipo de dados: Cadeia de caracteres

    MessageDetails.status Status da solicitação de integração.
    Valores possíveis:
    • Reprovado
    • Sucesso parcial
    • Êxito

    Tipo de dados: Cadeia de caracteres

    MessageDetails.toolResponse Lista de ferramentas a serem integradas no associado ServiceNow instância.

    Tipo de dados: Matriz de objetos

    "toolResponse": [{
      "configureStatus": {Object},
      "connectStatus": {Object},
      "createStatus": {Object},
      "discoveryStatus": {Object},
      "name": "String",
      "status": "String",
      "type": "String"
    }]
    MessageDetails.toolResponse.configureStatus Status da configuração da ferramenta. Em caso de sucesso, ele retorna statuse. message. Em caso de erro, ele retorna statuse. error.

    Tipo de dados: Objeto

    "configureStatus": {
      "error": "String",
      "message": "String",
      "status": "String"
    }
    MessageDetails.toolResponse.configureStatus.error Erros detectados durante a configuração da ferramenta.

    Tipo de dados: Cadeia de caracteres

    MessageDetails.toolResponse.configureStatus.message Mensagem que descreve o status bem-sucedido da configuração da ferramenta.

    Tipo de dados: Cadeia de caracteres

    MessageDetails.toolResponse.configureStatus.status Status da configuração da ferramenta.

    Tipo de dados: Cadeia de caracteres

    MessageDetails.toolResponse.connectStatus Status da conexão da ferramenta. Em caso de sucesso, ele retorna statuse. message. Em caso de erro, ele retorna statuse. error.

    Tipo de dados: Objeto

    "connectStatus": {
      "error": "String",
      "message": "String",
      "status": "String"
    }
    MessageDetails.toolResponse.connectStatus.error Erros detectados durante a conexão da ferramenta.

    Tipo de dados: Cadeia de caracteres

    MessageDetails.toolResponse.connectStatus.message Mensagem que descreve o status bem-sucedido da conexão da ferramenta.

    Tipo de dados: Cadeia de caracteres

    MessageDetails.toolResponse.connectStatus.status Status da conexão da ferramenta.

    Tipo de dados: Cadeia de caracteres

    MessageDetails.toolResponse.createStatus Status de criação da ferramenta. Em caso de sucesso, ele retorna statuse. message. Em caso de erro, ele retorna statuse. error.

    Tipo de dados: Objeto

    "createStatus": {
      "error": "String",
      "message": "String",
      "status": "String"
    }
    MessageDetails.toolResponse.createStatus.error Erros detectados durante a criação da ferramenta.

    Tipo de dados: Cadeia de caracteres

    MessageDetails.toolResponse.createStatus.message Mensagem que descreve o status bem-sucedido da criação da ferramenta.

    Tipo de dados: Cadeia de caracteres

    MessageDetails.toolResponse.createStatus.status Status da criação da ferramenta.

    Tipo de dados: Cadeia de caracteres

    Result.messageDetails.toolResponse.discoveryStatus Status da descoberta da ferramenta. Em caso de sucesso, ele retorna statuse. message. Em caso de erro, ele retorna statuse. error.

    Tipo de dados: Objeto

    "discoveryStatus": {
      "error": "String",
      "imports: [Array],
      "message": "String",
      "status": "String"
    }
    MessageDetails.toolResponse.discoveryStatus.error Erros detectados durante a descoberta da ferramenta.

    Tipo de dados: Cadeia de caracteres

    MessageDetails.toolResponse.discoveryStatus.Imports Lista de entidades que foram descobertas.

    Tipo de dados: Matriz de objetos

    "imports": [{
      "details": "String",
      "id": "String",
      "status": "String"
    }]
    result.messageDetails.toolResponse.discoveryStatus.imports.details Detalhes que descrevem a importação realizada.

    Tipo de dados: Cadeia de caracteres

    result.messageDetails.toolResponse.discoveryStatus.imports.id Sys_id da solicitação de importação.

    Tipo de dados: Cadeia de caracteres

    Tabela: sn_devops_m2m_inbound_event_import_request

    MessageDetails.toolResponse.discoveryStatus.imports.status Status da importação.

    Tipo de dados: Cadeia de caracteres

    MessageDetails.toolResponse.discoveryStatus.message Mensagem que descreve o status da descoberta da ferramenta.

    Tipo de dados: Cadeia de caracteres

    MessageDetails.toolResponse.discoveryStatus.status Status da descoberta da ferramenta.

    Tipo de dados: Cadeia de caracteres

    result.messageDetails.toolResponse.name Nome da ferramenta que está sendo integrada.

    Tipo de dados: Cadeia de caracteres

    Result.messageDetails.toolResponse.status Status da integração da ferramenta.

    Tipo de dados: Cadeia de caracteres

    Result.messageDetails.toolResponse.type Tipo de ferramenta, como Jira ou Jenkins.

    Tipo de dados: Cadeia de caracteres

    OnboardingRequestId Identificador exclusivo da solicitação de integração. Use este valor ao chamar devops/onboarding/status endpoint para obter o status do processo de integração da ferramenta associada.

    Tipo de dados: Cadeia de caracteres

    result.status Status da solicitação de integração.
    Valores possíveis:
    • Reprovado
    • Sucesso parcial
    • Êxito

    Tipo de dados: Cadeia de caracteres

    Solicitação de curl

    O exemplo a seguir mostra a solicitação de status de integração de uma ferramenta.

    curl -X GET "https://servicenow-instance/api/sn_devops/v1/devops/onboarding/status?id=IBE0001603" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -u "username":"password" \

    {
        "result": {
            "code": "207",
            "onboardingRequestID": "IBE0001603",
            "status": "partial-success",
            "messageDetails": {
                "status": "Partial Success",
                "toolResponse": [
                    {
                        "name": "Primary Azure",
                        "type": "Azure DevOps",
                        "status": "Partial Success",
                        "createStatus": {
                            "status": "Success",
                            "message": "Created successfully"
                        },
                        "connectStatus": {
                            "status": "Failed",
                            "error": "Method failed: (/testFirst/_apis/work/boards) with code: 401 - Invalid username/password combo"
                        }
                    },
                    {
                        "name": "Primary Jenkins",
                        "type": "Jenkins",
                        "status": "Success",
                        "createStatus": {
                            "status": "Success",
                            "message": "Created successfully"
                        },
                        "connectStatus": {
                            "status": "Success",
                            "message": "Connected successfully"
                        },
                        "discoveryStatus": {
                            "status": "Success",
                            "message": "Discovered successfully",
                            "imports": [
                                {
                                    "status": "completed",
                                    "id": "2a4d216bdb2d2450fe4fd6a75e9619c3",
                                    "details": "Discovered 1 new job(s) and 3 new pipeline(s)\n"
                                }
                            ]
                        }
                    },
                    {
                        "name": "Primary GitHub",
                        "type": "GitHub",
                        "status": "Success",
                        "createStatus": {
                            "status": "Success",
                            "message": "Created successfully"
                        },
                        "connectStatus": {
                            "status": "Success",
                            "message": "Connected successfully"
                        },
                        "discoveryStatus": {
                            "status": "Success",
                            "message": "Discovered successfully",
                            "imports": [
                                {
                                    "status": "completed",
                                    "id": "7f4d616bdb2d2450fe4fd6a75e9619c2",
                                    "details": "Discovered 5 new repositories. "
                                }
                            ]
                        }
                    },
                    {
                        "name": "Primary Bitbucket",
                        "type": "BitBucket",
                        "status": "Success",
                        "createStatus": {
                            "status": "Success",
                            "message": "Created successfully"
                        },
                        "connectStatus": {
                            "status": "Success",
                            "message": "Connected successfully"
                        },
                        "discoveryStatus": {
                            "status": "Success",
                            "message": "Discovered successfully",
                            "imports": [
                                {
                                    "status": "completed",
                                    "id": "815da16bdb2d2450fe4fd6a75e9619d0",
                                    "details": "Discovered 11 new repositories. "
                                }
                            ]
                        }
                    },
                    {
                        "name": "Primary Gitlab",
                        "type": "GitLab",
                        "status": "Partial Success",
                        "createStatus": {
                            "status": "Success",
                            "message": "Created successfully"
                        },
                        "connectStatus": {
                            "status": "Failed",
                            "error": "The current operation ended in state: ERROR"
                        }
                    }
                ],
                "importRequestsSysIds": [
                    "2a4d216bdb2d2450fe4fd6a75e9619c3",
                    "7f4d616bdb2d2450fe4fd6a75e9619c2",
                    "815da16bdb2d2450fe4fd6a75e9619d0"
                ]
            }
        }
    }

    Solicitação de curl

    O exemplo a seguir mostra a solicitação de status de uma integração de aplicação.

    curl -X POST "https://servicenow-instance/api/sn_devops/v1/devops/onboarding/status?onboardingRequestID=IBE0001604" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -u "username":"password" \

    {
        "result": {
            "code": "207",
            "onboardingRequestID": "IBE0001604",
            "status": "partial-success",
            "messageDetails": {
                "status": "Partial Success",
                "apps": [
                    {
                        "name": "Bike Rentals Service",
                        "status": "Success",
                        "appId": "c7fd696bdb2d2450fe4fd6a75e961993",
                        "message": "App by name 'Bike Rentals Service' has been successfully created"
                    }
                ],
                "pipelines": [
                    {
                        "name": "Bike Rentals",
                        "status": "Success",
                        "message": "Successfully associated with app 'Bike Rentals Service'",
                        "changeStepAssociation": [
                            {
                                "status": "Success",
                                "changeStepName": "Prod",
                                "summary": "Change step with name 'Prod' has been created"
                            }
                        ]
                    }
                ],
                "repositories": [
                    {
                        "name": "nowdevops01/BikeRentals",
                        "status": "Partial Success",
                        "message": "Successfully associated with app 'Bike Rentals Service'",
                        "configureStatus": {
                            "status": "Failed",
                            "message": "Webhook configuration failed due to empty credentials for repository by name nowdevops01/BikeRentals in tool Primary GitHub"
                        }
                    }
                ],
                "plans": [
                    {
                        "status": "Failed",
                        "name": "testFirst",
                        "errors": [
                            "Plan by name 'testFirst' does not exist in tool Primary Azure"
                        ]
                    }
                ]
            }
        }
    }

    DevOps - OBTER /devops/Orchestration/changeControl

    Verifica se a tarefa de orquestração está sob controle de mudanças.

    Formato de URL

    URL com controle de versão: /api/sn_devops//devops/Orchestration/changeControl

    URL padrão: /api/sn_devops/devops/Orchestration/changeControl

    Nota:
    As versões disponíveis são especificadas em REST API Explorer . Para REST APIs com script, há informações adicionais de versão no Formulário de serviço REST com script .

    Parâmetros de solicitação compatíveis

    Tabela 13. Parâmetros de caminho
    Nome Descrição
    api_version Opcional. Versão do endpoint a ser acessado. Por exemplo, v1 ou v2 . Especifique este valor somente para usar uma versão de endpoint diferente da mais recente.

    Tipo de dados: Cadeia de caracteres

    Tabela 14. Parâmetros de consulta
    Nome Descrição
    OrquestrationTaskName Nome da tarefa de orquestração a ser verificada.

    Tipo de dados: Cadeia de caracteres

    TestConnection Sinalizador que indica se a conexão de ponta a ponta deve ser testada entre a instância e o. DevOps ferramenta.
    Valores válidos:
    • Verdadeiro: Teste a conexão de ponta a ponta.
    • Falso: Não testa a conexão de ponta a ponta.

    Tipo de dados: Booliano

    Padrão: falso

    toolId Obrigatório. Sys_id da ferramenta de Orquestração.

    Tipo de dados: Cadeia de caracteres

    Tabela: Ferramenta de Orquestração [sn_devops_Orchestration_tool]

    ToolType Tipo de ferramenta.

    Valores válidos: jenkins

    Tipo de dados: Cadeia de caracteres

    Tabela 15. Parâmetros do corpo da solicitação
    Nome Descrição
    Nenhum(a)

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 16. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Autorização
    A partir da v2, esta API oferece suporte à autenticação baseada em token. Os tokens podem ser adquiridos clicando em Token de cópia Botão no registro da ferramenta, localizado na tabela Ferramenta [sn_devops_tool]. O token pode ser usado em um cabeçalho de autorização no formato Autorização: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .
    Nota:
    Se os detalhes da Autenticação básica (nome de usuário e senha) forem fornecidos além de um cabeçalho de autorização com token, a Autenticação básica terá precedência.

    . devops.systemo usuário não está disponível em sua instância, use Alterne para este usuário depois que a autenticação baseada em token for bem-sucedida propriedade. Esta propriedade permite definir qualquer usuário que tenha a função sn_devops.integration, que é necessária para concluir a autenticação de token. Para obter informações, consulte DevOps Change Velocity properties.

    Tabela 17. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 18. Códigos de status
    Código do status Descrição
    200 Bem-sucedido. A solicitação foi processada com sucesso.
    401 Autenticação inválida ou ausente.
    500 Erro interno do servidor. Ocorreu um erro inesperado ao processar a solicitação. A resposta contém informações adicionais sobre o erro.

    Parâmetros do corpo da resposta (JSON ou XML)

    Nome Descrição
    ChangeControl Sinalizador que indica se a tarefa de orquestração está sob controle de mudança.
    Valores possíveis:
    • Verdadeiro: Sob controle de mudança.
    • Falso: Não está sob controle de mudança.

    Tipo de dados: Booliano

    No controle de mudanças e usando a API v2

    curl -X GET "https://instance.servicenow.com/api/sn_devops/v2/devops/orchestration/changeControl?toolId=1c219f7e8708f1508ca933383cbb3543&orchestrationTaskName=Platform-Analytics-UAT-Deployment&orchestrationTaskURL=https%253A%252F%252Fjenkins.mycompany.com%253A8080%252Fjob%252FMobile-Platform-deploy%252F&toolType=jenkins" 
    -H "accept: application/json"\
    -H "Authorization: sn_devops.DevOpsToken 1c219f7e8708f1508ca933383cbb3543:FtN13dfDuahYEtdfDvhHorh0QPp9na3u"

    Corpo da resposta.

    {
    "result": {
      "changeControl": true,
      "status": "Success" 
      } 
    }

    Não está sob controle de mudanças e usando a API v1

    curl -X GET "https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/changeControl?toolId=f0ca45679323008b52f3b457415ae6&orchestrationTaskName=Platform-Analytics-UAT-Deployment&orchestrationTaskURL=https%253A%252F%252Fjenkins.mycompany.com%253A8080%252Fjob%252FMobile-Platform-deploy%252F&toolType=jenkins" 
    -H "accept: application/json"\
    -u "username":"password"

    Corpo da resposta.

    {
        "result": {
            "changeControl": false
        }
    }

    DevOps - OBTER /devops/Orchestration/changeInfo

    Recupera detalhes da solicitação de mudança para uma execução de pipeline de orquestração especificada.

    Formato de URL

    URL com controle de versão: /api/sn_devops//devops/Orchestration/changeInfo

    URL padrão: /api/sn_devops/devops/Orchestration/changeInfo

    Nota:
    As versões disponíveis são especificadas em REST API Explorer . Para REST APIs com script, há informações adicionais de versão no Formulário de serviço REST com script .

    Parâmetros de solicitação compatíveis

    Tabela 19. Parâmetros de caminho
    Nome Descrição
    api_version Opcional. Versão do endpoint a ser acessado. Por exemplo, v1 ou v2 . Especifique este valor somente para usar uma versão de endpoint diferente da mais recente.

    Tipo de dados: Cadeia de caracteres

    Tabela 20. Parâmetros de consulta
    Nome Descrição
    BranchName Nome da ramificação associada à tarefa de orquestração.
    Nota:
    Você deve fornecer este parâmetro ao fazer referência a pipelines de várias ramificações ou a resposta pode incluir detalhes de mudança incorretos.

    Tipo de dados: Cadeia de caracteres

    buildNumber Obrigatório. Número de compilação do pipeline na ferramenta de Orquestração.

    Tipo de dados: Cadeia de caracteres

    pipelineName Opcional para projetos Jenkins Freestyle ou Maven, obrigatório para todos os outros. Nome do pipeline de Orquestração.

    Tipo de dados: Cadeia de caracteres

    projectName Obrigatório para projetos Jenkins Freestyle ou Maven, opcional para todos os outros. Nome do projeto da ferramenta de Orquestração.

    Tipo de dados: Cadeia de caracteres

    NomeFase Opcional para projetos Jenkins Freestyle ou Maven, obrigatório para todos os outros. Nome da fase de Orquestração.

    Tipo de dados: Cadeia de caracteres

    Comprimento máximo: 160

    toolId Obrigatório. Sys_id da ferramenta de Orquestração.

    Tipo de dados: Cadeia de caracteres

    Tabela: Ferramenta de Orquestração [sn_devops_Orchestration_tool]

    Tabela 21. Solicitar parâmetros do corpo (XML ou JSON)
    Nome Descrição
    Nenhum(a)

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 22. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Autorização
    A partir da v2, esta API oferece suporte à autenticação baseada em token. Os tokens podem ser adquiridos clicando em Token de cópia Botão no registro da ferramenta, localizado na tabela Ferramenta [sn_devops_tool]. O token pode ser usado em um cabeçalho de autorização no formato Autorização: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .
    Nota:
    Se os detalhes da Autenticação básica (nome de usuário e senha) forem fornecidos além de um cabeçalho de autorização com token, a Autenticação básica terá precedência.

    . devops.systemo usuário não está disponível em sua instância, use Alterne para este usuário depois que a autenticação baseada em token for bem-sucedida propriedade. Esta propriedade permite definir qualquer usuário que tenha a função sn_devops.integration, que é necessária para concluir a autenticação de token. Para obter informações, consulte DevOps Change Velocity properties.

    Tabela 23. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 24. Códigos de status
    Código do status Descrição
    200 Bem-sucedido. A solicitação foi processada com sucesso.
    400 Solicitação Incorreta. Um tipo de solicitação incorreto ou uma solicitação malformada foi detectada.
    404 Não encontrado. O item solicitado não foi encontrado.

    Parâmetros do corpo da resposta (JSON ou XML)

    Nome Descrição
    ChangeFound Sinalizador que indica se a solicitação de mudança foi localizada.
    Valores possíveis:
    • Verdadeiro: A solicitação de mudança foi encontrada.
    • Falso: A solicitação de mudança não foi encontrada.

    Tipo de dados: Booliano

    número Número de solicitação de mudança

    Tipo de dados: Cadeia de caracteres

    fase Fase atual.

    Tipo de dados: Cadeia de caracteres

    phase_state Estado da fase atual.

    Tipo de dados: Cadeia de caracteres

    prioridade Prioridade da solicitação de mudança. A prioridade é baseada no impacto e na urgência da solicitação. Identifica a rapidez com que a Central de serviços deve tratar a tarefa.
    Valores possíveis:
    • 1: Crítico
    • 2: Alto
    • 3: Moderado
    • 4: Baixo

    Tipo de dados: Cadeia de caracteres

    risco Nível de risco da mudança.
    Valores possíveis:
    • Baixo(a)
    • Alto(a)
    • Moderado

    Tipo de dados: Cadeia de caracteres

    estado Estado da solicitação de mudança.
    Valores possíveis:
    • Avaliar
    • Autorizar
    • Cancelado
    • Encerrado(a)
    • Implementar
    • Novo(a)
    • Revisão
    • Agendado

    Tipo de dados: Cadeia de caracteres

    Padrão: Novo

    sys_id Sys_id da solicitação de mudança.

    Tipo de dados: Cadeia de caracteres

    tipo Tipo de solicitação de mudança
    Valores possíveis:
    • Emergência
    • Normal
    • Padrão

    Tipo de dados: Cadeia de caracteres

    URL URL da solicitação de mudança no associado ServiceNow instância.

    Tipo de dados: Cadeia de caracteres

    ChangeAssignmentGroup Grupo de atribuição da solicitação de mudança.

    Tipo de dados: Cadeia de caracteres

    ChangeAprovadores Lista de aprovadores com os quais a mudança está pendente para aprovação.

    Tipo de dados: Cadeia de caracteres

    StartDate plannedStartDate Data e hora de início planejadas da mudança.

    Tipo de dados: Cadeia de caracteres

    EndDate planejada Data e hora de término planejadas da mudança.

    Tipo de dados: Cadeia de caracteres

    Solicitação de curl

    curl -X GET "https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/changeInfo?toolId=1487f457db642810765555535e9619d3&pipelineName=Automation/apps HR/family release&stageName=deployfamilyrelease&buildNumber=1639"  
    -H "accept: application/json"\ 
    -u "username":"password"
    {  
      "result": {  
        "changeFound": true,  
        "sys_id": "ee89341bdb642810765555535e96196e",  
        "number": "CHG0030001",  
        "type": "normal",  
        "state": "0",  
        "phase": "requested",  
        "phase_state": "open",  
        "priority": "4",  
        "risk": "4",  
        "url": "https://instance.servicenow.com/change_request.do?sys_id=ee89341bdb642810765555535e96196e",  
        "changeAssignmentGroup": "Change Management", 
        "changeApprovers": "Ron Kettering, Christen Mitchell, Howard Johnson, Luke Wilson", 
        "plannedStartDate": "2023-02-05 08:00:00", 
        "plannedEndDate": "2024-02-05 08:00:00" 
      }  
    }

    DevOps - OBTER /devops/Orchestration/schema

    Retorna o objeto de esquema para um recurso de orquestração especificado.

    Depois de ter o objeto de esquema necessário, use-o para criar o corpo da solicitação para sua chamada POST correspondente; /Orchestration/OrchestrationTask ou /Orchestration/taskExecution .

    Nota:
    Este endpoint retorna somente os elementos do corpo da solicitação necessários.

    Formato de URL

    URL com controle de versão: /api/sn_devops//devops/orchestration/schema

    URL padrão: /api/sn_devops/devops/orchestration/schema

    Nota:
    As versões disponíveis são especificadas em REST API Explorer . Para REST APIs com script, há informações adicionais de versão no Formulário de serviço REST com script .

    Parâmetros de solicitação compatíveis

    Tabela 25. Parâmetros de caminho
    Nome Descrição
    api_version Opcional. Versão do endpoint a ser acessado. Por exemplo, v1 ou v2 . Especifique este valor somente para usar uma versão de endpoint diferente da mais recente.

    Tipo de dados: Cadeia de caracteres

    Tabela 26. Parâmetros de consulta
    Nome Descrição
    recurso Tipo de esquema de recurso a ser retornado.
    Valores válidos (não diferenciam maiúsculas de minúsculas):
    • build_details
    • retorno de chamada
    • orchestration_task
    • task_execution

    Tipo de dados: Cadeia de caracteres

    Tabela 27. Parâmetros do corpo da solicitação
    Nome Descrição
    Nenhum(a)

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 28. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Tabela 29. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 30. Códigos de status
    Código do status Descrição
    200 Solicitação concluída com sucesso.
    401 Autenticação inválida ou ausente.
    500 Erro interno do servidor. Ocorreu um erro inesperado ao processar a solicitação. A resposta contém informações adicionais sobre o erro.

    Parâmetros do corpo da resposta

    Nome Descrição
    callbackURL URL do retorno de chamada.

    Tipo de dados: Cadeia de caracteres

    endDateTime Data/hora em que a execução da tarefa terminou.

    Tipo de dados: Cadeia de caracteres

    nome Nome da tarefa de orquestração.

    Tipo de dados: Cadeia de caracteres

    número Número de execução da tarefa. Igual a um número de incidente.

    Tipo de dados: Cadeia de caracteres

    OrquestrationTaskDetails Descrição da tarefa de Orquestração.

    Tipo de dados: Objeto

    "orchestrationTaskDetails": {
      "message": "String",
      "name": "String",
      "triggerType": "String",
      "url": "String"
    }
    OrquestrationTaskDetails.message Mensagem de texto de formato livre.

    Tipo de dados: Cadeia de caracteres

    orchestrationTaskDetails.name Nome da tarefa de orquestração.

    Tipo de dados: Cadeia de caracteres

    OrquestrationTaskDetails.triggerType A forma como a tarefa de orquestração foi iniciada.

    Tipo de dados: Cadeia de caracteres

    OrquestrationTaskDetails.url URL da tarefa de orquestração da ferramenta de orquestração associada.

    Tipo de dados: Cadeia de caracteres

    OrquestrationTaskURL URL da tarefa de orquestração.

    Tipo de dados: Cadeia de caracteres

    resultado Resultado da execução da tarefa.
    Valores válidos:
    • Reprovado
    • Êxito

    Tipo de dados: Cadeia de caracteres

    startDateTime Data/hora em que a execução da tarefa foi iniciada.

    Tipo de dados: Cadeia de caracteres

    TasExecutionURL URL da tarefa a ser executada.

    Tipo de dados: Cadeia de caracteres

    TriggerType A forma como a tarefa de orquestração foi iniciada.

    Valores válidos:

    • scm: A confirmação do código da ferramenta Git/scm acionou o trabalho.
    • Upstream: O trabalho upstream acionou este trabalho.
    • Usuário: O usuário iniciou o trabalho manualmente.

    Tipo de dados: Cadeia de caracteres

    URL URL da tarefa de orquestração da ferramenta de orquestração associada.

    Tipo de dados: Cadeia de caracteres

    Solicitação de cURL de amostra com resource_task_execution

    curl -X GET \
    'https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/schema?resource=task_execution' \
    -H 'Accept: application/json'\
    -u 'username':'password'
    {
    "result": {
      "number": 40,
      "url": "https://jenkins.mycompany.com:8080/job/Mobile-Platform-CI/40/",
      "startDateTime": "1970-01-01T08:15:30-05:00",
      "endDateTime": "1970-01-01T08:25:30-05:00",
      "triggerType": "upstream",
      "result": "Success",
      "orchestrationTaskDetails": {
        "name": "Mobile-Platform-CI",
        "url": "https://jenkins.mycompany.com:8080/job/Mobile-Platform-CI/"
        }
      }
    }

    Solicitação de cURL de amostra com resource Orchestration_task

    curl -X GET \ 
    'https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/schema?resource=orchestration_task' \
    -H 'Accept: application/json'\
    -u 'username':'password' 
    
    { 
    "result": { 
      "name": "Mobile-Platform-CI", 
      "url": "https://jenkins.mycompnay.com:8080/job/Mobile-Platform-CI/" 
      } 
    } 

    Solicitação de cURL de amostra com recurso: Retorno de chamada

    curl -X GET \
    'https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/schema?resource=task_execution' \
    -H 'Accept: application/json' \
    -u 'username':'password'
    
    { 
      "result": { 
        "callbackURL": "http://127.0.0.1:8090/jenkins/sn-devops/9b0feb79-f0b9-4661-83ef-2861b8924784", 
        "orchestrationTaskURL": "http://127.0.0.1:8090/jenkins/job/felipe-downstream/", 
        "orchestrationTaskDetails": { 
          "message": "Started by upstream project \"felipe-upstream\" build number 27", 
          "triggerType": "upstream" 
        } 
      } 
    } 

    DevOps - OBTER /devops/Orchestration/stepMapping

    Verifica se as informações que estão sendo passadas são válidas para a criação de uma tarefa de orquestração e são válidas para associação a uma etapa criada anteriormente.

    Formato de URL

    URL com controle de versão: /api/sn_devops//devops/Orchestration/stepMapping

    URL padrão: /api/sn_devops/devops/Orchestration/stepMapping

    Nota:
    As versões disponíveis são especificadas em REST API Explorer . Para REST APIs com script, há informações adicionais de versão no Formulário de serviço REST com script .

    Parâmetros de solicitação compatíveis

    Tabela 31. Parâmetros de caminho
    Nome Descrição
    api_version Opcional. Versão do endpoint a ser acessado. Por exemplo, v1 ou v2 . Especifique este valor somente para usar uma versão de endpoint diferente da mais recente.

    Tipo de dados: Cadeia de caracteres

    Tabela 32. Parâmetros de consulta
    Nome Descrição
    BranchName Nome da ramificação associada à tarefa de orquestração.

    Tipo de dados: Cadeia de caracteres

    IsMultiBranch Se a ferramenta de Orquestração for Jenkins, sinalizador que indica se o projeto é do tipo Multibranch.
    Valores válidos:
    • Verdadeiro: O projeto é do tipo Multiramificação.
    • Falso: O projeto não é do tipo Multibranch.

    Tipo de dados: Booliano

    Padrão: falso

    NomeParentStageName Se a tarefa de orquestração for uma secundária aninhada em uma tarefa de orquestração primária, o nome da tarefa de orquestração primária.

    Tipo de dados: Cadeia de caracteres

    ParentStageURL Se a tarefa de orquestração for uma secundária aninhada em uma tarefa de orquestração primária, o URL da tarefa de orquestração primária.

    Tipo de dados: Cadeia de caracteres

    OrquestrationTaskName Obrigatório. Nome da tarefa de orquestração.

    Tipo de dados: Cadeia de caracteres

    OrquestrationTaskURL Obrigatório. URL da tarefa de orquestração.
    Nota:
    Percentual (%) codificado, como https%3A%2F%2Fjenkins.mycompany.com%3A8080%2Fjob%2FMobile-Platform-deploy%2F.
    Tipo de dados: Cadeia de caracteres
    TestConnection Sinalizador que indica se a conexão de ponta a ponta deve ser testada entre a instância e o. DevOps ferramenta.
    Valores válidos:
    • Verdadeiro: Teste a conexão de ponta a ponta.
    • Falso: Não teste a conexão de ponta a ponta.

    Tipo de dados: Booliano

    Padrão: falso

    toolId Obrigatório. Sys_id da ferramenta de Orquestração. Localizado na tabela Ferramenta de Orquestração [sn_devops_Orchestration_tool].

    Tipo de dados: Cadeia de caracteres

    ToolType Obrigatório. Tipo de ferramenta.

    Valores válidos: jenkins

    Tipo de dados: Cadeia de caracteres

    Tabela 33. Parâmetros do corpo da solicitação
    Nome Descrição
    Nenhum(a)

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 34. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Tabela 35. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 36. Códigos de status
    Código do status Descrição
    200 Bem-sucedido. A solicitação foi processada com sucesso.
    401 Não autorizado. As credenciais do usuário estão incorretas ou não foram aprovadas.
    500 Erro interno do servidor. Ocorreu um erro inesperado ao processar a solicitação. A resposta contém informações adicionais sobre o erro.

    Parâmetros do corpo da resposta

    Elemento Descrição
    status Sinalizador que indica se a verificação foi bem-sucedida.
    Valores válidos:
    • Verdadeiro: A verificação foi bem-sucedida.
    • Falso: A verificação não foi bem-sucedida.

    Tipo de dados: Booliano

    StepValid Sinalizador que indica se as informações enviadas são válidas.
    Valores válidos:
    • Verdadeiro: As informações enviadas são válidas.
    • Falso: As informações enviadas não são válidas.

    Tipo de dados: Booliano

    Solicitação de cURL de amostra

    curl -X GET "https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/stepMapping?toolId=f0ca45679323008b52f3b457415ae6&orchestrationTaskName=Platform-Analytics-UAT-Deployment&orchestrationTaskURL=https%253A%252F%252Fjenkins.mycompany.com%253A8080%252Fjob%252FMobile-Platform-deploy%252F&toolType=jenkins "
     -H "Accept: application/json" \
     -u "username":"password"
    

    Se as informações forem válidas.

    {
      "result": {
        "stepValid": true,
        "status": "Success"
      }
    }

    Solicitação de cURL de amostra

    curl -X GET "https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/stepMapping?toolId=f0ca45679323008b52f3b457415ae6&orchestrationTaskName=Platform-Analytics-UAT-Deployment&orchestrationTaskURL=https%253A%252F%252Fjenkins.mycompany.com%253A8080%252Fjob%252FMobile-Platform-deploy%252F&toolType=jenkins "
     -H "Accept: application/json" \
     -u "username":"password"
    

    Se as informações forem inválidas.

    {
    "result": {
      "stepValid": false,
      "status": "Success"
    }
    

    DevOps - OBTER /devops/plan/schema

    Retorna o objeto de esquema para um plano específico: App, versão ou item de trabalho.

    Depois de ter o objeto de esquema necessário, use-o para criar o corpo da solicitação para sua chamada POST correspondente; PUBLICAR /plan/app , PUBLICAR /plan/version ou PUBLICAR /plan/workitem .

    Nota:
    Este endpoint retorna somente os elementos do corpo da solicitação necessários.

    Formato de URL

    URL com controle de versão: /api/sn_devops//devops/plan/schema

    URL padrão: /api/sn_devops/devops/plan/schema

    Nota:
    As versões disponíveis são especificadas em REST API Explorer . Para REST APIs com script, há informações adicionais de versão no Formulário de serviço REST com script .

    Parâmetros de solicitação compatíveis

    Tabela 37. Parâmetros de caminho
    Nome Descrição
    api_version Opcional. Versão do endpoint a ser acessado. Por exemplo, v1 ou v2 . Especifique este valor somente para usar uma versão de endpoint diferente da mais recente.

    Tipo de dados: Cadeia de caracteres

    Tabela 38. Parâmetros de consulta
    Nome Descrição
    recurso Tipo de esquema de recurso a ser retornado.

    Valores válidos (não diferenciam maiúsculas de minúsculas):

    • app
    • versão
    • work_item

    Tipo de dados: Cadeia de caracteres

    Tabela 39. Parâmetros do corpo da solicitação
    Nome Descrição
    Nenhum(a)

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 40. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Tabela 41. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 42. Códigos de status
    Código do status Descrição
    200 Bem-sucedido. A solicitação foi processada com sucesso.
    401 Autenticação inválida ou ausente.
    404 Não encontrado. Não foi possível encontrar o registro especificado.
    500 Erro interno do servidor. Ocorreu um erro inesperado ao processar a solicitação. A resposta contém informações adicionais sobre o erro.

    Parâmetros do corpo da resposta

    Nome Descrição
    app Descrição da aplicação a ser associada à versão.

    Tipo de dados: Objeto

    "app": {
      "createdDateTime": "String",
      "id": "String",
      "shortDescription": "String",
      "team": {Object},
      "url": "String"
    }
    App.createdDateTime Data/hora em que a aplicação foi criada na origem DevOpsferramenta.

    Tipo de dados: Cadeia de caracteres

    app.id Identificador exclusivo da aplicação. Gerado pela ferramenta de planejamento de origem.

    Tipo de dados: Cadeia de caracteres

    App.ShortDescription Breve descrição da aplicação associada.

    Tipo de dados: Cadeia de caracteres

    app.team Descrição da equipe associada à aplicação.

    Tipo de dados: Objeto

    "team": {
      "id": "String",
      "name": "String"
    }
    app.team.id Identificador exclusivo da equipe associada à aplicação. Gerado pela ferramenta de planejamento de origem.

    Tipo de dados: Cadeia de caracteres

    app.team.name Nome da equipe associada à aplicação.

    Tipo de dados: Cadeia de caracteres

    app.url URL da aplicação no site da ferramenta de planejamento de origem.

    Tipo de dados: Cadeia de caracteres

    assignedTo Descrição da pessoa à qual o item de trabalho está atribuído.

    Tipo de dados: Objeto

    "assignedTo": {
      "email": "String",
      "id": "String",
      "name": "String",
      "userName": "String"
    }
    Atribuído para.email Endereço de e-mail da pessoa atribuída ao item de trabalho.

    Tipo de dados: Cadeia de caracteres

    Atribuído.ID Identificador exclusivo da pessoa atribuída ao item de trabalho.

    Tipo de dados: Cadeia de caracteres

    assignedTo.name Nome da pessoa atribuída ao item de trabalho.

    Tipo de dados: Cadeia de caracteres

    assignedTo.userName Nome de usuário da pessoa atribuída ao item de trabalho.

    Tipo de dados: Cadeia de caracteres

    CreateDateTime Data e hora em que a aplicação, a versão ou o registro do item de trabalho foi criado.

    Tipo de dados: Cadeia de caracteres

    id Identificador exclusivo da aplicação, versão ou item de trabalho. Gerado pela ferramenta de planejamento de origem.

    Tipo de dados: Cadeia de caracteres

    nome Nome da aplicação.

    Tipo de dados: Cadeia de caracteres

    caminho Caminho relativo para a aplicação.

    Tipo de dados: Cadeia de caracteres

    shortDescription Breve descrição da aplicação, versão ou item de trabalho.

    Tipo de dados: Cadeia de caracteres

    estado Estado do item de trabalho. Gerado pela ferramenta de planejamento de origem.

    Tipo de dados: Cadeia de caracteres

    equipe Descrição da equipe associada à aplicação.

    Tipo de dados: Objeto

    "team": {
      "id": "String",
      "name": "String"
    }
    team.id Identificador exclusivo da equipe associada à aplicação. Gerado pela ferramenta de planejamento de origem.

    Tipo de dados: Cadeia de caracteres

    team.name Nome da equipe associada à aplicação.

    Tipo de dados: Cadeia de caracteres

    tipo Tipo de item de trabalho. Gerado pela ferramenta de planejamento.

    Tipo de dados: Cadeia de caracteres

    URL URL a ser usado para acessar a aplicação, a versão ou o item de trabalho.

    Tipo de dados: Cadeia de caracteres

    versão Matriz que descreve a versão.

    Tipo de dados: Objeto

    "version": {
      "app": {Object},
      "createdDateTime": "String",
      "id": "String",
      "shortDescription": "String",
      "url": "String"
    }
    version.app Descrição da aplicação a ser associada à versão.

    Tipo de dados: Objeto

    "app": {
      "createdDateTime": "String",
      "id": "String",
      "shortDescription": "String",
      "team": {Object},
      "url": "String"
    }
    Version.app.createdDateTime Data/hora em que a versão foi criada na origem DevOpsferramenta.

    Tipo de dados: Cadeia de caracteres

    version.app.id Identificador exclusivo da aplicação. Gerado pela ferramenta de planejamento de origem.

    Tipo de dados: Cadeia de caracteres

    Version.app.ShortDescription Breve descrição da aplicação associada.

    Tipo de dados: Cadeia de caracteres

    version.app.team Descrição da equipe associada à aplicação.

    Tipo de dados: Objeto

    "team": {
      "id": "String",
      "name": "String"
    }
    version.app.team.id Identificador exclusivo da equipe associada à aplicação. Gerado pela ferramenta de planejamento de origem.

    Tipo de dados: Cadeia de caracteres

    version.app.team.name Nome da equipe associada à aplicação.

    Tipo de dados: Cadeia de caracteres

    versão.app.url URL da aplicação no site da ferramenta de planejamento de origem.

    Tipo de dados: Cadeia de caracteres

    DateTime.created Data/hora em que a versão foi criada na origem DevOpsferramenta.

    Tipo de dados: Cadeia de caracteres

    version.id Identificador exclusivo da versão. Gerado pela ferramenta de planejamento de origem.

    Tipo de dados: Cadeia de caracteres

    Version.ShortDescription Breve descrição da versão associada.

    Tipo de dados: Cadeia de caracteres

    version.url URL da versão no site da ferramenta de planejamento de origem.

    Tipo de dados: Cadeia de caracteres

    Solicitação de cURL de amostra para resource_app

    curl "https://instance.servicenow.com/api/sn_devops/v1/devops/plan/schema?resource=app" \
    --request GET \
    --header "Accept:application/json" \
    --user "username":"password"
    {
      "result": {
        "id": "PRODUCT1234",
        "shortDescription": "Mobile UI",
        "createdDateTime": "1970-01-01T08:15:30-05:00",
        "team": {
          "name": "Mobile UI",
          "id": "f0ca45679323008b52f3b457415ae6"
        },
        "url": "https://jira.com/mycompany/browse/PRODUCT-125"
      }
    }

    Solicitação de cURL de amostra para recurso/versão

    curl "https://instance.servicenow.com/api/sn_devops/v1/devops/plan/schema?resource=version" \
    --request GET \
    --header "Accept:application/json" \
    --user "username":"password"
    
    {
      "result": {
        "id": "REL1234",
        "shortDescription": "APIs Release",
        "createdDateTime": "1970-01-01T08:15:30-05:00",
        "app": {
          "id": "PRODUCT1234",
          "shortDescription": "Mobile UI",
          "createdDateTime": "1970-01-01T08:15:30-05:00",
          "team": {
            "name": "Mobile UI",
            "id": "f0ca45679323008b52f3b457415ae6"
          },
          "url": "https://jira.com/mycompany/browse/PRODUCT-125"
        },
        "url": "https://jira.com/mycompany/browse/REL-125"
      }
    }

    Solicitação de cURL de amostra para resource_work_item

    curl "https://instance.servicenow.com/api/sn_devops/v1/devops/plan/schema?resource=work_item" \
    --request GET \
    --header "Accept:application/json" \
    --user "username":"password"
    
    {
      "result": {
        "id": "STR1234",
        "type": "Story",
        "shortDescription": "Planning API Spec",
        "state": "In-progress",
        "createdDateTime": "1970-01-01T08:15:30-05:00",
        "assignedTo": {
          "name": "Leo Neo",
          "userName": "lenn",
          "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "email": "lenn@smithworksinc.com"
        },
        "version": {
          "id": "REL1234",
          "shortDescription": "APIs Release",
          "createdDateTime": "1970-01-01T08:15:30-05:00",
          "app": {
            "id": "PRODUCT1234",
            "shortDescription": "Mobile UI",
            "createdDateTime": "1970-01-01T08:15:30-05:00",
            "team": {
              "name": "Mobile UI",
              "id": "f0ca45679323008b52f3b457415ae6"
            },
            "url": "https://jira.com/mycompany/browse/PRODUCT-125"
            },
            "url": "https://jira.com/mycompany/browse/REL-125"
        },
        "app": {
          "id": "PRODUCT1234",
          "shortDescription": "Mobile UI",
          "createdDateTime": "1970-01-01T08:15:30-05:00",
          "team": {
            "name": "Mobile UI",
            "id": "f0ca45679323008b52f3b457415ae6"
          },
          "url": "https://jira.com/mycompany/browse/PRODUCT-125"
        },
        "url": "https://jira.com/mycompany/browse/HALOKEY-25"
      }
    }

    DevOps - POST /devops/artefact/registration

    Permite que as ferramentas de orquestração registrem artefatos em um ServiceNow instância.

    Este endpoint cria novos artefatos e versões de artefatos e os associa a confirmações. A seguir descreve o fluxo do processo do endpoint:
    • . toolIdpassado na solicitação, o endpoint valida se a ferramenta existe na instância. Ele também verifica se o repositório de artefatos especificado em artifacts.repositoryNameexiste e, se não estiver, cria-o na ferramenta de artefato associada.
    • . toolIdnão foi passado na solicitação, um repositório é criado, mas não está vinculado a nenhuma ferramenta de artefato.
    • Em seguida, ele verifica se o artefato especificado em artifacts.namejá existe e, caso contrário, cria-o no repositório associado.
    • . artifact.versionpassado na solicitação:
      • Se ele não existir, um novo registro de versão do artefato será criado na tabela Versão do artefato associada [sn_devops_artifact_version].
      • Em seguida, o endpoint procura execuções de tarefa associadas com base nos detalhes de compilação fornecidos ( pipelineNameou projectName, taskExecutionNumber, branchNamee stageName. e orchestrationToolIdparâmetro.
      • Se uma execução de tarefa for encontrada e seu pós-processamento estiver concluído, a versão do artefato será vinculada à execução da tarefa e armazenada na tabela Artefato para execução de tarefa [sn_devops_m2m_artifact_execution]. Confirmações vinculadas a essas execuções de tarefa também são associadas à versão do artefato e armazenadas na tabela Versão do artefato para confirmar [sn_devops_m2m_artifact_version_commit]. Todas as confirmações vinculadas a execuções de tarefas anteriores que não criaram um artefato também são associadas à versão do artefato.
      • Se uma execução de tarefa for encontrada e seu pós-processamento não estiver concluído, a solicitação persistirá na tabela Solicitação em fases do artefato [sn_devops_artifact_staging]. A solicitação em fases contém uma referência à execução da tarefa.
      • Se uma execução de tarefa não for encontrada, a solicitação persistirá na tabela de preparação. A solicitação em fases contém os detalhes da compilação.
    • . artifact.versione, dependendo da configuração da ferramenta, a versão do artefato é recuperada chamando /devops/tool/artefato endpoint se sua ferramenta de artefato oferecer suporte a webhooks ou por meio de um subfluxo personalizado que recupera a versão do artefato da ferramenta de artefato.

    Para obter informações adicionais sobre artefatos, consulte DevOps Change Acceleration para versões .

    Formato de URL

    URL com controle de versão: /api/sn_devops//devops/artefact/registration

    URL padrão: /api/sn_devops/devops/artefact/registration

    Nota:
    As versões disponíveis são especificadas em REST API Explorer . Para REST APIs com script, há informações adicionais de versão no Formulário de serviço REST com script .

    Parâmetros de solicitação compatíveis

    Tabela 43. Parâmetros de caminho
    Nome Descrição
    api_version Opcional. Versão do endpoint a ser acessado. Por exemplo, v1 ou v2 . Especifique este valor somente para usar uma versão de endpoint diferente da mais recente.

    Tipo de dados: Cadeia de caracteres

    Tabela 44. Parâmetros de consulta
    Nome Descrição
    orchestrationToolId Obrigatório. Sys_id da ferramenta de Orquestração associada ao artefato. O endpoint usa essas informações para localizar informações de execução da tarefa.

    Tipo de dados: Cadeia de caracteres

    Tabela: Ferramenta de Orquestração [sn_devops_Orchestration_tool]

    toolId Sys_id da ferramenta de artefato associada ao artefato.

    Tipo de dados: Cadeia de caracteres

    Tabela: Ferramenta de artefato [sn_devops_artifact_tool]

    Tabela 45. Solicitar parâmetros do corpo (XML ou JSON)
    Nome Descrição
    artefatos Pelo menos uma entrada necessária. Matriz de objetos na qual cada objeto identifica exclusivamente uma versão de artefato a ser registrada.

    Tipo de dados: Matriz de objetos

    "artifacts": [
      {
        "name": "String",
        "repositoryName": "String",
        "semanticVersion": "String",
        "version": "String"
      }
    ]
    artifacts.name Obrigatório. Nome do arquivo de artefato.

    Tipo de dados: Cadeia de caracteres

    Tamanho máximo: 160 caracteres

    Artifacts.positoryName Obrigatório. Nome do repositório de artefatos.

    Se o registro do repositório especificado não existir, ele será criado.

    Tipo de dados: Cadeia de caracteres

    Tamanho máximo: 160 caracteres

    artifacts.semanticVersion Versão semântica do artefato.

    Tipo de dados: Cadeia de caracteres

    FORMATO: MAJOR.MINOR.PATCH

    Exemplos de valores possíveis:
    • 2.0.0
    • 2,0.0-rc.2
    • 2,0.0-rc.1
    • 1,0.0-beta

    Tamanho máximo: 160 caracteres

    Padrão: Nulo

    artifacts.version Necessário se toolIdnão foi aprovado. Versão do artefato.

    Tipo de dados: Cadeia de caracteres

    Formato: MAJOR.MINOR

    Tamanho máximo: 160 caracteres

    Padrão: Nulo

    BranchName Necessário se for um projeto de várias ramificações. Nome da ramificação no repositório onde o artefato está armazenado.

    Tipo de dados: Cadeia de caracteres

    Comprimento máximo: 160

    Padrão: Nulo

    pipelineName Necessário se projectNamenão foi aprovado. Nome do pipeline.

    Tipo de dados: Cadeia de caracteres

    Comprimento máximo: 160

    Padrão: Nulo

    projectName Necessário se pipelineNamenão foi aprovado. Nome do projeto de forma livre.

    Tipo de dados: Cadeia de caracteres

    Comprimento máximo: 160

    Padrão: Nulo

    NomeFase Necessário se pipelineNameaprovado. Nome da fase.

    Tipo de dados: Cadeia de caracteres

    Comprimento máximo: 160

    Padrão: Nulo

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 46. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Autorização
    A partir da v2, esta API oferece suporte à autenticação baseada em token. Os tokens podem ser adquiridos clicando em Token de cópia Botão no registro da ferramenta, localizado na tabela Ferramenta [sn_devops_tool]. O token pode ser usado em um cabeçalho de autorização no formato Autorização: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .
    Nota:
    Se os detalhes da Autenticação básica (nome de usuário e senha) forem fornecidos além de um cabeçalho de autorização com token, a Autenticação básica terá precedência.

    . devops.systemo usuário não está disponível em sua instância, use Alterne para este usuário depois que a autenticação baseada em token for bem-sucedida propriedade. Esta propriedade permite definir qualquer usuário que tenha a função sn_devops.integration, que é necessária para concluir a autenticação de token. Para obter informações, consulte DevOps Change Velocity properties.

    Tipo de conteúdo Formato de dados do corpo da solicitação. Oferece suporte somente a application/json.
    Tabela 47. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 48. Códigos de status
    Código do status Descrição
    200 Sucesso. Corpo da resposta bem-sucedida.
    201 Criado. Corpo da resposta bem-sucedida.
    400 Solicitação Incorreta. O URI da solicitação não corresponde às APIs no sistema ou a operação falhou por motivos desconhecidos. Cabeçalhos inválidos também podem causar este erro.
    500 Erro interno do servidor. Ocorreu um erro inesperado ao processar a solicitação. A resposta contém informações adicionais sobre o erro.

    Parâmetros do corpo da resposta

    Nome Descrição
    resposta Resultados da solicitação de registro de artefato.

    Tipo de dados: Objeto

    "response": {
      "artifact": {Object},
      "artifact_register_requests": {Object},
      "artifact_repository": {Object},
      "artifact_version": {Object}
    }
    artefato.resposta Resultados para cada artefato processado.

    Tipo de dados: Objeto

    "artifact": {
      "create": [Array],
      "found": [Array],
      "update": [Array]
    }
    artefato.resposta.criar Se a solicitação criou registros de artefato, a lista de sys_ids dos registros criados.

    Tipo de dados: Matriz de objetos

    "create": [
      {
        "id": "String"
      }
    ]

    Tabela: Artefatos [sn_devops_artifact]

    response.artifact.create.id Sys_id do registro de artefato criado pela solicitação.

    Tipo de dados: Cadeia de caracteres

    artefato.resposta.encontrado Se um artefato já existir na tabela Artefatos, a lista de sys_ids dos registros de artefato existentes.
    Nota:
    Nenhuma modificação é feita nos pacotes existentes.

    Tipo de dados: Matriz de objetos

    "found": [
      {
        "id": "String"
      }
    ]
    response.artifact.found.id Sys_id do registro de artefato existente.

    Tipo de dados: Cadeia de caracteres

    artefato.resposta.atualização Atualmente não usado
    response.artifact.update.id Atualmente não usado
    response.artifact_register_requests Os resultados de todos os artefatos Registram solicitações que não concluíram o processamento e foram armazenados na tabela Solicitação em fases de artefato.

    Tipo de dados: Objeto

    "artifact_register_requests": {
      "create": [Array],
      "found": [Array],
      "update": [Array]
    }
    response.artifact_register_requests.create Se a solicitação criou registros de preparação de artefato, a lista de sys_ids dos registros criados.

    Tipo de dados: Matriz de objetos

    "create": [
      {
        "id": "String"
      }
    ]
    response.artifact_register_requests.create.id Sys_id do registro de preparação de artefato criado pela solicitação.

    Tipo de dados: Cadeia de caracteres

    response.artifact_register_requests.found Se os artefatos já tiverem registros de preparação de artefatos associados, a lista de sys_ids dos registros de preparação de artefatos existentes.
    Nota:
    Nenhuma modificação é feita nos pacotes existentes.

    Tipo de dados: Matriz de objetos

    "found": [
      {
        "id": "String"
      }
    ]
    response.artifact_register_requests.found.id Sys_id de um registro de preparação de artefato existente.

    Tipo de dados: Cadeia de caracteres

    response.artifact_register_requests.update Atualmente não usado
    response.artifact_register_requests.update.id Atualmente não usado
    response.artifact_repositório Resultados de todos os registros de repositório de artefatos que foram manipulados durante o processamento da solicitação.

    Tipo de dados: Objeto

    "artifact_repository": {
      "create": [Array],
      "found": [Array],
      "update": [Array]
    }
    response.artifact_repositório.create Se os repositórios de artefatos foram criados pela solicitação, a lista de sys_ids dos registros criados.

    Tipo de dados: Matriz de objetos

    "create": [
      {
        "id": "String"
      }
    ]
    response.artifact_repositório.create.id Sys_id do registro do repositório de artefatos criado pela solicitação.

    Tipo de dados: Cadeia de caracteres

    response.artifact_repositório.encontrado Se os registros do repositório de artefatos usados na solicitação de registro já existirem, a lista de sys_ids dos registros existentes.
    Nota:
    Nenhuma modificação é feita nos pacotes existentes.

    Tipo de dados: Matriz de objetos

    "found": [
      {
        "id": "String"
      }
    ]
    response.artifact_repositório.found.id Sys_id de um registro de repositório de artefatos existente usado pela solicitação.

    Tipo de dados: Cadeia de caracteres

    response.artifact_repositório.update Se o endpoint atualizar o sinalizador de rastreamento em um repositório para verdadeiro (de falso), a lista de sys_ids dos registros do repositório que foram modificados.

    Tipo de dados: Matriz de objetos

    "update": [
      {
        "id": "String"
      }
    ]
    response.artifact_repositório.update.id Sys_id do registro do repositório cujo sinalizador de rastreamento foi modificado.

    Tipo de dados: Cadeia de caracteres

    response.artifact_version Resultados de todos os registros de versão de artefato que foram manipulados durante o processamento da solicitação.

    Tipo de dados: Objeto

    "artifact_version": {
      "create": [Array],
      "found": [Array],
      "update": [Array]
    }
    response.artifact_version.create Resultados de todos os registros de versão de artefato que foram criados durante o processamento da solicitação.

    Tipo de dados: Matriz de objetos

    "create": [
      {
        "id": "String"
      }
    ]
    response.artifact_version.create.id Sys_id do registro de versão do artefato criado pela solicitação.

    Tipo de dados: Cadeia de caracteres

    response.artet_version.found Se os registros de versão de artefato usados na solicitação de registro já existirem, a lista de sys_ids dos registros existentes.

    Tipo de dados: Matriz de objetos

    "found": [
      {
        "id": "String"
      }
    ]
    response.artifact_version.found.id Sys_id do registro de versão do artefato existente usado pela solicitação.

    Tipo de dados: Cadeia de caracteres

    response.artifact_version.update Atualmente não usado
    response.artifact_version.update.id Atualmente não usado
    status Status da solicitação de registro.
    Valores possíveis:
    • Sucesso: O corpo da resposta contém resultados de retorno.
    • Corpo da resposta contém a lista de todos os erros.

    Tipo de dados: Cadeia de caracteres

    Solicitação de cURL de amostra

    curl -X POST \
    'https://instance.servicenow.com/api/sn_devops/devops/artifact/registration?toolId=391b4ff6dba24010bc8cdd384b96198f&orchestrationToolId=99d70b36dba24010bc8cdd384b961985' \
    -H 'Accept: application/json' \
    -H 'Content-Type: application/json' \
    -u 'username':'password' \
    -d ' {"artifacts": [\
     {\
     "name": "sa-web.jar",\
     "version": "3.1",\
     "semanticVersion": "3.1.0",\
     "repositoryName": "services-1031"\
     },\
     {\
     "name": "sa-frontend.jar",\
     "version": "3.2",\
     "semanticVersion": "3.2.0",\
     "repositoryName": "services-1031"\
     }\
     ],\
     "pipelineName": "spring-boot-app",\
     "taskExecutionNumber": "160",\
     "stageName": "Build",\
     "branchName": "primary"\
    }]'
    {
    "result": {
      "status": "Success",
      "response": {
        "artifact_repository": {
          "create": [
            {
              "id": "2e50ba8bdbaa4010bc8cdd384b961988"
            }
          ],
          "update": [],
          "found": [
            {
              "id": "2e50ba8bdbaa4010bc8cdd384b961988"
            }
          ]
        },
        "artifact": {
          "create": [
            {
              "id": "6a50f603dbea4010bc8cdd384b96193d"
            },
            {
              "id": "2e50f603dbea4010bc8cdd384b96193f"
            }
          ],
          "update": [],
          "found": []
        },
        "artifact_version": {
          "create": [
            {
              "id": "a650f603dbea4010bc8cdd384b96193e"
            },
            {
              "id": "6250f603dbea4010bc8cdd384b961940"
            }
          ],
          "update": [],
          "found": []
        },
        "artifact_register_requests": {
          "create": [
            {
              "id": "6250f603dbea4010bc8cdd384b96193f"
            },
            {
              "id": "6650f603dbea4010bc8cdd384b961940"
            }
          ],
          "update": [],
          "found": []
        }
      }
     }
    }

    DevOps - POST /devops/onboarding/app

    Cria um evento de aplicação de integração que é processado de forma assíncrona pelo DevOps serviço.

    Este endpoint pode executar as seguintes ações:
    • Criar aplicações.
    • Associar DevOps objetos como plano, repositório e pipeline, para uma aplicação.
    • Crie um registro de etapa de mudança e associe um processo de aprovação de mudança a um pipeline.

    Todas essas ações são específicas para ferramentas e capacidades. A tabela a seguir descreve as ações disponíveis para cada ferramenta compatível.

    Matriz de integração da aplicação

    Formato de URL

    URL com controle de versão: /api/sn_devops//devops/onboarding/app

    URL padrão: /api/sn_devops/devops/onboarding/app

    Nota:
    As versões disponíveis são especificadas em REST API Explorer . Para REST APIs com script, há informações adicionais de versão no Formulário de serviço REST com script .

    Parâmetros de solicitação compatíveis

    Tabela 49. Parâmetros de caminho
    Nome Descrição
    api_version Opcional. Versão do endpoint a ser acessado. Por exemplo, v1 ou v2 . Especifique este valor somente para usar uma versão de endpoint diferente da mais recente.

    Tipo de dados: Cadeia de caracteres

    Tabela 50. Parâmetros de consulta
    Nome Descrição
    Nenhum(a)
    Tabela 51. Parâmetros do corpo da solicitação
    Nome Descrição
    apps Matriz de objetos que definem os apps a serem criados no associado ServiceNow instância.

    Tipo de dados: Matriz

    "apps": [{
      "bussinessApp": "String",
      "name": "String"
    }]
    Apps.bussinessApp Nome do cmdb_ci_business_app para o qual mapeia a aplicação. Vincula o. DevOps Aplicação para a aplicação do CMDB especificada.

    Tipo de dados: Cadeia de caracteres

    apps.name Obrigatório. Nome amigável da aplicação a ser criada para criar. Um app é um DevOps objeto de contêiner de produto que une planos, repositórios e pipelines.

    Tipo de dados: Cadeia de caracteres

    credenciais Obrigatório. Credenciais a serem usadas para a criação do webhook. O webhook criado é usado pela ferramenta para enviar notificações.

    Tipo de dados: Objeto

    "credentials": {
      "name": "String",
      "password": "String"
    }
    credentials.name Obrigatório. ServiceNow ID do usuário que está fazendo a solicitação de endpoint. Este usuário deve ter a função devops.integration.user. A partir da versão 1.34.1, este usuário deve ter a função sn_devops.admin.

    Tipo de dados: Cadeia de caracteres

    Tabela: Usuário [sys_user]

    credentials.password Obrigatório. Senha do usuário especificada em credenitals.nameparâmetro.

    Tipo de dados: Cadeia de caracteres

    pipelines Lista de pipelines a serem associados a aplicações.

    Tipo de dados: Matriz de objetos

    "pipelines": [{
      "app": "String",
      "name": "String",
      "tool": "String"
    }]
    pipelines.app Necessário se for um pipelineso objeto foi especificado. Nome da aplicação a ser associada ao plano especificado em pipelines.nameparâmetro. A aplicação já deve ter sido criada ou estar especificada em appsobjeto desta solicitação.

    Tipo de dados: Cadeia de caracteres

    pipelines.changeSteps Mude as etapas a serem criadas para o pipeline especificado em pipelines.namecampo.

    Tipo de dados: Matriz de objetos

    "changeSteps": [{
      "changeApprovalGroup": "String",
      "changeControlledBranches": "String",
      "changeType": "String",
      "name": "String",
      "type": "String"
    }]
    pipelines.changeSteps.changeApprovalGroup Necessário se for um changeStepso objeto foi especificado. Nome do grupo de aprovação de mudança a ser associado ao pipeline. Este grupo já deve existir em ServiceNow instância.

    Tipo de dados: Cadeia de caracteres

    Tabela: Grupo [sys_user_group]

    pipelines.changeSteps.changeControlledBranches Lista separada por vírgulas de ramificações de código que estão sob controle de mudança. Isso se aplica somente ao suporte a várias ramificações.

    Tipo de dados: Cadeia de caracteres

    Padrão: * (Todas as ramificações)

    pipelines.changeSteps.changeType Necessário se for um changeStepso objeto foi especificado. Tipo de solicitação de mudança a ser criada.

    Tipo de dados: Cadeia de caracteres

    Tabela: No campo Tipo da tabela Solicitação de mudança [change_request].

    pipelines.changeSteps.name Necessário se for um changeStepso objeto foi especificado. Nome da etapa a ser criada. O nome da etapa deve corresponder ao nome da etapa correspondente no pipeline da ferramenta de orquestração.

    Tipo de dados: Cadeia de caracteres

    pipelines.changeSteps.type Necessário se for um changeStepso objeto foi especificado. Tipo de etapa a ser criada.

    Tipo de dados: Cadeia de caracteres

    Tabela: No campo Tipo da tabela Etapas [sn_devops_step].

    pipelines.name Necessário se for um pipelineso objeto foi especificado. Nome do pipeline a ser associado à aplicação especificada em pipelines.appparâmetro. Este pipeline já deve ser descoberto no ServiceNow instância.

    Tipo de dados: Cadeia de caracteres

    pipelines.project Necessário se for um pipelines O objeto é especificado e pipelines.tool oferece suporte à entidade Projetos (por exemplo, a ferramenta ADO). Projeto a ser associado ao pipeline para criar um identificador exclusivo de pipeline/ferramenta. O valor do parâmetro deve derivar de um projeto na tabela Projeto [sn_devops_project].

    Tipo de dados: Cadeia de caracteres

    pipelines.tool Necessário se for um pipelineso objeto foi especificado. Ferramenta a ser associada ao pipeline para criar um identificador exclusivo de pipeline/ferramenta.

    Tipo de dados: Cadeia de caracteres

    planos Lista de planos a serem associados a uma aplicação.

    Tipo de dados: Matriz de objetos

    "plans": [{
      "app": "String",
      "name": "String",
      "tool": "String"
    }]
    plans.apps Necessário se for um planso objeto foi especificado. Nomes de aplicações a serem associadas ao plano especificado no plans.nameparâmetro. Essas aplicações já devem ter sido criadas ou especificadas em appsobjeto desta solicitação.

    Tipo de dados: Matriz de cadeias de caracteres

    plans.name Necessário se for um planso objeto foi especificado. Nome do plano a ser associado à aplicação especificada em plans.appparâmetro. Este plano já deve ser descoberto no ServiceNow instância.

    Tipo de dados: Cadeia de caracteres

    plans.project Necessário se for um planos O objeto é especificado e a entidade plans.tool oferece suporte a projetos (por exemplo, a ferramenta ADO). Ferramenta a ser associada ao pipeline para criar um identificador exclusivo de planos/ferramenta. O valor do parâmetro deve derivar de um projeto na tabela Projeto [sn_devops_project].

    Tipo de dados: Cadeia de caracteres

    plans.tool Necessário se for um planso objeto foi especificado. Ferramenta a ser associada ao plano para criar um identificador exclusivo de plano/ferramenta.

    Tipo de dados: Cadeia de caracteres

    repositórios Lista de repositórios associados a uma aplicação. Se o objeto Repositórios contiver um parâmetro de app, ele mapeará o repositório para a aplicação.

    Tipo de dados: Matriz de objetos

    "repositories": [{
      "app": "String",
      "name": "String",
      "tool": "String"
    }]
    repositories.app Necessário se for um repositorieso objeto foi especificado. Nome da aplicação a ser associada a este repositório. A aplicação já deve ter sido criada ou estar especificada em appsobjeto desta solicitação.

    Tipo de dados: Cadeia de caracteres

    repositories.name Necessário se for um repositorieso objeto foi especificado. Nome do repositório a ser associado à aplicação especificada em repositories.appparâmetro. Este repositório já deve ser descoberto no ServiceNow instância.

    Tipo de dados: Cadeia de caracteres

    repositories.project Necessário se for um repositórios o objeto é especificado e repositories.toolOferece suporte a uma entidade de projetos (por exemplo, a ferramenta ADO). Ferramenta para associar aos repositórios para criar um identificador exclusivo de repositório/ferramenta. O valor do parâmetro deve derivar de um projeto na tabela Projeto [sn_devops_project].

    Tipo de dados: Cadeia de caracteres

    repositórios.tool Necessário se for um repositorieso objeto foi especificado. Nome da ferramenta amigável para associar ao repositório para criar um identificador exclusivo de repositório/ferramenta. A ferramenta já deve ter sido criada no ServiceNow instância.

    Tipo de dados: Cadeia de caracteres

    artifactRepositories.app Necessário se ArfactRepositórios o objeto foi especificado. Nome da aplicação a ser associada a este artifactRepositories. A aplicação já deve ter sido criada ou estar especificada em aplicações objeto desta solicitação.

    Tipo de dados: Cadeia de caracteres

    artifactRepositories.name Necessário se ArfactRepositórios o objeto foi especificado. Nome dos artifactRepositories a serem associados à aplicação especificada em artifactRepositoriesparâmetro .app. Esses artifactRepositories já devem ser descobertos na instância da ServiceNow.

    Tipo de dados: Cadeia de caracteres

    ArtefactRepositórios.tool Necessário se ArfactRepositórios o objeto foi especificado. Nome da ferramenta amigável para associar aos artifactRepositories para criar um identificador exclusivo artifactRepositories /tool. A ferramenta já deve ter sido criada na instância da ServiceNow.

    Tipo de dados: Cadeia de caracteres

    artifactRepositories.project Necessário se ArfactRepositórios o objeto é especificado e repositories.toolOferece suporte à entidade Projetos (por exemplo, a ferramenta ADO). Ferramenta a ser associada ao artifactRepositoriespara criar um identificador exclusivo de pipeline/ferramenta.

    Tipo de dados: Cadeia de caracteres

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 52. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Tipo de conteúdo Formato de dados do corpo da solicitação. Oferece suporte somente a application/json.
    Tabela 53. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 54. Códigos de status
    Código do status Descrição
    202 A solicitação de integração foi criada com sucesso.

    Parâmetros do corpo da resposta

    Nome Descrição
    resultado Resultados da solicitação de integração.
    Tipo de dados: Objeto
    "result": {
      "code": "String",
      "details": "String",
      "errors": {Object],
      "onboardingRequestID": "String",
      "status": "String"
    }
    result.code Código de status HTTP.

    Tipo de dados: Cadeia de caracteres

    result.details Detalhes sobre a solicitação de integração.

    Tipo de dados: Cadeia de caracteres

    resultado.erros Descrição de qualquer erro ocorrido.

    Tipo de dados: Objeto

    resultado.erro.mensagem Mensagens de erro

    Tipo de dados: Cadeia de caracteres

    OnboardingRequestId Identificador exclusivo da solicitação de integração. Use este valor ao chamar devops/onboarding/status endpoint para obter o status do processo de integração associado.

    Tipo de dados: Cadeia de caracteres

    result.status Status da solicitação de integração, Sucesso ou Falha.

    Tipo de dados: Cadeia de caracteres

    Solicitação de curl

    Este exemplo cria o serviço de aluguel de bicicletas da aplicação e o associa ao pipeline Jenkins Aluguel de bicicletas, ao repositório do GitHub nowDevops01/CorpSite e ao plano do Azure testplan_bike_Rental.

    curl -X POST "https://servicenow-instance/api/sn_devops/v1/devops/onboarding/app" \ 
    -H "Accept: application/json" \ 
    -H "Content-Type: application/json" \ 
    -u "username":"password" \ 
    -d "{ 
      "apps": [ 
        { 
          "name": "Bike Rental Service" 
        } 
      ] 
      "pipelines": [ 
        { 
          "tool": "Primary Jenkins", 
          "name": "Bike Rentals", 
          "app": "Bike Rental Service", 
          "changeSteps": [ 
            { 
              "name": "Prod", 
              "type": "deploy", 
              "changeApprovalGroup": "Change Management", 
              "changeType": "normal" 
            } 
          ] 
        } 
      ], 
      "repositories": [ 
        { 
          "tool": "Primary GitHub", 
          "name": "nowDevops01/CorpSite", 
          "app": "Bike Rental Service" 
        } 
      ] 
      "plans": [ 
        { 
          "tool": "Primary Azure", 
          "name": "testPlan_Bike_Rental", 
    "project": "DemoProjecttt", 
          "apps": [ 
            "Bike Rental Service" 
          ] 
        } 
      ] 
    "artifactRepositories": [ 
    { 
    "tool": "AdoTool", 
    "name": "empb5-sonar", 
    "apps": [ 
    "appXXXXtz" 
    ] 
    } 
    ] 
     
      "credentials" : { 
        "name": "devops_user", 
        "password": "devops_password" 
      }  
    } 

    Saída:

    { 
      "result":{ 
        "status": "Success", 
        "details": "Onboarding request has been created. Please use the /status api and the onboarding request number to get the status of the request", 
        "onboardingRequestID": "IBE0001045", 
        "code": "202" 
      } 
    } 

    DevOps - POST /devops/onboarding/tool

    Cria um evento de ferramenta de integração que é processado de forma assíncrona pelo DevOps serviço.

    Dependendo do tipo de ferramenta para a qual a solicitação é publicada, o endpoint executa as seguintes ações:
    • Cria a ferramenta no associado ServiceNow instância
    • Conecta-se à ferramenta
    • Tenta configurar a ferramenta (somente se a conexão for bem-sucedida)
    • Descobre a ferramenta (somente se a conexão for bem-sucedida)
    Todas essas ações são específicas da ferramenta e são executadas com base nos recursos de integração da ferramenta especificada.

    Matriz de integração da ferramenta

    Os resultados de retorno para este endpoint indicam apenas se a solicitação foi publicada, não indicam se as ferramentas associadas foram criadas. A criação real da ferramenta é processada de forma assíncrona. Para obter o status da criação da ferramenta e todas as outras ações, você deve chamar devops/onboarding/status endpoint e passam no onboardingRequestIDparâmetro retornado por este endpoint.

    Para que você possa acessar este endpoint, seu administrador deve ter configurado o. DevOps Alias de conexão e credencial (CreateDevOpsTool) para configurar ferramentas na instância. Para obter detalhes, consulte Instale a Velocidade de mudança do DevOps . Além disso, a entidade de chamada deve ter a função devops.integration.user.

    Formato de URL

    URL com controle de versão: /api/sn_devops//devops/onboarding/tool

    URL padrão: /api/sn_devops/devops/onboarding/tool

    Nota:
    As versões disponíveis são especificadas em REST API Explorer . Para REST APIs com script, há informações adicionais de versão no Formulário de serviço REST com script .

    Parâmetros de solicitação compatíveis

    Tabela 55. Parâmetros de caminho
    Nome Descrição
    api_version Opcional. Versão do endpoint a ser acessado. Por exemplo, v1 ou v2 . Especifique este valor somente para usar uma versão de endpoint diferente da mais recente.

    Tipo de dados: Cadeia de caracteres

    Tabela 56. Parâmetros de consulta
    Nome Descrição
    Nenhum(a)
    Tabela 57. Parâmetros do corpo da solicitação
    Nome Descrição
    credenciais Obrigatório. Credenciais a serem usadas para a criação do webhook. A ferramenta usa o webhook criado para enviar notificações.

    Tipo de dados: Objeto

    "credentials": {
      "name": "String",
      "password": "String"
    }
    credentials.name Obrigatório. ServiceNow identificador do usuário que faz a solicitação de endpoint. Este usuário deve ter a função devops.integration.user. A partir da versão 1.34.1, este usuário deve ter a função sn_devops.admin.

    Tipo de dados: Cadeia de caracteres

    Tabela: Usuário [sys_user]

    credentials.password Obrigatório. Senha do usuário especificada em credenitals.nameparâmetro.

    Tipo de dados: Cadeia de caracteres

    ferramentas Obrigatório. Ferramentas a serem criadas no associado ServiceNow instância. Você pode criar uma ou mais ferramentas em uma única solicitação.

    Tipo de dados: Matriz de objetos

    "tools": [{
      "name": "String",
      "password": "String",
      "type": "String",
      "useMidServer": Boolean,
      "username": "String",
      "url": "String"
    }]
    tools.name Obrigatório. Nome amigável ou rótulo da ferramenta a ser criada. Este nome é usado para identificar a ferramenta no DevOps serviço.

    Tipo de dados: Cadeia de caracteres

    tools.password Necessário, exceto para a ferramenta Agile. Senha a ser usada para acessar a ferramenta. As autenticações compatíveis são básicas e token; OAuth não é compatível.

    Tipo de dados: Cadeia de caracteres

    tools.type Obrigatório. Tipo de ferramenta a ser criada, como GitHub ou BitBucket. O valor especificado deve ser um dos rótulos de ferramenta na tabela Integrações de ferramentas [sn_devops_tool_integration].

    Tipo de dados: Cadeia de caracteres

    tools.useMidServer Sinalizador que indica se a ferramenta se conecta por meio de um MID Server.

    Valores válidos:

    • Verdadeiro: Conecta-se por meio de um MID Server.
    • Falso: Não se conecta por meio de um MID Server.

    Tipo de dados: Booliano

    tools.username Necessário, exceto para a ferramenta Agile. Nome de usuário a ser usado para acessar a ferramenta por meio deste endpoint.

    Tipo de dados: Cadeia de caracteres

    tools.url Necessário, exceto para a ferramenta Agile. URL da ferramenta a ser criada. . DevOps O serviço usa este URL para integrar com a ferramenta . Se estiver usando a ferramenta "Azure DevOps", tools.urlPode conter o URL da organização ADO ou o URL do projeto ADO.

    Ao fornecer um URL da organização ADO, a API descobre todos os projetos na organização especificada e não configura nenhum projeto. Ao fornecer um URL do projeto ADO, a API descobre entidades relacionadas ao projeto, como (pipelines, repositórios e planos) e também configura um projeto se o credentialso objeto está presente. Para dizer explicitamente à API para ignorar a configuração do projeto, configure um sinalizador configureTool(tipo: booliano) a falso . Se configureToolnão foi fornecido explicitamente na carga ou está definido como verdadeiro , a ferramenta é configurada automaticamente.

    Tipo de dados: Cadeia de caracteres

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 58. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Tipo de conteúdo Formato de dados do corpo da solicitação. Oferece suporte somente a application/json.
    Tabela 59. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 60. Códigos de status
    Código do status Descrição
    202 A solicitação de integração foi criada com sucesso.

    Parâmetros do corpo da resposta

    Nome Descrição
    resultado Resultados da solicitação de integração.
    Tipo de dados: Objeto
    "result": {
      "code": "String",
      "details": "String",
      "errors": {Object},
      "onboardingRequestID": "String",
      "status": "String"
    }
    result.code Código de status HTTP.

    Tipo de dados: Cadeia de caracteres

    result.details Mensagem detalhada sobre a solicitação de integração.

    Tipo de dados: Cadeia de caracteres

    resultado.erros Descrição de qualquer erro ocorrido.

    Tipo de dados: Objeto

    resultado.erro.mensagem Mensagens de erro

    Tipo de dados: Cadeia de caracteres

    OnboardingRequestId Identificador exclusivo da solicitação de integração. Use este valor ao chamar devops/onboarding/status endpoint para obter o status do processo de integração da ferramenta associada.

    Tipo de dados: Cadeia de caracteres

    result.status Status da solicitação de integração, Sucesso ou Falha.

    Tipo de dados: Cadeia de caracteres

    Solicitação de curl

    O exemplo a seguir mostra como integrar o GitHub.

    curl -X POST "https://servicenow-instance/api/sn_devops/v1/devops/onboarding/tool" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -u "username":"password" \
    -d {
      "tool":[{
        "name": "Primary GitHub",
        "type": "GitHub",
        "url": "https"//api.github.com",
        "username": "username",
        "password": "password",
        "useMidServer": false 
      }]
      "credentials" : {
        "name": "devops_user",
        "password": "devops_password"
      }
    }

    {
      "result":{
        "status": "Success",
        "details": "Onboarding request has been created. Please use the /status api and the onboarding request number to get the status of the request",
        "onboardingRequestID": "IBE0001041",
        "code": "202"
      }
    }

    DevOps - POST /devops/Orchestration/changeControl

    Registra um retorno de chamada com um ServiceNow instância de uma tarefa de orquestração sob controle de mudança, que pode ser chamada depois que uma decisão é tomada na solicitação de mudança.

    Antes de chamar este endpoint, você deve ter uma tarefa de orquestração criada em seu ServiceNow instância. Você pode criar esta tarefa por meio da Descoberta ou chamando o. DevOps - POST /devops/Orchestration/stepMapping endpoint. Você também deve garantir que a tarefa de Orquestração esteja associada a uma etapa de pipeline definida anteriormente e que o controle de mudanças esteja habilitado (selecionando Controle de mudanças No formulário Fase da aplicação.) Para obter detalhes, consulte Acelerar a mudança do DevOps .

    Formato de URL

    URL com controle de versão: /api/sn_devops//devops/Orchestration/changeControl

    URL padrão: /api/sn_devops/devops/Orchestration/changeControl

    Nota:
    As versões disponíveis são especificadas em REST API Explorer . Para REST APIs com script, há informações adicionais de versão no Formulário de serviço REST com script .

    Parâmetros de solicitação compatíveis

    Tabela 61. Parâmetros de caminho
    Nome Descrição
    api_version Opcional. Versão do endpoint a ser acessado. Por exemplo, v1 ou v2 . Especifique este valor somente para usar uma versão de endpoint diferente da mais recente.

    Tipo de dados: Cadeia de caracteres

    Tabela 62. Parâmetros de consulta
    Nome Descrição
    toolId Obrigatório. Sys_id do DevOps ferramenta para a qual colocar a tarefa especificada no controle de mudanças.

    Tipo de dados: Cadeia de caracteres

    Tabela: Ferramenta de Orquestração [sn_devops_Orchestration_tool]

    ToolType Tipo de ferramenta.

    Valor válido: Qualquer valor que identifique a ferramenta, como "jenkins".

    Tipo de dados: Cadeia de caracteres

    Tabela 63. Parâmetros do corpo da solicitação
    Nome Descrição
    callbackURL Obrigatório. URL que o ServiceNow a instância pode retornar a chamada depois que o processo de aprovação da solicitação de mudança associado for concluído. Este retorno de chamada deve permitir que a execução do pipeline continue ou não, com base no resultado da aprovação.

    Tipo de dados: Cadeia de caracteres

    ChangeRequestDetails Pares nome-valor dos campos a serem definidos ao fechar uma solicitação de mudança. Este objeto pode conter todos os campos no registro de solicitação de mudança, exceto o seguinte:
    • impacto
    • número
    • risco
    • risk_impact_analysis
    • sys_id

    Se esses campos estiverem incluídos na solicitação, o endpoint retornará um erro 400 e a solicitação de mudança não será atualizada. Além disso, se você incluir campos que exigem que outros campos obrigatórios sejam definidos e esses campos não forem enviados, a solicitação falhará durante o processamento posterior do pipeline. Esta falha é observada nas anotações de trabalho da solicitação de mudança, junto com uma mensagem de erro para essa solicitação de mudança específica, como: Falha na atualização da solicitação de mudança com o motivo: Mensagem de erro da plataforma. Cancelando a solicitação de mudança e a execução da etapa relacionada.

    Você também pode passar o parâmetro booliano setCloseCodeNeste objeto para especificar se as informações de fechamento devem ser definidas no registro de solicitação de mudança associado.
    • Se definido como verdadeiro, o campo close_code será definido como o status do trabalho e o campo close_notes será definido como um link para a execução da etapa no registro de solicitação de mudança associado. O valor padrão é verdadeiro.
    • Se definido como falso, os campos close_code e close_notes não serão definidos e um link para a execução da etapa será definido no campo work_notes.

    Tipo de dados: Objeto

    IsMultiBranch Se a ferramenta de Orquestração for Jenkins, sinalizador que indica se o projeto é do tipo Multibranch.
    Valores válidos:
    • Verdadeiro: O projeto é do tipo Multiramificação.
    • Falso: O projeto não é do tipo Multibranch.

    Tipo de dados: Booliano

    Padrão: falso

    OrquestrationTaskDetails Obrigatório. Descrição da tarefa de Orquestração.

    Tipo de dados: Objeto

    "orchestrationTaskDetails": {
      "message": "String",
      "triggerType": "String",
      "upstreamTaskExecutionURL": "String"
    }
    OrquestrationTaskDetails.message Mensagem de texto de formato livre.

    Tipo de dados: Cadeia de caracteres

    OrquestrationTaskDetails.triggerType Obrigatório. A forma como a tarefa de orquestração foi iniciada.

    Valores válidos:

    • scm: A confirmação do código da ferramenta Git/scm acionou o trabalho.
    • Upstream: O trabalho upstream acionou este trabalho.
    • Usuário: O usuário iniciou o trabalho manualmente.

    Tipo de dados: Cadeia de caracteres

    OrquestrationTaskDetails.upstreamTaskExecutionURL Necessário se triggerTypeestá definido como upstream . URL de execução da tarefa ascendente.

    Por exemplo: https://jenkins.mycompany.com:8080/job/Mobile-Platform-test/40/

    Tipo de dados: Cadeia de caracteres

    OrquestrationTaskURL Obrigatório. URL da tarefa de orquestração para a qual o retorno de chamada será criado.

    Por exemplo: https://jenkins.mycompany.com:8080/orchestration_task/Mobile-Platform-deploy/

    Tipo de dados: Cadeia de caracteres

    Nó Pai Se a tarefa de Orquestração for uma secundária aninhada em uma tarefa de Orquestração primária, esse valor conterá os detalhes do nó primário.

    Tipo de dados: Objeto

    "parentNode": {
      "id": "String",
      "name": "String",
      "upstreamStageName": "String",
      "upstreamTaskExecutionURL": "String"
    }
    parentNode.id ID exclusivo do nó primário.

    No Jenkins, este valor corresponde a um ID de fase do pipeline.

    Tipo de dados: Cadeia de caracteres
    parentNode.name Nome do nó primário.

    No Jenkins, este valor corresponde a um nome de fase de pipeline.

    Tipo de dados: Cadeia de caracteres
    ParentNode.upstreamStageName Nome da tarefa de orquestração ascendente do nó primário.

    No Jenkins, este valor corresponde a um nome de fase de pipeline.

    Tipo de dados: Cadeia de caracteres
    ParentNode.upstreamTaskExecutionURL URL da execução da tarefa ascendente do nó primário.

    No Jenkins, este valor corresponde a um URL de execução da fase do pipeline.

    Tipo de dados: Cadeia de caracteres
    NomeParentStageName Se a tarefa de orquestração for uma secundária aninhada em uma tarefa de orquestração primária, o nome da tarefa de orquestração primária.

    Tipo de dados: Cadeia de caracteres

    ParentStageURL Se a tarefa de orquestração for uma secundária aninhada em uma tarefa de orquestração primária, o URL da tarefa de orquestração primária.

    Tipo de dados: Cadeia de caracteres

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 64. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Tipos compatíveis: application/jsonou application/xml.

    Padrão: application/json

    Autorização
    A partir da v2, esta API oferece suporte à autenticação baseada em token. Os tokens podem ser adquiridos clicando em Token de cópia Botão no registro da ferramenta, localizado na tabela Ferramenta [sn_devops_tool]. O token pode ser usado em um cabeçalho de autorização no formato Autorização: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .
    Nota:
    Se os detalhes da Autenticação básica (nome de usuário e senha) forem fornecidos além de um cabeçalho de autorização com token, a Autenticação básica terá precedência.

    . devops.systemo usuário não está disponível em sua instância, use Alterne para este usuário depois que a autenticação baseada em token for bem-sucedida propriedade. Esta propriedade permite definir qualquer usuário que tenha a função sn_devops.integration, que é necessária para concluir a autenticação de token. Para obter informações, consulte DevOps Change Velocity properties.

    Tipo de conteúdo Formato de dados do corpo da solicitação. Oferece suporte somente a application/json.
    Tabela 65. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 66. Códigos de status
    Código do status Descrição
    201 Solicitação concluída com sucesso.
    400 Solicitação Incorreta. Um tipo de solicitação incorreto ou uma solicitação malformada foi detectada.
    401 Autenticação inválida ou ausente.
    500 Erro interno do servidor. Ocorreu um erro inesperado ao processar a solicitação. A resposta contém informações adicionais sobre o erro.

    Parâmetros do corpo da resposta

    Nome Descrição
    ChangeControl Sinalizador que indica se a tarefa de orquestração está sob controle de mudança.
    Valores possíveis:
    • Verdadeiro: Sob controle de mudança.
    • Falso: Não está sob controle de mudança.

    Tipo de dados: Booliano

    Solicitação de curl

    curl -X POST "https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/changeControl?toolId=f0ca45679323008b52f3b457415ae6&toolType=jenkins"
    -H "accept: application/json"\
    -H "Content-Type: application/json"\
    -u "username":"password"\
    -d "{
      \"orchestrationTaskURL\":\"https://jenkins.mycompany.com:8080/orchestration task/Mobile-Platform-deploy/\",
      \"callbackURL\":\"https://jenkins.mycompany.com:8080/sn-devops/964aca59-0cae-4d9b-a36d-5929f426cf31\",
      \"orchestrationTaskDetails\":{
        \"message\":\"Started by upstream project \\\"Mobile-Platform-test\\\" build number 40\",
        \"triggerType\":\"upstream\",
        \"upstreamTaskExecutionURL\":\"https://jenkins.mycompany.com:8080/job/Mobile-Platform-test/40/\"}
    }"

    Corpo da resposta.

    {
    "result": {
       "changeControl": true,
       "status": "Success"
       }
    }

    Solicitação de curl

    Este exemplo mostra como passar campos no changeRequestDetailsobjeto ao fechar uma solicitação de mudança.

    curl -X POST "https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/changeControl?toolId=f0ca45679323008b52f3b457415ae6&toolType=jenkins"
    -H "accept: application/json"\
    -H "Content-Type: application/json"\
    -u "username":"password"\
    -d "{
      "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":"test user1"
          },
          "watch_list":[
            {
              "name":"test user1"
            },
            {
              "name":"test user2"
            },
            {
              "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",
        }
      }
    }"

    Corpo da resposta.

    {
    "result": {
       "changeControl": true,
       "status": "Success"
       }
    }

    DevOps - POST /devops/Orchestration/stepMapping

    Verifica se as informações que estão sendo passadas são válidas para a criação de uma tarefa de orquestração e são válidas para associação a uma etapa criada anteriormente. Se ambos forem válidos, ele criará a tarefa de orquestração e fará a associação.

    Formato de URL

    URL com controle de versão: /api/sn_devops//devops/Orchestration/stepMapping

    URL padrão: /api/sn_devops/devops/Orchestration/stepMapping

    Nota:
    As versões disponíveis são especificadas em REST API Explorer . Para REST APIs com script, há informações adicionais de versão no Formulário de serviço REST com script .

    Parâmetros de solicitação compatíveis

    Tabela 67. Parâmetros de caminho
    Nome Descrição
    api_version Opcional. Versão do endpoint a ser acessado. Por exemplo, v1 ou v2 . Especifique este valor somente para usar uma versão de endpoint diferente da mais recente.

    Tipo de dados: Cadeia de caracteres

    Tabela 68. Parâmetros de consulta
    Nome Descrição
    toolId Obrigatório. Sys_id da ferramenta de Orquestração. Localizado na tabela Ferramenta de Orquestração [sn_devops_Orchestration_tool].

    Tipo de dados: Cadeia de caracteres

    ToolType Obrigatório. Tipo de ferramenta.

    Valores válidos: jenkins

    Tipo de dados: Cadeia de caracteres

    Tabela 69. Parâmetros do corpo da solicitação
    Nome Descrição
    BranchName Nome da ramificação associada à tarefa de orquestração.

    Tipo de dados: Cadeia de caracteres

    IsMultiBranch Se a ferramenta de Orquestração for Jenkins, sinalizador que indica se o projeto é do tipo Multibranch.
    Valores válidos:
    • Verdadeiro: O projeto é do tipo Multiramificação.
    • Falso: O projeto não é do tipo Multibranch.

    Tipo de dados: Booliano

    Padrão: falso

    Nó Pai Se a tarefa de Orquestração for uma secundária aninhada em uma tarefa de Orquestração primária, esse valor conterá os detalhes do nó primário.

    Tipo de dados: Objeto

    "parentNode": {
      "id": "String",
      "name": "String",
      "upstreamStageName": "String",
      "upstreamTaskExecutionURL": "String"
    }
    parentNode.id ID exclusivo do nó primário.

    No Jenkins, este valor corresponde a um ID de fase do pipeline.

    Tipo de dados: Cadeia de caracteres
    parentNode.name Nome do nó primário.

    No Jenkins, este valor corresponde a um nome de fase de pipeline.

    Tipo de dados: Cadeia de caracteres
    ParentNode.upstreamStageName Nome da tarefa de orquestração ascendente do nó primário.

    No Jenkins, este valor corresponde a um nome de fase de pipeline.

    Tipo de dados: Cadeia de caracteres
    ParentNode.upstreamTaskExecutionURL URL da execução da tarefa ascendente do nó primário.

    No Jenkins, este valor corresponde a um URL de execução da fase do pipeline.

    Tipo de dados: Cadeia de caracteres
    NomeParentStageName Se a tarefa de orquestração for uma secundária aninhada em uma tarefa de orquestração primária, o nome da tarefa de orquestração primária.

    Tipo de dados: Cadeia de caracteres

    ParentStageURL Se a tarefa de orquestração for uma secundária aninhada em uma tarefa de orquestração primária, o URL da tarefa de orquestração primária.

    Tipo de dados: Cadeia de caracteres

    OrquestrationTaskName Obrigatório. Nome da tarefa de orquestração. Esta é a mesma tarefa referenciada em orchestrationTaskURL.

    Tipo de dados: Cadeia de caracteres

    OrquestrationTaskURL Obrigatório. URL da tarefa de orquestração.

    Por exemplo: https://jenkins.mycompany.com:8080/orchestration_task/Mobile-Platform-deploy/

    Tipo de dados: Cadeia de caracteres

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 70. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Autorização
    A partir da v2, esta API oferece suporte à autenticação baseada em token. Os tokens podem ser adquiridos clicando em Token de cópia Botão no registro da ferramenta, localizado na tabela Ferramenta [sn_devops_tool]. O token pode ser usado em um cabeçalho de autorização no formato Autorização: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .
    Nota:
    Se os detalhes da Autenticação básica (nome de usuário e senha) forem fornecidos além de um cabeçalho de autorização com token, a Autenticação básica terá precedência.

    . devops.systemo usuário não está disponível em sua instância, use Alterne para este usuário depois que a autenticação baseada em token for bem-sucedida propriedade. Esta propriedade permite definir qualquer usuário que tenha a função sn_devops.integration, que é necessária para concluir a autenticação de token. Para obter informações, consulte DevOps Change Velocity properties.

    Tipo de conteúdo Formato de dados do corpo da solicitação. Oferece suporte somente a application/json.
    Tabela 71. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 72. Códigos de status
    Código do status Descrição
    201 Bem-sucedido. A solicitação foi processada com sucesso.
    400 Solicitação Incorreta. Um tipo de solicitação incorreto ou uma solicitação malformada foi detectada.
    401 Não autorizado. As credenciais do usuário estão incorretas ou não foram aprovadas.
    500 Erro interno do servidor. Ocorreu um erro inesperado ao processar a solicitação. A resposta contém informações adicionais sobre o erro.

    Parâmetros do corpo da resposta

    Elemento Descrição
    status Sinalizador que indica se a verificação foi bem-sucedida.
    Valores válidos:
    • Verdadeiro: A verificação foi bem-sucedida.
    • Falso: A verificação não foi bem-sucedida.

    Tipo de dados: Booliano

    StepValid Sinalizador que indica se as informações enviadas são válidas.
    Valores válidos:
    • Verdadeiro: As informações enviadas são válidas.
    • Falso: As informações enviadas não são válidas.

    Tipo de dados: Booliano

    Solicitação de cURL de amostra

    curl -X POST "https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/stepMapping?toolId=f0ca45679323008b52f3b457415ae6&toolType=jenkins"
    -H "Accept: application/json"\
    -H "Content-Type: application/json"\
    -u "username":"password"\
    -d "{
      \"orchestrationTaskURL\":\" http://127.0.0.1:8090/jenkins/job/CorpSite/job/primary#deploy PROD/\",
      \"orchestrationTaskName\":\" primary#deploy PROD\"
    }"

    Se as informações forem válidas.

    {
      "result": {
        "stepValid": true,
        "status": "Success"
      }
    }

    Se as informações forem inválidas.

    {
      "result": {
        "stepValid": false,
        "status": "Success"
      }
    }

    DevOps - POST /devops/package/registration

    Permite que as ferramentas de orquestração criem novos pacotes de artefatos que contêm versões de artefatos especificadas.

    Pacotes de artefatos são usados para exibir confirmações para aprovadores de mudança quando eles exibem uma solicitação de mudança. Para que as confirmações sejam exibidas em solicitações de mudança, o pacote deve ser criado na fase anterior à fase que contém a aprovação de mudança.

    Todas as versões de artefato incluídas na solicitação de registro de pacote já devem estar registradas no DevOps. Para obter detalhes sobre como registrar versões de artefatos, consulte DevOps - POST /devops/artefact/registration.

    Normalmente, você passará no artifacts.versione. artifacts.nameparâmetros ao identificar uma versão de artefato a ser incluída em um pacote. Você também pode usar os recursos avançados deste endpoint, que permitem passar os detalhes de compilação para cada versão de artefato em vez da própria versão. Os detalhes de compilação específicos do artefato incluem os seguintes parâmetros:
    • artifacts.pipelineName ou artifacts.projectName
    • artifacts.taskExecutionNumber
    • artifacts.stageName
    • artifacts.branchName
    O endpoint usa esses detalhes de compilação específicos do artefato para pesquisar informações de execução da tarefa e, em seguida, copia as versões associadas para o pacote. Ele usa detalhes de compilação não específicos de artefato ( pipelineNameou projectName, taskExecutionNumber, branchNamee stageName) para associar o pacote criado a uma execução de pipeline.
    Nota:
    Este endpoint não oferece suporte a atualizações. Sempre cria um novo pacote, mesmo que já exista um com o mesmo nome.

    Para obter informações adicionais sobre pacotes de artefatos, consulte DevOps Change Acceleration para versões .

    Formato de URL

    URL com controle de versão: /api/sn_devops//devops/package/registration

    URL padrão: /api/sn_devops/devops/package/registration

    Nota:
    As versões disponíveis são especificadas em REST API Explorer . Para REST APIs com script, há informações adicionais de versão no Formulário de serviço REST com script .

    Parâmetros de solicitação compatíveis

    Tabela 73. Parâmetros de caminho
    Nome Descrição
    api_version Opcional. Versão do endpoint a ser acessado. Por exemplo, v1 ou v2 . Especifique este valor somente para usar uma versão de endpoint diferente da mais recente.

    Tipo de dados: Cadeia de caracteres

    Tabela 74. Parâmetros de consulta
    Nome Descrição
    orchestrationToolId Obrigatório. Sys_id da ferramenta de Orquestração associada ao pacote de artefatos. O endpoint usa essas informações para localizar informações de execução da tarefa.

    Tipo de dados: Cadeia de caracteres

    Tabela: Ferramenta de Orquestração [sn_devops_Orchestration_tool]

    toolId Sys_id da ferramenta de artefato associada ao pacote de artefatos.

    Tipo de dados: Cadeia de caracteres

    Tabela: Ferramenta de artefato [sn_devops_artifact_tool]

    Tabela 75. Parâmetros do corpo da solicitação
    Nome Descrição
    artefatos Pelo menos uma entrada necessária. Matriz de objetos na qual cada objeto identifica exclusivamente uma versão de artefato a ser incluída no pacote.

    Tipo de dados: Matriz de objetos

    "artifacts": [
    {
      "branchName": "String",
      "name": "String",
      "pipelineName": "String",
      "projectName": "String",
      "repositoryName": "String",
      "stageName": "String",
      "taskExecutionNumber": "String",
      "version": "String"
    ]
    artifacts.branchName Necessário se artifact.versionnão foi aprovado e é uma configuração de várias ramificações. Nome da ramificação na qual as versões do artefato são armazenadas.

    Tipo de dados: Cadeia de caracteres

    Comprimento máximo: 160

    Padrão: Nulo

    artifacts.name Obrigatório. Nome do arquivo de artefato.

    Tipo de dados: Cadeia de caracteres

    Tamanho máximo: 160 caracteres

    Artifacts.pipelineName Necessário se artifact.versione. artifacts.projectNamenão foram aprovados. Nome do pipeline.

    Tipo de dados: Cadeia de caracteres

    Comprimento máximo: 160

    Padrão: Nulo

    artifacts.projectName Necessário se artifact.versione. artifact.pipelineNamenão foram aprovados. Nome do projeto de forma livre.

    Tipo de dados: Cadeia de caracteres

    Comprimento máximo: 160

    Padrão: Nulo

    Artifacts.positoryName Obrigatório. Nome do repositório de artefatos.

    Tipo de dados: Cadeia de caracteres

    Tamanho máximo: 160 caracteres

    Artifacts.stageName Necessário se artifact.versionnão foi aprovado. Nome da fase.

    Tipo de dados: Cadeia de caracteres

    Comprimento máximo: 160

    Padrão: Nulo

    Artefacts.taskExecutitionNumber Necessário se artifact.versionnão foi aprovado. Número de execução do pipeline.

    Tipo de dados: Cadeia de caracteres

    Padrão: Nulo

    artifacts.version Necessário se os detalhes da compilação não forem fornecidos. Versão dos artefatos.

    Tipo de dados: Cadeia de caracteres

    Formato: <Major>.<Minor>

    Padrão: Nulo

    BranchName Necessário se for um projeto de várias ramificações. Nome da ramificação no repositório onde os artefatos estão armazenados.

    Tipo de dados: Cadeia de caracteres

    Tamanho máximo: 200 caracteres

    Padrão: Nulo

    nome Obrigatório. Nome do pacote.

    Tipo de dados: Cadeia de caracteres

    Tamanho máximo: 160 caracteres

    pipelineName Necessário se projectNamenão foi aprovado. Nome do pipeline.

    Tipo de dados: Cadeia de caracteres

    Tamanho máximo: 160 caracteres

    Padrão: Nulo

    projectName Necessário se pipelineNamenão foi aprovado. Nome do projeto de forma livre.

    Tipo de dados: Cadeia de caracteres

    Comprimento máximo: 160

    Padrão: Nulo

    NomeFase Necessário se pipelineNameaprovado. Nome da fase.

    Tipo de dados: Cadeia de caracteres

    Tamanho máximo: 160 caracteres

    Padrão: Nulo

    TasExecutionNumber Obrigatório. Número de execução do pipeline.

    Tipo de dados: Cadeia de caracteres

    Tamanho máximo: 128 caracteres

    Padrão: Nulo

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 76. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Autorização
    A partir da v2, esta API oferece suporte à autenticação baseada em token. Os tokens podem ser adquiridos clicando em Token de cópia Botão no registro da ferramenta, localizado na tabela Ferramenta [sn_devops_tool]. O token pode ser usado em um cabeçalho de autorização no formato Autorização: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .
    Nota:
    Se os detalhes da Autenticação básica (nome de usuário e senha) forem fornecidos além de um cabeçalho de autorização com token, a Autenticação básica terá precedência.

    . devops.systemo usuário não está disponível em sua instância, use Alterne para este usuário depois que a autenticação baseada em token for bem-sucedida propriedade. Esta propriedade permite definir qualquer usuário que tenha a função sn_devops.integration, que é necessária para concluir a autenticação de token. Para obter informações, consulte DevOps Change Velocity properties.

    Tipo de conteúdo Formato de dados do corpo da solicitação. Oferece suporte somente a application/json.
    Tabela 77. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 78. Códigos de status
    Código do status Descrição
    200 Sucesso. Corpo da resposta bem-sucedida.
    201 Criado. Corpo da resposta bem-sucedida.
    400 Solicitação Incorreta. O URI da solicitação não corresponde às APIs no sistema ou a operação falhou por motivos desconhecidos. Cabeçalhos inválidos também podem causar este erro.
    500 Erro interno do servidor. Ocorreu um erro inesperado ao processar a solicitação. A resposta contém informações adicionais sobre o erro.

    Parâmetros do corpo da resposta

    Nome Descrição
    resposta Resultados da solicitação de registro de pacote.

    Tipo de dados: Objeto

    "response": {
      "artifact_register_requests": {Object},
      "sn_devops_m2m_artifact_version_package": {Object},
      "sn_devops_package": {Object}
    }
    response.artifact_register_requests Resultados de todas as solicitações de registro que não concluíram o processamento e foram armazenadas na tabela Solicitação em fases do artefato [sn_devops_artifact_staging].

    Tipo de dados: Objeto

    "artifact_register_requests": {
      "create": [Array],
      "found": [Array],
      "update": [Array]
    }
    response.artifact_register_requests.create Se a solicitação criou registros de preparação de pacote, a lista de sys_ids dos registros de preparação criados.

    Tipo de dados: Matriz de objetos

    "create": [
      {
        "id": "String"
      }
    ]
    response.artifact_register_requests.create.id Sys_id do registro de preparação de pacote criado pela solicitação.

    Tipo de dados: Cadeia de caracteres

    response.artifact_register_requests.found Se os registros de preparação de pacote associados já existirem, a lista de sys_ids dos registros existentes.
    Nota:
    Nenhuma modificação é feita nos pacotes existentes.

    Tipo de dados: Matriz de objetos

    "found": [
      {
        "id": "String"
      }
    ]
    response.artifact_register_requests.found.id Sys_id de um registro de preparação de pacote existente.

    Tipo de dados: Cadeia de caracteres

    response.artifact_register_requests.update Atualmente não usado.
    response.artifact_register_requests.update.id Atualmente não usado.
    response.sn_devops_m2m_artifact_version_package Resultados para cada versão de artefato associada a um pacote.

    Tipo de dados: Objeto

    "sn_devops_m2m_artifact_version_package": {
      "create": [Array],
      "found": [Array],
      "update": [Array]
    }
    response.sn_devops_m2m_artifact_version_package.create Se a solicitação criou registros vinculando versões de artefato a pacotes, a lista de sys_ids dos registros criados.

    Tipo de dados: Matriz de objetos

    "create": [
      {
        "id": "String"
      }
    ]

    Tabela: Versão do artefato para pacote [sn_devops_m2m_artifact_version_package]

    response.sn_devops_m2m_artifact_version_package.create.id Sys_id do registro Versão do artefato para pacote criado pela solicitação.

    Tipo de dados: Cadeia de caracteres

    response.sn_devops_m2m_artifact_version_package.found Se um registro de vinculação já existir na tabela Versão de artefatos para pacote, a lista de sys_ids dos registros de vinculação existentes.
    Nota:
    Nenhuma modificação é feita nos registros existentes.

    Tipo de dados: Matriz de objetos

    "found": [
      {
        "id": "String"
      }
    ]
    response.sn_devops_m2m_artifact_version_package.found.id Sys_id da versão do artefato existente para o registro Pacote.

    Tipo de dados: Cadeia de caracteres

    response.sn_devops_m2m_artifact_version_package.update

    Atualmente não usado.

    response.sn_devops_m2m_artifact_version_package.update.id

    Atualmente não usado.

    response.sn_devops_package Resultados de todos os registros de pacote na tabela Pacotes [sn_devops_package] que foram manipulados durante o processamento da solicitação.

    Tipo de dados: Objeto

    "sn_devops_package": {
      "create": [Array],
      "found": [Array],
      "update": [Array]
    }
    response.sn_devops_package.create Se registros de pacote foram criados pela solicitação, a lista de sys_ids dos registros criados.

    Tipo de dados: Matriz de objetos

    "create": [
      {
        "id": "String"
      }
    ]
    response.sn_devops_package.create.id Sys_id do registro do pacote criado pela solicitação.

    Tipo de dados: Cadeia de caracteres

    response.sn_devops_package.found Se os registros de pacote usados na solicitação de registro já existirem, a lista de sys_ids dos registros existentes.
    Nota:
    Nenhuma modificação é feita nos registros existentes.

    Tipo de dados: Matriz de objetos

    "found": [
      {
        "id": "String"
      }
    ]
    response.sn_devops_package.found.id Sys_id de um registro de pacote existente referenciado pela solicitação.

    Tipo de dados: Cadeia de caracteres

    response.sn_devops_package.update Atualmente não usado.
    response.sn_devops_package.update.id Atualmente não usado.
    status Status da solicitação de registro.
    Valores possíveis:
    • Corpo da resposta contém a lista de todos os erros.
    • Sucesso: O corpo da resposta contém resultados de retorno.

    Tipo de dados: Cadeia de caracteres

    Solicitação de cURL de amostra

    # Example passing the artifact version
    curl -X POST "https://instance.servicenow.com/api/sn_devops/devops/package/registration?toolId=f0ca45679323008b52f3b457415ae6"\
    -H "accept: application/json"\
    -H "Content-Type: application/json"\
    -u "username":"password"\
    -d "{\
    "name": "sentimentpackage",\
    "artifacts": [\
    {\
    "name": "sa-web.jar",\
    "repositoryName": "services-1031",\
    "version": "3.1"\
    },\
    {\
    "name": "sa-frontend.jar",\
    "repositoryName": "services-1031",\
    "version": "9.2"\
    }\
    ],\
    "pipelineName": "spring-boot-app",\
    "taskExecutionNumber": "160",\
    "stageName": "Build",\
    "branchName": "primary"\
    }"

    Resposta - pacote criado:

    "result": {
    "status": "Success",
    "response": {
      "sn_devops_package": {
        "create": [
            {
              "id": "0d57367a532e00107109ddeeff7b122a"
            } 
          ],
        "update": [],
        "found": []
      },
      "sn_devops_m2m_artifact_version_package": {
        "create": [
          {
            "id": "c957367a532e00107109ddeeff7b122b"
          },
          {
            "id": "8157367a532e00107109ddeeff7b122c"
          }
        ],
        "update": [],
        "found": []
        }
      },
      "responseCode": 201
      }
    }

    Solicitação de cURL de amostra

    # Example passing the build details
    curl -X POST "https://instance.servicenow.com/api/sn_devops/devops/package/registration?toolId=f0ca45679323008b52f3b457415ae6"
    -H "accept: application/json"\
    -H "Content-Type: application/json"\
    -u "username":"password"\
    -d "{\
    "name": "sentimentpackage",\
    "artifacts": [\
    {\
    "name": "sa-web.jar",\
    "repositoryName": "services-1031",\
    "pipelineName": "spring-boot-app",\
    "taskExecutionNumber": "160",\
    "stageName": "Build",\
    "branchName": "primary"\
    },\
    {\
    "name": "sa-frontend.jar",\
    "repositoryName": "services-1031",\
    "pipelineName": "spring-boot-fe",\
    "taskExecutionNumber": "991",\
    "stageName": "Build",\
    "branchName": "primary"\
    }\
    ],\
    "pipelineName": "spring-boot-app",\
    "taskExecutionNumber": "160",\
    "stageName": "Build",\
    "branchName": "primary"\
    }"

    Resposta - a solicitação criou um pacote em fases:

    {
    "result": {
      "status": "Success",
      "response": {
        "artifact_register_requests": {
          "create": [
            { 
              "id": "4628f276532e00107109ddeeff7b1245"
            },
            {
              "id": "4e28f276532e00107109ddeeff7b1245"
            },
            {
              "id": "ce28f276532e00107109ddeeff7b1245"
            }
          ],
          "update": [],
          "found": []
        }
      }, 
      "responseCode": 201 
     }
    }

    DevOps - POST /devops/tool/

    Publica a carga passada na tabela Evento de entrada [sn_devops_inbound] para processamento por um personalizado DevOps subfluxo.

    Chame este endpoint do webhook associado em sua ferramenta, especificado pelo passado capabilityparâmetro. Um subfluxo personalizado, para processar a carga passada, já deve estar definido em seu ServiceNow instância. Com base em uma programação predefinida, o. DevOps O Fluxo mestre coleta as informações do evento do webhook da tabela de eventos de entrada e as passa para o subfluxo personalizado, que processa a carga. Para obter mais informações sobre como criar um subfluxo personalizado, consulte Criando subfluxos DevOps .

    Para obter informações adicionais sobre a integração da ferramenta de teste, consulte Integração da ferramenta de teste DevOps .

    Antes de chamar este endpoint para um personalizado DevOps, você deve implementar o. HandleTool() e. ObtNativeIdForOrquestrationTask() métodos de DevOpsOrquestrationIntegrationHandler . Para obter mais informações, consulte DevOpsOrquestrationIntegrationHandler - Com escopoDevOpsOrquestrationIntegrationHandler - com escopo .

    Nota:
    A partir da versão 1.34.1, uma nova versão desta API foi introduzida. Com esta API, as políticas de autenticação adaptável podem não ser executadas conforme o esperado. Para obter mais informações sobre essas políticas, consulte Adaptive authentication.

    Formato de URL

    URL com controle de versão: /api/sn_devops/

    URL padrão: /api/sn_devops/devops/tool/

    Nota:
    As versões disponíveis são especificadas em REST API Explorer . Para REST APIs com script, há informações adicionais de versão no Formulário de serviço REST com script .

    Parâmetros de solicitação compatíveis

    Tabela 79. Parâmetros de caminho
    Nome Descrição
    api_version Opcional. Versão do endpoint a ser acessado. Por exemplo, v1 ou v2 . Especifique este valor somente para usar uma versão de endpoint diferente da mais recente.

    Tipo de dados: Cadeia de caracteres

    capacidade Tipo de ferramenta que passa a carga a ser armazenada na tabela de eventos de entrada.
    Valores válidos (não diferenciam maiúsculas de minúsculas):
    • artefato
    • código
    • orquestração
    • plano
    • teste

    Tipo de dados: Cadeia de caracteres

    Tabela 80. Parâmetros de consulta
    Nome Descrição
    orchestrationToolId Opcional. Sys_id da ferramenta de orquestração à qual o pipeline relacionado pertence. orchestrationToolIdé necessário se capabilityo parâmetro de solicitação está definido como teste ou softwarequality .

    O valor em toolIdo parâmetro é a ferramenta de orquestração padrão se orchestrationToolIdo parâmetro não foi passado.

    Tipo de dados: Cadeia de caracteres

    TestType Necessário se capabilityestá definido como teste . Tipo de teste que está sendo executado.

    Tipo de dados: Cadeia de caracteres

    Tabela: Os valores válidos para este parâmetro são aqueles na coluna Tipo de teste da tabela Tipos de teste [sn_devops_test_type].

    toolId Obrigatório. Sys_id da ferramenta para a qual o endpoint está sendo chamado.

    Tipo de dados: Cadeia de caracteres

    Tabela 81. Parâmetros do corpo da solicitação
    Nome Descrição
    Dependente da ferramenta A ferramenta determina o conteúdo da carga.

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 82. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Autorização
    A partir da v2, esta API oferece suporte à autenticação baseada em token. Os tokens podem ser adquiridos clicando em Token de cópia Botão no registro da ferramenta, localizado na tabela Ferramenta [sn_devops_tool]. O token pode ser usado em um cabeçalho de autorização no formato Autorização: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .
    Nota:
    Se os detalhes da Autenticação básica (nome de usuário e senha) forem fornecidos além de um cabeçalho de autorização com token, a Autenticação básica terá precedência.

    . devops.systemo usuário não está disponível em sua instância, use Alterne para este usuário depois que a autenticação baseada em token for bem-sucedida propriedade. Esta propriedade permite definir qualquer usuário que tenha a função sn_devops.integration, que é necessária para concluir a autenticação de token. Para obter informações, consulte DevOps Change Velocity properties.

    Tipo de conteúdo Formato de dados do corpo da solicitação. Oferece suporte somente a application/json.
    Tabela 83. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 84. Códigos de status
    Código do status Descrição
    201 Solicitação concluída com sucesso.
    400 Solicitação Incorreta. Um tipo de solicitação incorreto ou uma solicitação malformada foi detectada.
    401 Autenticação inválida ou ausente.
    500 Erro Interno do servidor. Ocorreu um erro de lógica no código do lado do servidor.

    Parâmetros do corpo da resposta

    Nome Descrição
    detalhes Entrada para todas as condições de erro.

    Tipo de dados: Objeto

    "details": {
      "errors": [Array]
    }
    detalhes.erros Descrição de um único erro.

    Tipo de dados: Matriz de objetos

    "errors": [
      {
        "message": "String"
      }
    ]
    erros.mensagem.detalhes Mensagem de erro detalhada.
    • A solicitação não tem parâmetros de caminho Nenhum parâmetro de caminho está incluído na chamada.
    • A solicitação não tem parâmetro de caminho de capacidade : O parâmetro de caminho de capacidade não foi incluído na chamada.
    • Tipo de capacidade incompatível : O parâmetro de capacidade especificado não é um valor válido.

    Tipo de dados: Cadeia de caracteres

    status Status da resposta, como "Sucesso" ou "Erro de dados".

    Tipo de dados: Cadeia de caracteres

    sys_id Sys_id do registro criado na tabela de eventos de entrada.

    Tipo de dados: Cadeia de caracteres

    Solicitação de cURL de amostra para artefato

    curl -X POST "https://instance.service-now.com/api/sn_devops/v1/tool/artifact?toolId=3b59043ee4ea556e6850d61bc1a77e8a" 
    -H "accept: application/json"\
    -H "Content-Type: application/json"\
    -u "username":"password"\
    -d "{
       "artifacts": [
          {
             "name": "sp-boot-app",
             "version": "1.320",
             "semanticVersion": "1.320.0",
             "repositoryName": "sp-boot-app-repo"
          }
       ],
       "pipelineName": "spring-boot-app-gitea",
       "taskExecutionNumber": "320",
       "stageName": "Build"
    }"

    Resposta de sucesso:

    {
       "result": {
          "status": "Success",
          "sysId": "33c57245dbf68410bc8cdd384b961966"
       }
    }

    Solicitação de cURL de amostra para artefato

    curl -X POST "https://instance.service-now.com/api/sn_devops/v1/tool/artifact?toolId=3b59043ee4ea556e6850d61bc1a77e8a" 
    -H "accept: application/json"\
    -H "Content-Type: application/json"\
    -u "username":"password"\ 
    -d "{\
       "timestamp": "2020-01-11T00:52:01.541+0000",\
       "nodeId": "137BEECF-E1BF7BC1-90212D1C-0749A6D4-BC670F6B",\
       "initiator": "admin/172.17.0.1",\
       "repositoryName": "maven-releases29",\
       "action": "CREATED",\
       "component": {\
          "id": "2a59043ed2ea556e6850d61bc1a77c7b",\
          "componentId": "c3AtYm9vdC1hcHAtcmVwbzoyYTU5MDQzZWQyZWE1NTZlNjg1MGQ2MWJjMWE3N2M3Yg",\
          "format": "maven2",\
          "name": "sentiment-analysis-web",\
          "group": "com.spboot",\
          "version": "1.1"\
       }\
    }"

    Resposta de erro:

    {
       "result": {
          "status": "Data Error",
          "details": {
             "errors": [
                {
                   "message": "Unsupported capability type"
                }
             ]
          }
       }
    }

    Solicitação de cURL de amostra para código

    curl "https://instance.service-now.com/api/sn_devops/devops/tool/code?toolId=8d4f56598702c510f894419d0ebb35aa&testType=junit" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
       "commits": [
          {
             "totalFiles": 1,
             "nativeIdList": [
                "49",
                "50"
             ],
             "id": "f14732d0cc854ce3ec374b97ecd4ec3c383386cd",
             "url": "https://dev.azure.com/xyzabcd/adoTests/_git/DeployableRepo/commit/f14732d0cc854ce3ec374b97ecd4ec3c383386cd",
             "apiURL": "https://dev.azure.com/xyzabcd/9fe32a65-60a5-46fe-bc8d-11a92bf059f9/_apis/git/repositories/8d7ba019-1739-431c-beb4-6025dd41f1ac/commits/f14732d0cc854ce3ec374b97ecd4ec3c383386cd",
             "message": "Fixes #49 and #50",
             "committedDate": "2022-03-23T11:59:46Z",
             "committer": {
                "email": "xyz.abcd@email.com"
             },
             "details": [
                {
                   "action": "edit",
                   "changes": "",
                   "file": "/LICENSE",
                   "additions": 0,
                   "deletions": 0,
                   "totalChanges": 0
                }
             ]
          }
       ],
       "repository": {
          "id": "8d7ba019-1739-431c-beb4-6025dd41f1ac",
          "name": "DeployableRepo",
          "url": "https://dev.azure.com/xyzabcd/adoTests/_git/DeployableRepo"
       },
       "branch": {
          "name": "refs/heads/master",
          "url": "https://dev.azure.com/xyzabcd/adoTests/_git/DeployableRepo?version=GBmaster"
       }
    }" \
    --user 'username':'passsword'
    

    Resposta de sucesso:

    {
       "result": {
          "status": "Success",
          "sysId: "1f8e586b879e85100f71cbfc0ebb3526"
       }
    }

    Solicitação de cURL de amostra para orquestração

    curl "https://instance.service-now.com/api/sn_devops/devops/tool/orchestration?toolId=8d4f56598702c510f894419d0ebb35aa&testType=junit" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "toolId": "d450f5c887e609100f71cbfc0ebb35e5",
      "buildNumber": 5676,
      "nativeId": "adoTests/DeployableRepo#deploy#5676",
      "pipelineId": "2",
      "name": "adoTests/DeployableRepo#deploy",
      "id": "adoTests/DeployableRepo#deploy#5676",
      "url": "https://dev.azure.com/xyzabcd/_build/results?buildId=5676#deploy/",
      "previousAttemptUrl": "",
      "attemptNumber": 1,
      "pipelineExecutionUrl": "https://dev.azure.com/xyzabcd/_build/results?buildId=5676",
      "orchestrationTaskUrl": "https://dev.azure.com/xyzabcd/adoTests/_build?name=DeployableRepo#deploy",
      "orchestrationTaskName": "adoTests/DeployableRepo #deploy",
      "orchestrationTask": {
        "orchestrationTaskName": "adoTests/DeployableRepo#deploy",
        "toolId": "d450f5c887e609100f71cbfc0ebb35e5",
        "orchestrationTaskURL": "https://dev.azure.com/xyzabcd/adoTests/_build?name=DeployableRepo#deploy",
        "stageName": "deploy"
      },
      "upstreamTaskUrl": [],
      "result": "building",
      "startDateTime": "2022-03-23 12:01:31",
      "log": "https://dev.azure.com/xyzabcd/adoTests/_build/results?buildId=5676&view=logs&j=5264e576-3c6f-51f6-f055-fab409685f20",
      "logUrl": "https://dev.azure.com/xyzabcd/adoTests/_build/results?buildId=5676&view=logs&j=5264e576-3c6f-51f6-f055-fab409685f20"
    }" \
    --user 'username':'password'
    

    Resposta de sucesso:

    {
       "result": {
          "status": "Success",
          "sysId: "37dfd8a7879e85100f71cbfc0ebb35c0"
       }
    }

    Solicitação de cURL de amostra para plano

    curl "https://instance.service-now.com/api/sn_devops/devops/tool/plan?toolId=8d4f56598702c510f894419d0ebb35aa&testType=junit" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
       "id": "1053",
       "type": "bug",
       "state": "planned",
       "shortDescription": "Title - Work Item test in 1.33.3",
       "createdDateTime": "2022-03-23T10:45:53.02Z",
       "parentId": "",
       "url": "https://dev.azure.com/xyzabcd/9fe32a65-60a5-46fe-bc8d-11a92bf059f9/_workitems/edit/1053",
       "version": {
          "id": "adoTests",
          "shortDescription": "adoTests",
          "createdDateTime": "2022-03-23T10:46:12.355Z",
          "url": "https://dev.azure.com/xyzabcd/adoTests",
          "app": {
             "id": "adoTests",
             "shortDescription": "adoTests",
             "createdDateTime": "2022-03-23T10:46:12.355Z",
             "url": "https://dev.azure.com/xyzabcd/9fe32a65-60a5-46fe-bc8d-11a92bf059f9/_workitems/edit/1053"
          }
       },
       "app": {
          "id": "adoTests",
          "shortDescription": "adoTests",
          "createdDateTime": "2022-03-23T10:46:12.355Z",
          "url": "https://dev.azure.com/xyzabcd/adoTests"
       },
       "native_type": "Issue",
       "native_state": "To Do",
       "assignedTo": {
          "name": "Xyz Abcd",
          "userName": "xyz.abcd@email.com",
          "id": "84c92fcd-e08b-6a5f-a8a6-ccda27055560",
          "email": "xyz.abcd@email.com"
       },
       "createdBy": {
          "name": "Xyz Abcd",
          "userName": "xyz.abcd@email.com",
          "id": "84c92fcd-e08b-6a5f-a8a6-ccda27055560",
          "email": "xyz.abcd@email.com"
       }
    }" \
    --user 'username':'password'
    

    Resposta de sucesso:

    {
       "result": {
          "status": "Success",
          "sysId: "533020eb879e85100f71cbfc0ebb3591"
       }
    }

    Solicitação de cURL de amostra para teste

    curl "https://instance.service-now.com/api/sn_devops/devops/tool/test?toolId=8d4f56598702c510f894419d0ebb35aa&testType=junit" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
       "attemptNumber": 1,
       "blockedTests": 0,
       "buildNumber": 675,
       "duration": 0.079,
       "failedTests": 0,
       "finishTime": "2022-03-23T12:02:25.957Z",
       "name": "adoTests/DeployableRepo/Test #675-2982",
       "passedTests": 20,
       "pipelineName": "adoTests/DeployableRepo",
       "skippedTests": 0,
       "stageName": "Test",
       "startTime": "2022-03-23T12:02:24.36Z",
       "taskExecutionUrl": "https://dev.azure.com/xyzabcd/adoTests/_build/results?buildId=675#Test/{Job name}",
       "totalTests": 20,
       "url": "https://dev.azure.com/xyzabcd/adoTests/_TestManagement/Runs?runId=2982&_a=runCharts"
    }" \
    --user 'username':'password'
    

    Resposta de sucesso:

    {
       "result": {
          "status": "Success",
          "sysId: "fd3fdc6b879e85100f71cbfc0ebb356a"
       }
    }

    DevOps - POST /devops/tool/event/

    Publica a carga passada de GitHub, Jira ou Bitbucket Para a tabela Eventos [sn_devops_event] para processamento por um subfluxo pré-criado.

    Antes de chamar este endpoint, você deve criar uma integração com a ferramenta que está usando.

    Para processar eventos de qualquer outra ferramenta além de GitHub, Jira ou Bitbucket, use DevOps - POST /devops/tool/ em vez disso, endpoint.

    Nota:
    A partir da versão 1.34.1, uma nova versão desta API foi introduzida. Com esta API, as políticas de autenticação adaptável podem não ser executadas conforme o esperado. Para obter mais informações sobre essas políticas, consulte Adaptive authentication.

    Formato de URL

    URL com controle de versão: /api/sn_devops//devops/tool/event/sn_tool_id

    URL padrão: /api/sn_devops/devops/tool/event/

    Nota:
    As versões disponíveis são especificadas em REST API Explorer . Para REST APIs com script, há informações adicionais de versão no Formulário de serviço REST com script .

    Parâmetros de solicitação compatíveis

    Tabela 85. Parâmetros de caminho
    Nome Descrição
    api_version Opcional. Versão do endpoint a ser acessado. Por exemplo, v1 ou v2 . Especifique este valor somente para usar uma versão de endpoint diferente da mais recente.

    Tipo de dados: Cadeia de caracteres

    sn_tool_id Sys_id da ferramenta a ser usada para a solicitação.

    Tipo de dados: Cadeia de caracteres

    Tabela: Ferramentas de DevOps [sn_devops_tool]

    Tabela 86. Parâmetros de consulta
    Nome Descrição
    Nenhum(a)
    Tabela 87. Parâmetros do corpo da solicitação
    Nome Descrição
    Dependente da ferramenta A ferramenta determina o conteúdo da carga. A carga pode estar localizada na ferramenta abaixo das informações do webhook.

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 88. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Autorização
    A partir da v2, esta API oferece suporte à autenticação baseada em token. Os tokens podem ser adquiridos clicando em Token de cópia Botão no registro da ferramenta, localizado na tabela Ferramenta [sn_devops_tool]. O token pode ser usado em um cabeçalho de autorização no formato Autorização: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .
    Nota:
    Se os detalhes da Autenticação básica (nome de usuário e senha) forem fornecidos além de um cabeçalho de autorização com token, a Autenticação básica terá precedência.

    . devops.systemo usuário não está disponível em sua instância, use Alterne para este usuário depois que a autenticação baseada em token for bem-sucedida propriedade. Esta propriedade permite definir qualquer usuário que tenha a função sn_devops.integration, que é necessária para concluir a autenticação de token. Para obter informações, consulte DevOps Change Velocity properties.

    Tipo de conteúdo Formato de dados do corpo da solicitação. Oferece suporte somente a application/json.
    Tabela 89. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 90. Códigos de status
    Código do status Descrição
    200 Bem-sucedido. A solicitação foi processada com sucesso.
    201 Solicitação concluída com sucesso.
    400 Solicitação Incorreta. Um tipo de solicitação incorreto ou uma solicitação malformada foi detectada.
    401 Autenticação inválida ou ausente.
    500 Erro Interno do servidor. Ocorreu um erro de lógica no código do lado do servidor.

    Parâmetros do corpo da resposta

    Nome Descrição
    resultado Status da resposta.
    Valores possíveis:
    • falha ID da ferramenta incorreta. Evento não criado.
    • sucesso Evento criado na tabela Eventos [sn_devops_event]. No entanto, o estado do evento pode ser Erro se uma carga incorreta foi fornecida.

    Tipo de dados: Cadeia de caracteres

    Solicitação de curl

    GitHub

    curl "https://instance.service-now.com/api/sn_devops/devops/tool/event/46a07b2f471e011028c23a34846d43b2" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
       "ref": "refs/heads/master",
       "before": "59078a17cad1f4129754971c808d6c399b6141a5",
       "after": "b7957bab20835449c4d597fee24075a9a5a2c099",
       "repository": {
          "id": 252146476,
          "node_id": "MDEwOlJlcG9zaXRvcnkyNTIxNDY0NzY=",
          "name": "test",
          "full_name": "Xyz002/test",
          "private": false,
          "owner": {
             "name": "Xyz002",
             "email": "62993516+Xyz002@users.noreply.github.com",
             "login": "Xyz002",
             "id": 62993516,
             "node_id": "MDQ6VXNlcjYyOTkzNTE2",
             "avatar_url": "https://avatars.githubusercontent.com/u/62993516?v=4",
             "gravatar_id": "",
             "url": "https://api.github.com/users/Xyz002",
             "html_url": "https://github.com/Xyz002",
             "followers_url": "https://api.github.com/users/Xyz002/followers",
             "following_url": "https://api.github.com/users/Xyz002/following{/other_user}",
             "gists_url": "https://api.github.com/users/Xyz002/gists{/gist_id}",
             "starred_url": "https://api.github.com/users/Xyz002/starred{/owner}{/repo}",
             "subscriptions_url": "https://api.github.com/users/Xyz002/subscriptions",
             "organizations_url": "https://api.github.com/users/Xyz002/orgs",
             "repos_url": "https://api.github.com/users/Xyz002/repos",
             "events_url": "https://api.github.com/users/Xyz002/events{/privacy}",
             "received_events_url": "https://api.github.com/users/Xyz002/received_events",
             "type": "User",
             "site_admin": false
          },
          "html_url": "https://github.com/Xyz002/test",
          "description": null,
          "fork": false,
          "url": "https://github.com/Xyz002/test",
          "forks_url": "https://api.github.com/repos/Xyz002/test/forks",
          "keys_url": "https://api.github.com/repos/Xyz002/test/keys{/key_id}",
          "collaborators_url": "https://api.github.com/repos/Xyz002/test/collaborators{/collaborator}",
          "teams_url": "https://api.github.com/repos/Xyz002/test/teams",
          "hooks_url": "https://api.github.com/repos/Xyz002/test/hooks",
          "issue_events_url": "https://api.github.com/repos/Xyz002/test/issues/events{/number}",
          "events_url": "https://api.github.com/repos/Xyz002/test/events",
          "assignees_url": "https://api.github.com/repos/Xyz002/test/assignees{/user}",
          "branches_url": "https://api.github.com/repos/Xyz002/test/branches{/branch}",
          "tags_url": "https://api.github.com/repos/Xyz002/test/tags",
          "blobs_url": "https://api.github.com/repos/Xyz002/test/git/blobs{/sha}",
          "git_tags_url": "https://api.github.com/repos/Xyz002/test/git/tags{/sha}",
          "git_refs_url": "https://api.github.com/repos/Xyz002/test/git/refs{/sha}",
          "trees_url": "https://api.github.com/repos/Xyz002/test/git/trees{/sha}",
          "statuses_url": "https://api.github.com/repos/Xyz002/test/statuses/{sha}",
          "languages_url": "https://api.github.com/repos/Xyz002/test/languages",
          "stargazers_url": "https://api.github.com/repos/Xyz002/test/stargazers",
          "contributors_url": "https://api.github.com/repos/Xyz002/test/contributors",
          "subscribers_url": "https://api.github.com/repos/Xyz002/test/subscribers",
          "subscription_url": "https://api.github.com/repos/Xyz002/test/subscription",
          "commits_url": "https://api.github.com/repos/Xyz002/test/commits{/sha}",
          "git_commits_url": "https://api.github.com/repos/Xyz002/test/git/commits{/sha}",
          "comments_url": "https://api.github.com/repos/Xyz002/test/comments{/number}",
          "issue_comment_url": "https://api.github.com/repos/Xyz002/test/issues/comments{/number}",
          "contents_url": "https://api.github.com/repos/Xyz002/test/contents/{+path}",
          "compare_url": "https://api.github.com/repos/Xyz002/test/compare/{base}...{head}",
          "merges_url": "https://api.github.com/repos/Xyz002/test/merges",
          "archive_url": "https://api.github.com/repos/Xyz002/test/{archive_format}{/ref}",
          "downloads_url": "https://api.github.com/repos/Xyz002/test/downloads",
          "issues_url": "https://api.github.com/repos/Xyz002/test/issues{/number}",
          "pulls_url": "https://api.github.com/repos/Xyz002/test/pulls{/number}",
          "milestones_url": "https://api.github.com/repos/Xyz002/test/milestones{/number}",
          "notifications_url": "https://api.github.com/repos/Xyz002/test/notifications{?since,all,participating}",
          "labels_url": "https://api.github.com/repos/Xyz002/test/labels{/name}",
          "releases_url": "https://api.github.com/repos/Xyz002/test/releases{/id}",
          "deployments_url": "https://api.github.com/repos/Xyz002/test/deployments",
          "created_at": 1585737871,
          "updated_at": "2022-01-04T14:37:36Z",
          "pushed_at": 1648103939,
          "git_url": "git://github.com/Xyz002/test.git",
          "ssh_url": "git@github.com:Xyz002/test.git",
          "clone_url": "https://github.com/Xyz002/test.git",
          "svn_url": "https://github.com/Xyz002/test",
          "homepage": null,
          "size": 1378,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "Java",
          "has_issues": true,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": true,
          "has_pages": false,
          "forks_count": 0,
          "mirror_url": null,
          "archived": false,
          "disabled": false,
          "open_issues_count": 2,
          "license": null,
          "allow_forking": true,
          "is_template": false,
          "topics": [],
          "visibility": "public",
          "forks": 0,
          "open_issues": 2,
          "watchers": 0,
          "default_branch": "master",
          "stargazers": 0,
          "master_branch": "master"
       },
       "pusher": {
          "name": "Xyz002",
          "email": "62993516+Xyz002@users.noreply.github.com"
       },
       "sender": {
          "login": "Xyz002",
          "id": 62993516,
          "node_id": "MDQ6VXNlcjYyOTkzNTE2",
          "avatar_url": "https://avatars.githubusercontent.com/u/62993516?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/Xyz002",
          "html_url": "https://github.com/Xyz002",
          "followers_url": "https://api.github.com/users/Xyz002/followers",
          "following_url": "https://api.github.com/users/Xyz002/following{/other_user}",
          "gists_url": "https://api.github.com/users/Xyz002/gists{/gist_id}",
          "starred_url": "https://api.github.com/users/Xyz002/starred{/owner}{/repo}",
          "subscriptions_url": "https://api.github.com/users/Xyz002/subscriptions",
          "organizations_url": "https://api.github.com/users/Xyz002/orgs",
          "repos_url": "https://api.github.com/users/Xyz002/repos",
          "events_url": "https://api.github.com/users/Xyz002/events{/privacy}",
          "received_events_url": "https://api.github.com/users/Xyz002/received_events",
          "type": "User",
          "site_admin": false
       },
       "created": false,
       "deleted": false,
       "forced": false,
       "base_ref": null,
       "compare": "https://github.com/Xyz002/test/compare/59078a17cad1...b7957bab2083",
       "commits": [
          {
             "id": "b7957bab20835449c4d597fee24075a9a5a2c099",
             "tree_id": "fa8d699762ec0a25868fa1ab4d299da392f0a974",
             "distinct": true,
             "message": "updated this file",
             "timestamp": "2022-03-24T12:08:59+05:30",
             "url": "https://github.com/Xyz002/test/commit/b7957bab20835449c4d597fee24075a9a5a2c099",
             "author": {
                "name": "Xyz002",
                "email": "62993516+Xyz002@users.noreply.github.com",
                "username": "Xyz002"
             },
             "committer": {
                "name": "GitHub",
                "email": "noreply@github.com",
                "username": "web-flow"
             },
             "added": [],
             "removed": [],
             "modified": [
                "README.me"
             ]
          }
       ],
       "head_commit": {
          "id": "b7957bab20835449c4d597fee24075a9a5a2c099",
          "tree_id": "fa8d699762ec0a25868fa1ab4d299da392f0a974",
          "distinct": true,
          "message": "updated this file",
          "timestamp": "2022-03-24T12:08:59+05:30",
          "url": "https://github.com/Xyz002/test/commit/b7957bab20835449c4d597fee24075a9a5a2c099",
          "author": {
             "name": "Xyz002",
             "email": "62993516+Xyz002@users.noreply.github.com",
             "username": "Xyz002"
          },
          "committer": {
             "name": "GitHub",
             "email": "noreply@github.com",
             "username": "web-flow"
          },
          "added": [],
          "removed": [],
          "modified": [
             "README.me"
          ]
       },
       "sn_tool_id": "46a07b2f471e011028c23a34846d43b2"
    }" \
    --user 'username':'password'
    

    Resposta de sucesso:

    {
       "result": "success"
    }

    Solicitação de curl

    Jira

    curl "https://instance.service-now.com/api/sn_devops/devops/tool/event/9ed237af471e011028c23a34846d4327" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
       "timestamp": 1648104684180,
       "webhookEvent": "jira:issue_created",
       "issue_event_type_name": "issue_created",
       "user": {
          "self": "http://jira1.sndevops.xyz/rest/api/2/user?username=admin",
          "name": "admin",
          "key": "admin",
          "emailAddress": "username@email.com",
          "avatarUrls": {
             "48x48": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=48",
             "24x24": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=24",
             "16x16": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=16",
             "32x32": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=32"
          },
          "displayName": "Administrator",
          "active": true,
          "timeZone": "America/Los_Angeles"
       },
       "issue": {
          "id": "84800",
          "self": "http://jira1.sndevops.xyz/rest/api/2/issue/84800",
          "key": "BAL-2",
          "fields": {
             "issuetype": {
                "self": "http://jira1.sndevops.xyz/rest/api/2/issuetype/10002",
                "id": "10002",
                "description": "A task that needs to be done.",
                "iconUrl": "http://jira1.sndevops.xyz/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype",
                "name": "Task",
                "subtask": false,
                "avatarId": 10318
             },
             "timespent": null,
             "project": {
                "self": "http://jira1.sndevops.xyz/rest/api/2/project/10507",
                "id": "10507",
                "key": "BAL",
                "name": "balu_devops",
                "projectTypeKey": "software",
                "avatarUrls": {
                   "48x48": "http://jira1.sndevops.xyz/secure/projectavatar?avatarId=10324",
                   "24x24": "http://jira1.sndevops.xyz/secure/projectavatar?size=small&avatarId=10324",
                   "16x16": "http://jira1.sndevops.xyz/secure/projectavatar?size=xsmall&avatarId=10324",
                   "32x32": "http://jira1.sndevops.xyz/secure/projectavatar?size=medium&avatarId=10324"
                }
             },
             "fixVersions": [],
             "aggregatetimespent": null,
             "resolution": null,
             "customfield_10302": null,
             "customfield_10105": null,
             "resolutiondate": null,
             "workratio": 0,
             "lastViewed": null,
             "watches": {
                "self": "http://jira1.sndevops.xyz/rest/api/2/issue/BAL-2/watchers",
                "watchCount": 0,
                "isWatching": false
             },
             "created": "2022-03-24T06:51:22.896+0000",
             "priority": {
                "self": "http://jira1.sndevops.xyz/rest/api/2/priority/3",
                "iconUrl": "http://jira1.sndevops.xyz/images/icons/priorities/medium.svg",
                "name": "Medium",
                "id": "3"
             },
             "customfield_10100": "0|i0cprw:",
             "customfield_10101": "SCRUMBOARD-14",
             "customfield_10300": null,
             "labels": [],
             "timeestimate": 240,
             "aggregatetimeoriginalestimate": 300,
             "versions": [],
             "issuelinks": [
                {
                   "id": "10701",
                   "self": "http://jira1.sndevops.xyz/rest/api/2/issueLink/10701",
                   "type": {
                      "id": "10000",
                      "name": "Blocks",
                      "inward": "is blocked by",
                      "outward": "blocks",
                      "self": "http://jira1.sndevops.xyz/rest/api/2/issueLinkType/10000"
                   },
                   "outwardIssue": {
                      "id": "84741",
                      "key": "BAL-1",
                      "self": "http://jira1.sndevops.xyz/rest/api/2/issue/84741",
                      "fields": {
                         "summary": "log4jtesting",
                         "status": {
                            "self": "http://jira1.sndevops.xyz/rest/api/2/status/3",
                            "description": "This issue is being actively worked on at the moment by the assignee.",
                            "iconUrl": "http://jira1.sndevops.xyz/images/icons/statuses/inprogress.png",
                            "name": "In Progress",
                            "id": "3",
                            "statusCategory": {
                               "self": "http://jira1.sndevops.xyz/rest/api/2/statuscategory/4",
                               "id": 4,
                               "key": "indeterminate",
                               "colorName": "yellow",
                               "name": "In Progress"
                            }
                         },
                         "priority": {
                            "self": "http://jira1.sndevops.xyz/rest/api/2/priority/3",
                            "iconUrl": "http://jira1.sndevops.xyz/images/icons/priorities/medium.svg",
                            "name": "Medium",
                            "id": "3"
                         },
                         "issuetype": {
                            "self": "http://jira1.sndevops.xyz/rest/api/2/issuetype/10004",
                            "id": "10004",
                            "description": "A problem which impairs or prevents the functions of the product.",
                            "iconUrl": "http://jira1.sndevops.xyz/secure/viewavatar?size=xsmall&avatarId=10303&avatarType=issuetype",
                            "name": "Bug",
                            "subtask": false,
                            "avatarId": 10303
                         }
                      }
                   }
                }
             ],
             "assignee": {
                "self": "http://jira1.sndevops.xyz/rest/api/2/user?username=admin",
                "name": "admin",
                "key": "admin",
                "emailAddress": "username@email.com",
                "avatarUrls": {
                   "48x48": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=48",
                   "24x24": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=24",
                   "16x16": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=16",
                   "32x32": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=32"
                },
                "displayName": "Administrator",
                "active": true,
                "timeZone": "America/Los_Angeles"
             },
             "updated": "2022-03-24T06:51:22.896+0000",
             "status": {
                "self": "http://jira1.sndevops.xyz/rest/api/2/status/10000",
                "description": "",
                "iconUrl": "http://jira1.sndevops.xyz/",
                "name": "To Do",
                "id": "10000",
                "statusCategory": {
                   "self": "http://jira1.sndevops.xyz/rest/api/2/statuscategory/2",
                   "id": 2,
                   "key": "new",
                   "colorName": "blue-gray",
                   "name": "To Do"
                }
             },
             "components": [],
             "timeoriginalestimate": 300,
             "description": "Task description",
             "timetracking": {
                "originalEstimate": "5m",
                "remainingEstimate": "4m",
                "originalEstimateSeconds": 300,
                "remainingEstimateSeconds": 240
             },
             "customfield_10203": null,
             "customfield_10204": null,
             "customfield_10205": null,
             "attachment": [],
             "aggregatetimeestimate": 240,
             "summary": "Task Summary",
             "creator": {
                "self": "http://jira1.sndevops.xyz/rest/api/2/user?username=admin",
                "name": "admin",
                "key": "admin",
                "emailAddress": "username@email.com",
                "avatarUrls": {
                   "48x48": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=48",
                   "24x24": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=24",
                   "16x16": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=16",
                   "32x32": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=32"
                },
                "displayName": "Administrator",
                "active": true,
                "timeZone": "America/Los_Angeles"
             },
             "subtasks": [],
             "reporter": {
                "self": "http://jira1.sndevops.xyz/rest/api/2/user?username=admin",
                "name": "admin",
                "key": "admin",
                "emailAddress": "username@email.com",
                "avatarUrls": {
                   "48x48": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=48",
                   "24x24": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=24",
                   "16x16": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=16",
                   "32x32": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=32"
                },
                "displayName": "Administrator",
                "active": true,
                "timeZone": "America/Los_Angeles"
             },
             "customfield_10000": "{summaryBean=com.atlassian.jira.plugin.devstatus.rest.SummaryBean@2ccf8c6[summary={pullrequest=com.atlassian.jira.plugin.devstatus.rest.SummaryItemBean@fbc42d4[overall=PullRequestOverallBean{stateCount=0, state='OPEN', details=PullRequestOverallDetails{openCount=0, mergedCount=0, declinedCount=0}},byInstanceType={}], build=com.atlassian.jira.plugin.devstatus.rest.SummaryItemBean@71e33347[overall=com.atlassian.jira.plugin.devstatus.summary.beans.BuildOverallBean@1c24654d[failedBuildCount=0,successfulBuildCount=0,unknownBuildCount=0,count=0,lastUpdated=<null>,lastUpdatedTimestamp=<null>],byInstanceType={}], review=com.atlassian.jira.plugin.devstatus.rest.SummaryItemBean@1ea8fb17[overall=com.atlassian.jira.plugin.devstatus.summary.beans.ReviewsOverallBean@6dc95939[stateCount=0,state=<null>,dueDate=<null>,overDue=false,count=0,lastUpdated=<null>,lastUpdatedTimestamp=<null>],byInstanceType={}], deployment-environment=com.atlassian.jira.plugin.devstatus.rest.SummaryItemBean@55826cc[overall=com.atlassian.jira.plugin.devstatus.summary.beans.DeploymentOverallBean@3ae93527[topEnvironments=[],showProjects=false,successfulCount=0,count=0,lastUpdated=<null>,lastUpdatedTimestamp=<null>],byInstanceType={}], repository=com.atlassian.jira.plugin.devstatus.rest.SummaryItemBean@6340012e[overall=com.atlassian.jira.plugin.devstatus.summary.beans.CommitOverallBean@44678cee[count=0,lastUpdated=<null>,lastUpdatedTimestamp=<null>],byInstanceType={}], branch=com.atlassian.jira.plugin.devstatus.rest.SummaryItemBean@4dbce8[overall=com.atlassian.jira.plugin.devstatus.summary.beans.BranchOverallBean@737ee1cb[count=0,lastUpdated=<null>,lastUpdatedTimestamp=<null>],byInstanceType={}]},errors=[],configErrors=[]], devSummaryJson={\"cachedValue\":{\"errors\":[],\"configErrors\":[],\"summary\":{\"pullrequest\":{\"overall\":{\"count\":0,\"lastUpdated\":null,\"stateCount\":0,\"state\":\"OPEN\",\"details\":{\"openCount\":0,\"mergedCount\":0,\"declinedCount\":0,\"total\":0},\"open\":true},\"byInstanceType\":{}},\"build\":{\"overall\":{\"count\":0,\"lastUpdated\":null,\"failedBuildCount\":0,\"successfulBuildCount\":0,\"unknownBuildCount\":0},\"byInstanceType\":{}},\"review\":{\"overall\":{\"count\":0,\"lastUpdated\":null,\"stateCount\":0,\"state\":null,\"dueDate\":null,\"overDue\":false,\"completed\":false},\"byInstanceType\":{}},\"deployment-environment\":{\"overall\":{\"count\":0,\"lastUpdated\":null,\"topEnvironments\":[],\"showProjects\":false,\"successfulCount\":0},\"byInstanceType\":{}},\"repository\":{\"overall\":{\"count\":0,\"lastUpdated\":null},\"byInstanceType\":{}},\"branch\":{\"overall\":{\"count\":0,\"lastUpdated\":null},\"byInstanceType\":{}}}},\"isStale\":false}}",
             "aggregateprogress": {
                "progress": 0,
                "total": 240,
                "percent": 0
             },
             "customfield_10200": null,
             "customfield_10201": null,
             "customfield_10202": null,
             "environment": null,
             "duedate": "2022-03-24",
             "progress": {
                "progress": 0,
                "total": 240,
                "percent": 0
             },
             "comment": {
                "comments": [],
                "maxResults": 0,
                "total": 0,
                "startAt": 0
             },
             "votes": {
                "self": "http://jira1.sndevops.xyz/rest/api/2/issue/BAL-2/votes",
                "votes": 0,
                "hasVoted": false
             },
             "worklog": {
                "startAt": 0,
                "maxResults": 20,
                "total": 0,
                "worklogs": []
             }
          }
       },
       "changelog": {
          "id": "14401",
          "items": [
             {
                "field": "Link",
                "fieldtype": "jira",
                "from": null,
                "fromString": null,
                "to": "BAL-1",
                "toString": "This issue blocks BAL-1"
             }
          ]
       },
       "sn_tool_id": "9ed237af471e011028c23a34846d4327"
    }" \
    --user 'username':'password'
    

    Resposta de sucesso:

    {
       "result": "success"
    }

    Solicitação de curl

    Bitbucket

    curl "https://instance.service-now.com/api/sn_devops/devops/tool/event/6975ecaf879e85100f71cbfc0ebb3575" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
       "eventKey": "repo:refs_changed",
       "date": "2022-03-23T15:57:05+0000",
       "actor": {
          "name": "admin",
          "emailAddress": "username@email.com",
          "id": 1,
          "displayName": "Admin",
          "active": true,
          "slug": "admin",
          "type": "NORMAL",
          "links": {
             "self": [
                {
                   "href": "http://bitbucket2.sndevops.xyz/users/admin"
                }
             ]
          }
       },
       "repository": {
          "slug": "testautomationrepo1",
          "id": 12,
          "name": "TestAutomationRepo1",
          "scmId": "git",
          "state": "AVAILABLE",
          "statusMessage": "Available",
          "forkable": true,
          "origin": {
             "slug": "testautomationrepo1",
             "id": 1,
             "name": "TestAutomationRepo1",
             "scmId": "git",
             "state": "AVAILABLE",
             "statusMessage": "Available",
             "forkable": true,
             "project": {
                "key": "TES",
                "id": 1,
                "name": "TestAutomation",
                "public": false,
                "type": "NORMAL",
                "links": {
                   "self": [
                      {
                         "href": "http://bitbucket2.sndevops.xyz/projects/TES"
                      }
                   ]
                }
             },
             "public": false,
             "links": {
                "clone": [
                   {
                      "href": "ssh://git@bitbucket2.sndevops.xyz:7999/tes/testautomationrepo1.git",
                      "name": "ssh"
                   },
                   {
                      "href": "http://bitbucket2.sndevops.xyz/scm/tes/testautomationrepo1.git",
                      "name": "http"
                   }
                ],
                "self": [
                   {
                      "href": "http://bitbucket2.sndevops.xyz/projects/TES/repos/testautomationrepo1/browse"
                   }
                ]
             }
          },
          "project": {
             "key": "~ADMIN",
             "id": 3,
             "name": "Admin",
             "type": "PERSONAL",
             "owner": {
                "name": "admin",
                "emailAddress": "username@email.com",
                "id": 1,
                "displayName": "Admin",
                "active": true,
                "slug": "admin",
                "type": "NORMAL",
                "links": {
                   "self": [
                      {
                         "href": "http://bitbucket2.sndevops.xyz/users/admin"
                      }
                   ]
                }
             },
             "links": {
                "self": [
                   {
                      "href": "http://bitbucket2.sndevops.xyz/users/admin"
                   }
                ]
             }
          },
          "public": false,
          "links": {
             "clone": [
                {
                   "href": "http://bitbucket2.sndevops.xyz/scm/~admin/testautomationrepo1.git",
                   "name": "http"
                },
                {
                   "href": "ssh://git@bitbucket2.sndevops.xyz:7999/~admin/testautomationrepo1.git",
                   "name": "ssh"
                }
             ],
             "self": [
                {
                   "href": "http://bitbucket2.sndevops.xyz/users/admin/repos/testautomationrepo1/browse"
                }
             ]
          }
       },
       "changes": [
          {
             "ref": {
                "id": "refs/heads/master",
                "displayId": "master",
                "type": "BRANCH"
             },
             "refId": "refs/heads/master",
             "fromHash": "b482b2e232f5fbdee73feed8ca1cfb774de6976e",
             "toHash": "d783254fe6f77bc7cc079358158aeef52a457587",
             "type": "UPDATE"
          }
       ],
       "sn_tool_id": "6975ecaf879e85100f71cbfc0ebb3575"
    }" \
    --user 'username':'password'
    

    Resposta de sucesso:

    {
       "result": "success"
    }

    DevOps - PUT /devops/Orchestration/changeControl/

    Atualiza as informações de controle de mudança para a tarefa de orquestração especificada.

    Formato de URL

    URL com controle de versão: /api/sn_devops//devops/Orchestration/changeControl/

    URL padrão: /api/sn_devops/devops/Orchestration/changeControl/

    Nota:
    As versões disponíveis são especificadas em REST API Explorer . Para REST APIs com script, há informações adicionais de versão no Formulário de serviço REST com script .

    Parâmetros de solicitação compatíveis

    Tabela 91. Parâmetros de caminho
    Nome Descrição
    api_version Opcional. Versão do endpoint a ser acessado. Por exemplo, v1 ou v2 . Especifique este valor somente para usar uma versão de endpoint diferente da mais recente.

    Tipo de dados: Cadeia de caracteres

    ChangeControlId Sys_id da tarefa de controle de mudanças. Localizado na tabela Retorno de chamada [sn_devops_callback].

    Tipo de dados: Cadeia de caracteres

    Tabela 92. Parâmetros de consulta
    Nome Descrição
    toolId Obrigatório. Sys_id do DevOps ferramenta associada à tarefa de controle de mudanças.

    Tipo de dados: Cadeia de caracteres

    Tabela: Ferramenta de Orquestração [sn_devops_Orchestration_tool]

    Tabela 93. Parâmetros do corpo da solicitação
    Nome Descrição
    callbackURL Obrigatório. URL que o ServiceNow a instância pode retornar a chamada depois que o processo de aprovação da solicitação de mudança associado for concluído. Este retorno de chamada deve permitir que a execução do pipeline continue ou não, com base no resultado da aprovação.

    Tipo de dados: Cadeia de caracteres

    OrquestrationTaskDetails Obrigatório. Descrição da tarefa de Orquestração.

    Tipo de dados: Objeto

    "orchestrationTaskDetails": {
      "message": "String",
      "triggerType": "String",
      "upstreamTaskExecutionURL": "String"
    }
    OrquestrationTaskDetails.message Mensagem de texto de formato livre.

    Tipo de dados: Cadeia de caracteres

    OrquestrationTaskDetails.triggerType Obrigatório. A forma como a tarefa de orquestração foi iniciada.

    Valores válidos:

    • scm: A confirmação do código da ferramenta Git/scm acionou o trabalho.
    • Upstream: O trabalho upstream acionou este trabalho.
    • Usuário: O usuário iniciou o trabalho manualmente.

    Tipo de dados: Cadeia de caracteres

    OrquestrationTaskDetails.upstreamTaskExecutionURL Necessário se triggerTypeestá definido como upstream . URL de execução da tarefa ascendente.

    Por exemplo: https://jenkins.mycompany.com:8080/job/Mobile-Platform-test/40/

    Tipo de dados: Cadeia de caracteres

    OrquestrationTaskURL Obrigatório. URL da tarefa de orquestração.

    Por exemplo: https://jenkins.mycompany.com:8080/orchestration_task/Mobile-Platform-deploy/

    Tipo de dados: Cadeia de caracteres

    ToolType Tipo de DevOps ferramenta.

    Valor válido: jenkins

    Tipo de dados: Cadeia de caracteres

    TasExecutionURL Obrigatório. URL da tarefa a ser executada.

    Tipo de dados: Cadeia de caracteres

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 94. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Autorização
    A partir da v2, esta API oferece suporte à autenticação baseada em token. Os tokens podem ser adquiridos clicando em Token de cópia Botão no registro da ferramenta, localizado na tabela Ferramenta [sn_devops_tool]. O token pode ser usado em um cabeçalho de autorização no formato Autorização: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .
    Nota:
    Se os detalhes da Autenticação básica (nome de usuário e senha) forem fornecidos além de um cabeçalho de autorização com token, a Autenticação básica terá precedência.

    . devops.systemo usuário não está disponível em sua instância, use Alterne para este usuário depois que a autenticação baseada em token for bem-sucedida propriedade. Esta propriedade permite definir qualquer usuário que tenha a função sn_devops.integration, que é necessária para concluir a autenticação de token. Para obter informações, consulte DevOps Change Velocity properties.

    Tipo de conteúdo Formato de dados do corpo da solicitação. Oferece suporte somente a application/json.
    Tabela 95. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 96. Códigos de status
    Código do status Descrição
    200 Solicitação concluída com sucesso.
    400 Solicitação Incorreta. Um tipo de solicitação incorreto ou uma solicitação malformada foi detectada.
    401 Autenticação inválida ou ausente.
    404 Não encontrado. Não foi possível encontrar o registro especificado.
    500 Erro interno do servidor. Ocorreu um erro inesperado ao processar a solicitação. A resposta contém informações adicionais sobre o erro.

    Parâmetros do corpo da resposta

    Nome Descrição
    change_control Sinalizador que indica se a tarefa de orquestração está sob controle de mudança.
    Valores possíveis:
    • Verdadeiro: Sob controle de mudança.
    • Falso: Não está sob controle de mudança.

    Tipo de dados: Booliano

    detalhes Entrada para todas as condições de erro.

    Tipo de dados: Objeto

    "details": {
      "errors": [Array]
    }
    detalhes.erros Descrição de um único erro.

    Tipo de dados: Matriz de objetos

    "errors": [
      {
        "message": "String"
      }
    ]
    erros.mensagem.detalhes Mensagem de erro detalhada.

    Tipo de dados: Cadeia de caracteres

    Solicitação de cURL de amostra

    curl -X PUT "https://instance.service-now.com/api/sn_devops/v1/devops/orchestration/changeControl/f0ca45679323008b52f3b457415ae6?toolId=f0ca45679323008b52f3b457415ae6"
    -H "accept: application/json"\
    -H "Content-Type: application/json"\
    -u "username":"password"\
    -d "{
      \"orchestrationTaskURL\":\"https://jenkins.mycompany.com:8080/job/Mobile-Platform-deploy/\",
      \"toolType\":\"jenkins\",
      \"callbackURL\":\"https://jenkins.mycompany.com:8080/sn-devops/964aca59-0cae-4d9b-a36d-5929f426cf31\",
    \"taskExecutionURL\":\"https://jenkins.mycompany.com:8080/job/Mobile-Platform-test/40/\",  
    "\orchestrationTaskName\":\"StageName\",
      \"orchestrationTaskDetails\":{
        \"message\":\"Started by upstream project \\\"Mobile-Platform-test\\\" build number 40\",
        \"triggerType\":\"upstream\",
        \"upstreamTaskExecutionURL\":\"https://jenkins.mycompany.com:8080/job/Mobile-Platform-test/40/\"}
    }"

    Resposta:

    {
        "result": {
            "change_control": true
        }
    }

    DevOps - PUT /devops/Orchestration/changeInfo/

    Atualiza campos em uma solicitação de mudança especificada.

    Formato de URL

    URL com controle de versão: /api/sn_devops//devops/Orchestration/changeInfo/

    URL padrão: /api/sn_devops/devops/Orchestration/changeInfo/

    Nota:
    As versões disponíveis são especificadas em REST API Explorer . Para REST APIs com script, há informações adicionais de versão no Formulário de serviço REST com script .

    Parâmetros de solicitação compatíveis

    Tabela 97. Parâmetros de caminho
    Nome Descrição
    api_version Opcional. Versão do endpoint a ser acessado. Por exemplo, v1 ou v2 . Especifique este valor somente para usar uma versão de endpoint diferente da mais recente.

    Tipo de dados: Cadeia de caracteres

    Tabela 98. Parâmetros de consulta
    Nome Descrição
    ChangeRequestNumber Obrigatório. Número da solicitação de mudança associado à tarefa de orquestração a ser atualizada.

    Tipo de dados: Cadeia de caracteres

    Tabela: solicitação de mudança [change_request]

    Tabela 99. Parâmetros do corpo da solicitação
    Nome Descrição
    dados Obrigatório. Pares nome-valor para os campos a serem atualizados na solicitação de mudança associada.
    Por exemplo, para atualizar o arquivo de descrição resumida, insira um par nome-valor semelhante ao seguinte:
     "{\"short_description\": \"my short desc\" }"
    Para stateparâmetro, somente as seguintes transições são compatíveis:
    • cancelar:
      • O estado da solicitação de mudança deve ser implementado para mover o estado para cancelar.
      • . reasono parâmetro é uma entrada obrigatória para atualizar o estado para cancelado.
    • encerrado:
      • O estado da solicitação de mudança deve ser Implementar ou Pós-implementar para mover o estado para Encerrar.
      • close_code e close_notes são entradas obrigatórias para atualizar o estado para encerrado.
        Valores possíveis:
        • 4: Cancelar (valor definido na propriedade sn_devops.change_request.cancel_state.)
        • 3: Encerrado (valor definido na propriedade sn_devops.change_request.closed_state.)

    Tipo de dados: Cadeia de caracteres

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 100. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Autorização
    A partir da v2, esta API oferece suporte à autenticação baseada em token. Os tokens podem ser adquiridos clicando em Token de cópia Botão no registro da ferramenta, localizado na tabela Ferramenta [sn_devops_tool]. O token pode ser usado em um cabeçalho de autorização no formato Autorização: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .
    Nota:
    Se os detalhes da Autenticação básica (nome de usuário e senha) forem fornecidos além de um cabeçalho de autorização com token, a Autenticação básica terá precedência.

    . devops.systemo usuário não está disponível em sua instância, use Alterne para este usuário depois que a autenticação baseada em token for bem-sucedida propriedade. Esta propriedade permite definir qualquer usuário que tenha a função sn_devops.integration, que é necessária para concluir a autenticação de token. Para obter informações, consulte DevOps Change Velocity properties.

    Tipo de conteúdo Formato de dados do corpo da solicitação. Oferece suporte somente a application/json.
    Tabela 101. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 102. Códigos de status
    Código do status Descrição
    200 Bem-sucedido. A solicitação foi processada com sucesso.
    400 Solicitação Incorreta. Um tipo de solicitação incorreto ou uma solicitação malformada foi detectada.
    404 Não encontrado. O item solicitado não foi encontrado.

    Parâmetros do corpo da resposta

    Nome Descrição
    mensagem Descrição dos resultados da atualização.

    Tipo de dados: Cadeia de caracteres

    status Status da solicitação.
    Valores possíveis:
    • Solicitação de mudança encontrada e os detalhes da mudança foram atualizados com sucesso.
    • Solicitação de mudança não encontrada e os detalhes da mudança não foram atualizados.

    Tipo de dados: Cadeia de caracteres

    updateStatus Status da atualização.
    Valores possíveis:
    • Concluído
    • Erro

    Tipo de dados: Cadeia de caracteres

    Solicitação de curl

    O exemplo de código a seguir mostra como atualizar vários campos na solicitação de mudança CHG0030023.

    curl -X PUT"
    https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/changeInfo?changeRequestNumber=CHG0030023
    
    -H "accept: application/json"\
    -u "username":"password" 
    - D
    {
      "short_description": "Test description",
      "priority": "1",
      "start_date": "2021-02-05 08:00:00",
      "end_date": "2022-04-05 08:00:00",
      "justification": "test justification",
      "description": "test description",
      "cab_required": true,
      "comments": "This update for work notes is from jenkins file",
      "work_notes": "test work notes",
      "assignment_group": "a715cd759f2002002920bde8132e7018"
    }

    Resposta:

    {
      "result": {
        "updateStatus": "Done",
        "status": "Success",
        "message": "change request update successful"
      }
    }