Skip to main content

Inicio rápido para compilar aplicaciones de GitHub

Compile rápidamente un GitHub App que agregue comentarios a las solicitudes de incorporación de cambios.

Introducción

Las GitHub Apps permiten automatizar procesos o integrar otras plataformas con GitHub. Para más información, consulta Acerca de la creación de aplicaciones de GitHub.

En este inicio rápido se describe cómo crear rápidamente un GitHub App. Cuando se abre una solicitud de cambios en un repositorio al que se concedió acceso a la aplicación, la aplicación agregará un comentario a la solicitud de cambios.

En este inicio rápido se usa código escrito previamente para ayudarte a empezar a trabajar rápidamente. Para obtener un tutorial más detallado que realmente te ayude a escribir el código, consulta Creación de una aplicación de GitHub que responda a eventos de webhook.

Requisitos previos

Tu equipo o espacio de código debe usar Node.js versión 12 o superior. Para más información, consulta Node.js.

Paso 1: Clonar el código de la aplicación

Para que puedas empezar rápidamente, puedes usar el código que hemos escrito. Si quieres aprender a escribir el código, consulta Creación de una aplicación de GitHub que responda a eventos de webhook.

  1. Clona el repositorio github/github-app-js-sample. Para más información, consulta Clonar un repositorio. Puedes usar un clon local o GitHub Codespaces.
  2. En una ventana de terminal, ve al directorio donde se almacena el clon.
  3. Ejecute npm install para instalar las dependencias.

Paso 2: Obtener una dirección URL del proxy de webhook

Para desarrollar tu aplicación localmente, puedes utilizar una URL de proxy de webhook para redirigir webhooks desde GitHub a tu equipo o espacio de código. En este inicio rápido se usa Smee.io para proporcionar una dirección URL del proxy de webhook y reenviar webhooks.

  1. Abra el explorador y vaya a https://smee.io/.
  2. Haz clic en Iniciar un nuevo canal.
  3. Copia la dirección URL completa en "Dirección URL del proxy de webhook". La usarás en un paso posterior.

Paso 3: Registrar una GitHub App

Los pasos siguientes te guiarán por la configuración de los valores de la aplicación necesarios para este inicio rápido. Para más información sobre la configuración, consulta Registro de una aplicación de GitHub.

  1. En la esquina superior derecha de cualquier página, en GitHub, haz clic en la fotografía del perfil.
  2. Navega a la configuración de tu cuenta.
    • Para una aplicación propiedad de una cuenta personal, haga clic en Configuración.
    • Para una aplicación propiedad de una organización:
      1. Haga clic en Sus organizaciones.
      2. A la derecha de la organización, haga clic en Configuración.
  3. En la barra lateral de la izquierda, haz clic en Developer settings.
  4. En la barra lateral de la izquierda, haga clic en GitHub Apps .
  5. Haga clic en Nuevo GitHub App.
  6. Bajo "GitHub App nombre", escriba un nombre para su aplicación. Por ejemplo, USERNAME-quickstart-app donde USERNAME es el nombre de usuario de GitHub.
  7. En "Dirección URL de la página principal", escribe https://github.com/github/github-app-js-sample#readme.
  8. Omite las secciones "Identificación y autorización de usuarios" y "Pasos posteriores a la instalación" de este inicio rápido. Para más información acerca de esta configuración, consulta Registro de una aplicación de GitHub.
  9. Asegúrate de que Activo esté seleccionado en "Webhooks".
  10. En "Dirección URL de webhook", escribe la dirección URL del proxy de webhook anterior. Para más información, consulta Paso 2: Obtener una dirección URL del proxy de webhook.
  11. En "Secreto de webhook", escribe una cadena aleatoria. Usarás esta cadena más adelante.
  12. En "Permisos de repositorio", junto a "Solicitudes de cambios", selecciona Leer y escribir.
  13. En "Suscripción a los eventos", selecciona Solicitud de extracción.
  14. En "¿Dónde se puede instalar esta GitHub App?", selecciona Solo en esta cuenta.
  15. Haga clic en Crear un GitHub App.

Paso 4: Almacenar la información de identificación y las credenciales

En este inicio rápido, almacenarás las credenciales de tu aplicación y la información identificativa como variables de entorno en un archivo .env. Cuando implementes la aplicación, puede que quieras cambiar la forma en que se almacenan las credenciales. Para más información, consulta Implementación de la aplicación.

Asegúrate de que estás en una máquina segura antes de realizar estos pasos, ya que vas a almacenar las credenciales localmente.

Cree un archivo .env .

El repositorio clonado incluye .env en el archivo .gitignore. Esto evitará que comprometas accidentalmente las credenciales de tu aplicación. Para más información sobre los archivos .gitignore, consulta Ignorar archivos.

  1. Ve al directorio en el que se almacena el clon de github/github-app-js-sample.

  2. Cree un archivo llamado .env en el nivel superior de este directorio.

  3. Agrega el siguiente contenido al archivo .env: Actualizarás los valores en un paso posterior.

    Text
    APP_ID="YOUR_APP_ID"
    WEBHOOK_SECRET="YOUR_WEBHOOK_SECRET"
    PRIVATE_KEY_PATH="YOUR_PRIVATE_KEY_PATH"
    

Si saliste de la configuración de la aplicación después de crearla, navega a la página de configuración de tu aplicación.

  1. Junto al nombre de la aplicación, haz clic en Editar.

Obtención de las credenciales y de la información de identificación de la aplicación

  1. En la página de configuración de la aplicación, junto a "Id. de la aplicación", busca el identificador de la aplicación.
  2. En el archivo .env, reemplaza YOUR_APP_ID por el identificador de la aplicación.
  3. En la página de configuración de la aplicación, en "Claves privadas", haz clic en Generar una clave privada. Verás una llave privada en formato PEM que se descarga en tu ordenador. Para más información, consulta Administración de claves privadas para aplicaciones de GitHub.
  4. Si usas un codespace, mueve el archivo PEM descargado al codespace para que este pueda acceder al archivo.
  5. En el archivo .env, reemplaza YOUR_PRIVATE_KEY_PATH por la ruta de acceso completa a la clave privada, incluida la extensión .pem.
  6. En el archivo .env, reemplaza YOUR_WEBHOOK_SECRET por el secreto de webhook de la aplicación. Si has olvidado el secreto de webhook, en "Secreto de webhook (opcional)", haz clic en Cambiar secreto. Especifica un nuevo secreto y, a continuación, haz clic en Guardar cambios.

Paso 5: Instalar la aplicación

Para que la aplicación deje un comentario en las solicitudes de extracción de un repositorio, debe instalarse en la cuenta propietaria del repositorio y debe concedérsele acceso a ese repositorio. Como tu aplicación es privada, solo puede instalarse en la cuenta propietaria de la aplicación.

  1. En la cuenta propietaria de la aplicación que creaste, crea un nuevo repositorio en el que instalar la aplicación. Para más información, consulta Crear un repositorio nuevo.
  2. Si has salido de la configuración después de crear la aplicación, vuelve a la página de configuración de la aplicación. Para más información, consulta Ir a la configuración de tu aplicación.
  3. Haz clic en Página pública.
  4. Haga clic en Instalar.
  5. Seleccione Solo repositorios.
  6. Selecciona el menú desplegable Seleccionar repositorios y haz clic en el repositorio que elegiste al principio de esta sección.
  7. Haga clic en Instalar.

Paso 6: Iniciar el servidor

Para realizar pruebas, usarás el equipo o el codespace como servidor. La aplicación solo estará activa cuando el servidor este en ejecución.

  1. En una ventana de terminal, ve al directorio en el que se almacena el clon de github/github-app-js-sample.

  2. Para recibir los webhooks reenviados desde Smee.io, ejecuta npx smee -u WEBHOOK_PROXY_URL -t http://localhost:3000/api/webhook. Reemplaza WEBHOOK_PROXY_URL por la dirección URL del proxy de webhook. Si olvidaste la dirección URL, puedes encontrarla en el campo "Dirección URL de webhook" en la página de configuración de la aplicación.

    Deberías ver una salida con el siguiente aspecto, en la que WEBHOOK_PROXY_URL es la dirección URL del proxy del webhook.

    Forwarding WEBHOOK_PROXY_URL to http://localhost:3000/api/webhook
    Connected WEBHOOK_PROXY_URL
    
  3. En una segunda ventana de terminal, ve al directorio en el que se almacena el clon de github/github-app-js-sample.

  4. Ejecute npm run server. El terminal debe indicar, Server is listening for events at: http://localhost:3000/api/webhook.

Paso 7: Probar la aplicación

Ahora que el servidor está en ejecución y recibe eventos de webhooks reenviados, abre una solicitud de incorporación de cambios para probar la aplicación.

  1. Abre una solicitud de incorporación de cambios en el repositorio que creaste en Paso 5: Instalar la aplicación. Para más información, consulta Crear una solicitud de incorporación de cambios.
  2. Vaya a la dirección URL del proxy del webhook en smee.io. Deberías ver un evento pull_request. Esto indica que GitHub envió correctamente un evento de solicitud de extracción cuando creaste una solicitud de extracción.
  3. En el terminal en el que ejecutaste npm run server, deberías ver algo parecido a "Se ha recibido un evento de solicitud de cambios #1", donde el entero después de # es el número de la solicitud de cambios que abriste.
  4. En la escala de tiempo de la solicitud de cambios, deberías ver un comentario de la aplicación. El comentario usa el contenido del archivo message.md en el repositorio clonado.
  5. En ambas ventanas de terminal, escribe Ctrl+C para detener el servidor y dejar de escuchar webhooks reenviados.

Pasos siguientes

Ahora que tienes una aplicación, es posible que quieras expandir su código, implementarla y hacer que sea pública.

Modificar el código de la aplicación

Bifurca el repositorio github/github-app-js-sample y modifica el código para que responda a diferentes eventos de webhook o para que realice solicitudes de API diferentes. Para más información sobre el código, consulta Creación de una aplicación de GitHub que responda a eventos de webhook.

Recuerda actualizar los permisos de la aplicación si esta necesita permisos adicionales para las solicitudes de API que quieres realizar o los eventos de webhook que quieres recibir. Para más información, consulta Elección de permisos para una aplicación de GitHub.

Implementación de la aplicación

En este tutorial se utilizó su computadora o codespace como servidor. Una vez que la aplicación esté lista para su uso en producción, debes implementarla en un servidor dedicado. Por ejemplo, puede usar Azure App Service.

Una vez que tengas un servidor, actualiza la dirección URL del webhook en la configuración de la aplicación. No debes usar Smee.io para reenviar los webhooks en producción.

También deberás actualizar las constantes port y host en el código. Para más información, consulta Creación de una aplicación de GitHub que responda a eventos de webhook.

Nunca debes publicar la clave privada ni el secreto de webhook de la aplicación. En este tutorial se almacenan las credenciales de la aplicación en un archivo gitignored .env. Cuando implementes la aplicación, debes elegir una manera segura de almacenar las credenciales y actualizar el código para obtener el valor en consecuencia. Por ejemplo, puedes almacenar las credenciales en una variable de entorno en el servidor en el que se implementa la aplicación. También puede usar un servicio de administración de secretos como Azure Key Vault.

Compartición de la aplicación

Si quieres compartir la aplicación con otros usuarios y organizaciones, haz que la aplicación sea pública. Para más información, consulta Hacer que una aplicación de GitHub sea pública o privada.

Seguimiento de los procedimientos recomendados

Debes intentar seguir las mejores prácticas con tu aplicación de GitHub App. Para más información, consulta Procedimientos recomendados para crear una aplicación de GitHub.