Header Ads Widget

Ticker

6/recent/ticker-posts

Acciones de GitHub: desencadenadores de publicación HTTP y manual de flujo de trabajo con workflow_dispatch y repository_dispatch

 En este artículo, le mostraremos cómo activar su flujo de trabajo de Acciones de GitHub manualmente y enviando una solicitud HTTP POST con envío de flujo de trabajo y envío de repositorio .

GitHub agregó una nueva función de activación manual a partir de julio de 2020 a sus flujos de trabajo de acciones de GitHub.

Este activador manual se puede utilizar para ejecutar un flujo de trabajo desde la interfaz de usuario (la pestaña "Acciones") o enviando una solicitud HTTP POST que permite a los desarrolladores activar su flujo de trabajo desde fuera de GitHub.

Cómo activar manualmente un flujo de trabajo de acciones de GitHub

Puede activar manualmente su flujo de trabajo mediante dos tipos de acciones:

  • workflow_dispatch para activar un evento de flujo de trabajo específico.
  • repository_dispatch para activar todos los flujos de trabajo establecidos en el repositorio.

En nuestro ejemplo, asumiremos que solo tenemos un flujo de trabajo, por lo que usaremos el repository_dispatchevento.

Ahora puede crear flujos de trabajo que se activan manualmente con el nuevo evento workflow_dispatch. A continuación, verá un botón 'Ejecutar flujo de trabajo' en la pestaña Acciones, lo que le permitirá activar fácilmente una ejecución. Puede elegir en qué rama se ejecuta el flujo de trabajo. Fuente

Dirígete a tu proyecto y abre el <workflow>.ymlarchivo. En la sección que define cómo se iniciará el flujo de trabajo, agregue el repository_dispatchactivador de la siguiente manera:

on:
  push:
    branches:
      - master
  pull_request:
    types: [opened, synchronize, reopened, closed]
    branches:
      - master
  repository_dispatch:

También puede especificar tipos de eventos para el repository_dispatchevento:

on:
  push:
    branches:
      - master
  pull_request:
    types: [opened, synchronize, reopened, closed]
    branches:
      - master
  repository_dispatch:
    types: [backend_automation]

Esto le permitirá iniciar su flujo de trabajo utilizando una publicación HTTP desde fuera de GitHub.

A continuación, agreguemos también workflow_dispatchpara habilitar el inicio del flujo de trabajo desde la interfaz de usuario de la siguiente manera:

on:
  push:
    branches:
      - master
  pull_request:
    types: [opened, synchronize, reopened, closed]
    branches:
      - master
  repository_dispatch:
    types: [backend_automation]
  workflow_dispatch:

Por último, tenemos que cambiar la ifcondición de build_and_deploy_jobincluir las repository_dispatchy los workflow_dispatcheventos de la siguiente manera:

jobs:
  build_and_deploy_job:
    if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') || github.event_name == 'repository_dispatch' || github.event_name == 'workflow_dispatch'

Ahora puede activar el flujo de trabajo desde la interfaz de usuario de GitHub.

Comprender cómo activar manualmente los flujos de trabajo de acciones de GitHub con solicitudes HTTP

Puede activar un flujo de trabajo de acciones de GitHub manualmente enviando un repository_dispatchevento. Luego, puede ejecutar sus flujos de trabajo de Acciones de GitHub utilizando sus eventos predefinidos.

Puede desencadenar un repository_dispatchevento manualmente , enviando un mensaje POST al siguiente extremo de la API de GitHub:

POST /repos/:owner/:repo/dispatches

Por ejemplo, usando nuestro repositorio de ejemplo llamado angular-bootstrap-demo, con nuestro nombre de usuario de GitHub (techiediaries), necesitamos enviar una solicitud HTTP Post al siguiente punto final:

https://api.github.com/repos/techiediaries/angular-bootstrap-demo/dispatches

A continuación, veremos un ejemplo detallado de cómo activar un repository_dispatchevento usando cURL para enviar una solicitud HTTP Post.

Inicio del flujo de trabajo de acciones de GitHub mediante una solicitud de publicación HTTP

Para activar el flujo de trabajo mediante el envío de una solicitud http, necesita obtener un token de acceso que le permita autenticar su solicitud con GitHub en lugar de una contraseña.

Los tokens de acceso se utilizan para la autenticación en lugar de una contraseña con la línea de comandos o con la API de GitHub.

Este token de acceso debe tener un alcance de repositorio y se puede generar desde la configuración del desarrollador siguiendo esta guía .

Asegúrese de generar un token con public_repoworkflowalcances.

Finalmente, puede enviar una solicitud http para activar el flujo de trabajo de la siguiente manera:

curl \
-X POST \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: token <your-token>" \
https://api.github.com/repos/:user/:repo/dispatches \
-d '{"event_type":"<your-event-type>"}'

Asegúrese de especificar su token de acceso, usuario, repositorio y tipo de evento que utilizó en el flujo de trabajo.

Conclusión

En este artículo, hemos visto cómo activar manualmente un flujo de trabajo de Acciones de GitHub usando la pestaña Acciones en su repositorio o enviando una solicitud HTTP Post después de generar un token de acceso con el repositorio y los alcances del flujo de trabajo para la autenticación en GitHub.


Publicar un comentario

0 Comentarios