Skip to main content

Automatizaciones en su empresa

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

La automatización en GitHub normalmente implica que varios componentes funcionen juntos. Los componentes nativos más importantes GitHub son:

  • GitHub Actions flujos de trabajo, que proporcionan un entorno 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 entorno 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 usan GitHub Apps y GitHub Actions juntos. Por ejemplo, un flujo de trabajo que se ejecuta en GitHub Actions puede usar 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 GitHub Apps, las automatizaciones externas y GitHub Actions se complementan entre sí y cuándo usar cada uno en su empresa.

GitHub Apps

Un GitHub App proporciona la identidad, los permisos y los eventos de webhook necesarios para la automatización en uno o varios repositorios, organizaciones o en toda su empresa. GitHub Apps no ejecutan lógica por sí mismos, sino que permiten a otros sistemas hacerlo.

GitHub Apps admiten la automatización empresarial al ofrecer:

  • 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 a través del GitHub App rol de administrador
  • Coherencia a escala cuando pertenecen a una cuenta empresarial

¿Qué habilita GitHub Apps ?

GitHub Apps permite que las automatizaciones que escriba en otro lugar (como servicios externos o pasos de flujo de trabajo) actúen en GitHub las API 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
  • Integrar 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

GitHub Actions proporcione GitHubel entorno de ejecución integrado para ejecutar la lógica de automatización dentro de los repositorios. Los flujos de trabajo se ejecutan en autohospedados y son ideales para tareas vinculadas a cambios de código o eventos de repositorio.

Use 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 corresponden directamente a los permisos de GitHub App.
  • Los flujos de trabajo se pueden autenticar como un específico 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 tu propia infraestructura. Normalmente, estos servicios:

  • Recibe eventos de webhook de un GitHub App
  • Utilice GitHub App para solicitar tokens de instalación de corta duración
  • 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 usa 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 GitHub Actions flujo de trabajo 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

Utilice a 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 ejecuta 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 utilizando la infraestructura de ejecutor de GitHub

Use GitHub Apps y GitHub Actions juntos cuando:

  • Un flujo de trabajo debe actuar más allá de los permisos predeterminados del repositorio.
  • Un GitHub App necesita activar 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

Aprenda a diseñar y administrar GitHub Apps en el nivel empresarial en Creación de aplicaciones GitHub para su empresa.