Menu Docs
Página inicial do Docs
/ /
Serviços Atlas App
/ /

Serviço Github [Obsoleto]

Nesta página

  • Visão geral
  • Parâmetros de configuração
  • Ações de serviço
  • Webhooks recebidos
  • Configuração
  • Solicitar carga útil
  • Exemplo de função de webhook
  • Configurar o Github
  • Adicionar um webhook a um repositório do Github

Importante

Suspensão de serviços de terceiros e notificações push

Os serviços de terceiros e as notificações por push no App Services foram preteridos em favor da criação de pontos de extremidade HTTP que usam dependências externas em funções.

Webhooks foram renomeados e agora são chamados de pontos de conexão HTTPS sem nenhuma alteração em seu comportamento. Recomendamos migrar webhooks existentes.

Os serviços existentes continuarão a funcionar até 30 de setembro de 2025.

Como os serviços de terceiros e as notificações por push agora estão obsoletos, eles foram removidos por padrão da UI do App Services. Para gerenciar um serviço de terceiros ou uma notificação por push existente, adicione as configurações de volta à UI fazendo o seguinte:

  • Na navegação à esquerda, na seção Manage, clique em App Settings.

  • Ative a chave de alternância ao lado de Temporarily Re-Enable 3rd Party Services e salve as alterações.

Github é uma plataforma de desenvolvimento baseada na web para hospedagem e revisão de repositórios Git.

O serviço Github do Atlas App Services permite que sua aplicação React a evento em um repositório Github, como novas solicitações de pull ou problemas.

Você precisará fornecer valores para os seguintes parâmetros ao criar uma interface de serviço do GitHub:

<Service Name><Nome do serviço>/config.json
{
"name": "<Service Name>",
"type": "github",
"config": {}
}
Parâmetro
Descrição
Service Name
config.name
O nome dessa interface de serviço do GitHub. Isso deve ser exclusivo de todas as outras interfaces de serviço em seu aplicativo.

Os Serviços do Github não fornecem nenhuma ação de serviço. Use umwebhook de entrada para responder a eventos em seu repositório do Github .

Observação

Converter webhooks do GitHub em endpoints

Os webhooks do GitHub Service foram preteridos em favor de endpoints HTTPS personalizados. Para saber como migrar seus webhooks do GitHub existentes para endpoints, consulte Converter webhooks em endpoints HTTPS.

O Github pode invocar um ou mais webhooks sempre que um evento específico ocorrer em um repositório. Se você quiser saber mais Github sobre a funcionalidade de webhook do , incluindo informações de referência detalhadas sobre os Github tipos de evento do ,Github consulte Webhook do documentação.

Você precisará fornecer valores para os seguintes parâmetros ao configurar um webhook de entrada do Github:

Você precisará fornecer um arquivo de configuração do seguinte formulário ao configurar um webhook de entrada do Github :

{
"name": <string>,
"respond_result": <boolean>,
"run_as_user_id": <string>,
"run_as_user_id_script_source": <string>,
"options": {
"secret": <string>
},
}
Valor da configuração
Descrição
Webhook Name
name
Obrigatório. O nome do webhook. Cada webhook de entrada em uma interface de serviço do Github deve ter um nome exclusivo.
Respond With Result
respond_result
Obrigatório. Se true, o App Services envia o valor de retorno da função do webhook para o Github no corpo da resposta.
Run Webhook As
run_as_user_id
run_as_user_id_script_source

Opcional. A ID do usuário do App Services que executa a função do webhook quando o webhook é chamado.

Existem três maneiras de configurar o usuário de execução:

  • System: O usuário de execução é o usuário do sistema, que tem acesso total às APIs de Agregação e CRUD do MongoDB e ignora todas as regras e validação de esquema.

  • User Id: Selecione um usuário específico do aplicativo para executar a função.

  • Script: você define uma função que retorna o id do usuário de execução.

Você pode especificar o ID do usuário diretamente no run_as_user_id ou fornecer uma Atlas Function em string que aceita a carga útil do webhook e retorna o ID do usuário no run_as_user_id_script_source. Se você não especificar um ID de usuário específico ou uma função que resolva para um ID de usuário, o App Services executará a função de webhook como o usuário do sistema que tem acesso total às APIs de agregação e CRUD do MongoDB e ignora todas as regras e validação de esquema.

Request Validation
config.secret
A string GitHub Secret que o Github inclui com as solicitações de entrada para provar que as solicitações são válidas. Você deve especificar esse valor nas configurações do seu repositório GitHub quando fornecer um URL de webhook.

O App Services passa automaticamente um documento payload como o primeiro argumento para as funções de entrada do webhook. Em um webhook de entrada do Github Service, o objeto payload representa o evento do Github que fez o Github chamar o webhook.

Observação

O conteúdo exato dos documentos do Github payload varia dependendo do tipo de evento que ele representa. Para obter uma descrição detalhada do documento de carga útil de um tipo de evento específico, consulte Github Tipos de eventos e cargas úteis do documentação.

A seguinte função de webhook insere dados recebidos em uma collection MongoDB.

exports = function(payload) {
const mongodb = context.services.get("mongodb-atlas");
const requestlogs = mongodb.database("test").collection("requestlogs");
return requestlogs
.insertOne({
"commits": payload.commits,
"pushed_by": payload.pusher,
"repo": payload.repository.html_url
})
.then(({ insertedId }) => `Inserted document with _id: ${insertedId}`)
}

O documento payload é passado pelo serviço do GitHub e contém informações da solicitação.

  1. Faça login no Github.

  2. Navegue até o repositório que você deseja assinar.

  3. Clique na aba Settings do repositório e selecione Webhooks no menu à esquerda.

  4. Clique em Add Webhook.

  5. Adicione a URL do webhook ao campo Payload URL .

  6. Defina o tipo de conteúdo para application/json.

  7. Insira o GitHub Secret. Isso deve corresponder ao valor fornecido na configuração do webhook.

  8. Escolha o tipo de eventos que deseja assinar.

  9. Clique em Add webhook.

Voltar

AWS