Skip to main content

Automatizaciones en su empresa

Obtenga información sobre cómo GitHub Apps, servicios externos y GitHub Actions funcionan conjuntamente para automatizar procesos de su empresa.

La automatización en GitHub normalmente implica que varios componentes funcionen juntos. Los componentes nativos de GitHub son los siguientes:

  • GitHub Actions flujos de trabajo, que proporcionan un tiempo de ejecución para ejecutar la lógica de automatización. De fábrica, funcionan dentro de un único repositorio, pero se pueden ampliar para automatizar entre repositorios o incluso fuera de ellos.
  • GitHub Apps, que no tienen un tiempo de ejecución. En su lugar, proporcionan identidad, permisos y entrega de eventos para que las automatizaciones, ya sean servicios externos o flujos de trabajo, puedan autenticarse y actuar de forma segura.

La mayoría de la automatización empresarial usa GitHub Apps y GitHub Actions conjuntamente. Por ejemplo, un flujo de trabajo que se ejecuta en GitHub Actions puede usar una GitHub App para obtener un token de corta duración que le permita realizar tareas en repositorios u organizaciones.

En esta guía se explica cómo las GitHub Apps, las automatizaciones externas y las GitHub Actions se complementan entre sí y cuándo utilizar cada una en su organización.

GitHub Apps

Una GitHub App proporciona la identidad, los permisos y los eventos de webhook necesarios para la automatización en repositorios, organizaciones o su empresa. Las GitHub Apps por sí mismas no ejecutan lógica, permiten que otros sistemas lo hagan.

Las GitHub Apps admiten la automatización empresarial ofreciendo:

  • Permisos granulares para seguir los principios de privilegios mínimos
  • Instalaciones delimitadas en el nivel de empresa, organización o repositorio
  • Tokens de corta duración para el acceso seguro
  • Identidades distintas con plena auditabilidad
  • Administración delegada mediante el rol de administrador GitHub App
  • Coherencia a escala cuando pertenecen a una cuenta empresarial

¿Qué permiten las GitHub Apps?

Las GitHub Apps permiten que las automatizaciones que escriba en otro lugar (como servicios externos o pasos de flujo de trabajo) actúen en las API de GitHub dentro de los permisos que concede. Por ejemplo:

  • Recepción de eventos de webhook y activación de servicios externos
  • Habilitación de un flujo de trabajo para actuar fuera de su ámbito de repositorio predeterminado
  • Integración de GitHub con sistemas de terceros
  • Coordinación de cambios en muchos repositorios
  • Ejecución de bots o servicios de ejecución prolongada que supervisan la actividad a nivel empresarial

GitHub Actions

Las GitHub Actions proporcionan el entorno de ejecución integrado de GitHub para ejecutar lógica de automatización dentro de repositorios. Los flujos de trabajo se ejecutan en ejecutores autohospedados y son ideales para tareas relacionadas con cambios de código o eventos en el repositorio.

Utilice GitHub Actions para:

  • CI/CD (compilación, prueba, implementación)
  • Comprobaciones y validaciones de pull requests
  • Tareas de mantenimiento de nivel de repositorio
  • Flujos de trabajo controlados por eventos que responden a inserciones, etiquetas o actualizaciones de incidencias
  • Trabajos programados con cron

Cómo GitHub Actions usa GitHub Apps

GitHub Actions y GitHub Apps están profundamente conectados:

  • Los permisos de flujo de trabajo se asignan directamente a los permisos de GitHub App.
  • Los flujos de trabajo se pueden autenticar como una GitHub App mediante actions/create-github-app-token.
  • GitHub Apps puede desencadenar flujos de trabajo a través de eventos como repository_dispatch.

Automatizaciones y servicios externos

Las automatizaciones externas se ejecutan fuera de GitHub en su propia infraestructura. Normalmente, estos servicios:

  • Recepción de eventos de webhook de una GitHub App
  • Use GitHub App para solicitar tokens de instalación temporales.
  • Ejecución de lógica de larga duración o entre empresas
  • Integración con sistemas empresariales externos

Algunos ejemplos son:

  • Administración de configuraciones de toda la organización
  • Servicios de cumplimiento de directivas
  • Sincronización de metadatos o código de varios repositorios
  • Generación de informes de cumplimiento
  • Administración de incidencias o de solicitudes de incorporación de cambios entre organizaciones

Todos ellos dependen de GitHub Apps para la autenticación, la identidad y los eventos, no para la ejecución.

Funcionamiento conjunto de estos componentes

La mayoría de la automatización empresarial utiliza una combinación de GitHub Apps, servicios externos y GitHub Actions para lograr flujos de trabajo sólidos y escalables.

Por ejemplo:

  1. Una empresa GitHub App recibe un webhook cuando se crea un nuevo repositorio y envía la carga del webhook a un servidor donde se ejecuta un servicio externo.
  2. El servicio externo estandariza la configuración necesaria y aprovisiona recursos.
  3. El servicio desencadena un flujo de trabajo GitHub Actions en el repositorio.
  4. El flujo de trabajo realiza CI, implementa plantillas o configura el escaneo.

Cada componente controla una capa de automatización diferente.

Cuándo usar cada tipo de automatización

Use una GitHub App cuando necesite:

  • Autenticación o permiso para actuar en muchos repositorios
  • Integración con sistemas externos
  • Automatizaciones controladas por webhooks
  • Flujos de trabajo de larga duración o de toda la empresa
  • Auditabilidad y separación de identidades

Utilice automatizaciones externas cuando necesite:

  • Lógica que se ejecute continuamente o fuera de GitHub
  • Integración con sistemas internos

Use GitHub Actions cuando necesite:

  • Canalizaciones de CI/CD
  • Automatización con ámbito de repositorio
  • Comprobaciones automatizadas vinculadas a eventos de repositorio
  • Ejecución de lógica mediante la infraestructura de ejecución de GitHub

Usa GitHub Apps y GitHub Actions juntos cuando:

  • Un flujo de trabajo debe actuar más allá de los permisos predeterminados del repositorio.
  • Una GitHub App debe desencadenar un flujo de trabajo
  • La lógica externa se orquesta la ejecución en el repositorio
  • Las directivas o flujos de trabajo de toda la empresa requieren identidad y tiempo de ejecución

Pasos siguientes

Obtenga información sobre cómo diseñar y administrar GitHub Apps a nivel de empresa en Creación de aplicaciones GitHub para su empresa.