Este documento refere-se ao uso API Nerdgraph para a nova plataforma de notificação usando destinos e mensagens de notificação. As mensagens de notificação também são chamadas de canais, que são diferentes do legado canal de notificação.
A consulta channels permite paginar todos os seus canais por conta. Também permite algumas funcionalidades de filtragem.
Aqui está um exemplo:
{
actor{
account(id:YOUR_ACCOUNT_ID){
aiNotifications{
channels{
entities{
id
name
}
error{
details
}
}
}
}
}
}
Para paginar seus canais, você deve solicitar o campo nextCursor na sua consulta inicial.
Com a paginação do cursor, você continua fazendo uma solicitação por meio do conjunto de resultados até que nextCursor retornado da resposta retorne vazio. Isso significa que você chegou ao fim dos seus resultados.
Aqui está um exemplo:
{
actor{
account(id:YOUR_ACCOUNT_ID){
aiNotifications{
channels(cursor:""){
nextCursor
entities{
id
name
}
totalCount
}
}
}
}
}
O código acima retorna um conjunto de resultados como este:
A API permite a consulta de canais por nome. O filtro name retorna correspondências exatas e parciais. Não faz distinção entre maiúsculas e minúsculas. Isso retornará apenas as informações dos canais que correspondem ao nome fornecido.
Neste exemplo, queremos encontrar canais com "DevOps" no nome:
A API permite consultar por tipo de canal. A consulta a seguir retornará todos os canais de e-mail da conta escolhida:
{
actor{
account(id:YOUR_ACCOUNT_ID){
aiNotifications{
channels(filters:{type:EMAIL}){
entities{
id
name
}
}
}
}
}
}
Crie um canal
Para criar um canal, devem ser fornecidas diferentes entradas para cada tipo de canal. Cada canal está conectado a um destino. Para obter informações sobre destinos, consulte o tutorial sobre destinos do NerdGraph.
As práticas recomendadas são usar o endpoint channelSchema para ver quais campos devem ser enviados em properties assim:
{
actor{
account(id:YOUR_ACCOUNT_ID){
aiNotifications{
channelSchema(
channelType:CHANNEL_TYPE
destinationId:YOUR_DESTINATION_ID
product:YOUR_PRODUCT
constraints:[]
){
schema{
fields{
mandatory
label
key
component
}
}
result
}
}
}
}
}
Jira é um sistema de tickets configurável e, portanto, não existe uma maneira estática de criar esse canal.
Existem dois campos estáticos - project e issuetype.
Busque as sugestões project e use um dos valores como restrição para issuetype, conforme mostrado aqui:
O eventSource deve ser o URL completo de uma fonte de evento existente. O eventContent é a carga que será enviada no corpo da notificação, conforme mostrado aqui:
PagerDuty possui dois tipos de integração, nível de serviço e nível de conta. Para obter mais informações, consulte a documentação de integração do PagerDuty.
Ao atualizar um canal, observe que você não precisa fornecer todos os atributos do canal. Por exemplo, se você deseja atualizar apenas o nome, esse é o único atributo que você precisa atualizar, conforme mostrado aqui:
mutation{
aiNotificationsUpdateChannel(
accountId:YOUR_ACCOUNT_ID
channelId:YOUR_CHANNEL_ID
channel:{name:"Updated channel Name"}
){
channel{
id
name
}
}
}
Testando um canal
Você pode testar canais por meio da API NerdGraph. Isso pode ser feito antes ou depois da criação do canal.