Saltar a contenido

Reglas Webhook

Las reglas webhook son una herramienta poderosa para habilitar el acceso desde el mundo exterior a su cadena de herramientas DevOps. Con reglas webhook se pueden escribir interfaces de aplicación ad-hoc a Clarive, así como páginas web personalizadas.

Las reglas webhook se pueden acceder a través de una URL expuesta en Clarive. Cuando un usuario o programa llama a la URL, la lógica de la regla se ejecutará como con cualquier otro evento.

Para habilitar una regla webhook, simplemente suba un rulebook .clarive.yml a un repositorio Git con un evento que comience con una barra diagonal /.

name: my webhooks

/hello_world:
   - echo: "requested param={{ ctx.request('params') }}"

Si el rulebook anterior está en MyProject/MyRepo bajo Clarive, la siguiente URL se expondrá instantáneamente (el usuario necesita estar autenticado, es decir, desde un navegador):

https://myclariveserver/rules/json/MyProject/MyRepo/hello_world

Llamar a la URL (con cURL por ejemplo) ejecutará la operación echo en el webhook de evento /hello_world.

Datos de Solicitud

Para obtener los datos de solicitud, los siguientes contextos están habilitados:

Contexto Contenidos
ctx.request('params') Los parámetros de query-string o formulario de la URL en un hash
ctx.request('args') Array con cada uno de los componentes /path de la URL
ctx.request('body') El cuerpo completo de la solicitud como una cadena
ctx.request('headers') Encabezados de solicitud HTTP
ctx.request('upload') Archivos subidos
ctx.user() El id de usuario quien hizo la solicitud (autenticada)

Datos de respuesta

Cualquier dato de respuesta debe ser enviado usando la operación web_response:.

name: my webhooks

/hello_world:
  do:
    - web_response:
        body: "Hello world!"

Parámetros válidos de web_response:

    for my $meth ( qw(body cookies status redirect location write content_type headers header) ) {
Argumento Contenidos
body El cuerpo de la respuesta
cookies Un hash con las cookies a establecer en el navegador/cliente
status El estado HTTP
redirect Redirección HTTP
location Cadena de ubicación HTTP
content_type Cadena de content-type
headers Encabezados de respuesta

Autenticación

Las llamadas a rulebooks webhook necesitan estar autenticadas por defecto.

Eso significa que el usuario que llama al rulebook necesita estar autenticado o poner un api_key como argumento a la llamada del rulebook.

Los permisos del rulebook estarán vinculados al usuario que llama al rulebook, y nunca al propietario que creó la regla.

Para usar una clave api, diríjase al menú de usuario, Preferencias en la parte superior derecha de la IU de Clarive, y Genere Clave API (si nunca se ha hecho antes).

Copie el api_key y úselo en el cliente que llamará al rulebook:

curl https://clariveserver/rule/json/MyProject/MyRepo/hello_world?api_key=9837492dac873473443489adcc8787