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 GitHub Apps."
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 dicha solicitud.
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
Tanto el equipo como el codespace deben usar versión 12 de Node.js, cualquier versión posterior. 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".
- Clona el repositorio github/github-app-js-sample. Para obtener más información, vea «Clonar un repositorio». Puedes usar un clon local o GitHub Codespaces.
- En una ventana de terminal, ve al directorio donde se almacena el clon.
- Ejecute
npm install
para instalar las dependencias.
Paso 2: Obtener una dirección URL del proxy de webhook
Para desarrollar la aplicación localmente, puedes usar una dirección URL del proxy de webhook para reenviar webhooks de GitHub al equipo o codespace. En este inicio rápido se usa Smee.io para proporcionar una dirección URL del proxy de webhook y reenviar webhooks.
- Abre el explorador y ve a https://smee.io/.
- Haz clic en Iniciar un nuevo canal.
- Copia la dirección URL completa en "Dirección URL del proxy de webhook". La usarás en un paso posterior.
Paso 3: Registro de una instancia de 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 instancia de GitHub App".
- En la esquina superior derecha de cualquier página en GitHub Enterprise Server, haga clic en su fotografía de perfil.
- 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:
- Haga clic en Sus organizaciones.
- A la derecha de la organización, haga clic en Configuración.
- En la barra lateral izquierda, haz clic en Configuración del desarrollador.
- En la barra lateral de la izquierda, haga clic en GitHub Apps .
- Haga clic en New GitHub App (Nueva aplicación GitHub).
- En "Nombre de la aplicación de GitHub", escribe un nombre para la aplicación. Por ejemplo,
USERNAME-quickstart-app
dondeUSERNAME
es el nombre de usuario de GitHub. - En "Dirección URL de la página principal", escribe
https://github.com/github/github-app-js-sample#readme
. - 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 instancia de GitHub App".
- Asegúrate de que Activo esté seleccionado en "Webhooks".
- 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".
- En "Secreto de webhook", escribe una cadena aleatoria. Usarás esta cadena más adelante.
- En "Permisos de repositorio", junto a "Solicitudes de cambios", selecciona Leer y escribir.
- En "Suscripción a los eventos", selecciona Solicitud de cambios.
- En "¿Dónde se puede instalar esta aplicación de GitHub?", selecciona Solo en esta cuenta.
- Haga clic en Create GitHub App (Crear aplicación de GitHub).
Paso 4: Almacenar la información de identificación y las credenciales
En este inicio rápido, tanto las credenciales como la información se van a almacenar 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 confirmes accidentalmente las credenciales de la aplicación. Para más información sobre los archivos .gitignore
, consulta "Ignorar archivos".
-
Ve al directorio en el que se almacena el clon de github/github-app-js-sample.
-
Cree un archivo llamado
.env
en el nivel superior de este directorio. -
Agrega el siguiente contenido al archivo
.env
: ReemplazaYOUR_HOSTNAME
por el nombre de tu instancia de GitHub Enterprise Server. Actualizarás los demás valores en un paso posterior.Text APP_ID="YOUR_APP_ID" WEBHOOK_SECRET="YOUR_WEBHOOK_SECRET" PRIVATE_KEY_PATH="YOUR_PRIVATE_KEY_PATH" HOSTNAME="YOUR_HOSTNAME"
APP_ID="YOUR_APP_ID" WEBHOOK_SECRET="YOUR_WEBHOOK_SECRET" PRIVATE_KEY_PATH="YOUR_PRIVATE_KEY_PATH" HOSTNAME="YOUR_HOSTNAME"
Desplazamiento a la configuración de la aplicación
Si saliste de la configuración después de crear la aplicación, vuelve a ella:
- En la esquina superior derecha de cualquier página en GitHub Enterprise Server, haga clic en su fotografía de perfil.
- 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:
- Haga clic en Sus organizaciones.
- A la derecha de la organización, haga clic en Configuración.
- En la barra lateral izquierda, haz clic en Configuración del desarrollador.
- En la barra lateral de la izquierda, haga clic en GitHub Apps .
- 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
- 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.
- En el archivo
.env
, reemplazaYOUR_APP_ID
por el identificador de la aplicación. - 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 obtener más información, vea «Administración de claves privadas para aplicaciones de GitHub».
- Si usas un codespace, mueve el archivo PEM descargado al codespace para que este pueda acceder al archivo.
- En el archivo
.env
, reemplazaYOUR_PRIVATE_KEY_PATH
por la ruta de acceso completa a la clave privada, incluida la extensión.pem
. - En el archivo
.env
, reemplazaYOUR_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 cambios de un repositorio, debe instalarse en la cuenta propietaria del repositorio y se debe conceder acceso a ese repositorio. Como tu aplicación es privada, solo puede instalarse en la cuenta propietaria de la aplicación.
- En la cuenta propietaria de la aplicación que creaste, crea un nuevo repositorio en el que instalar la aplicación. Para obtener más información, vea «Crear un repositorio nuevo».
- 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 "Desplazamiento a la configuración de la aplicación".
- Haz clic en Página pública.
- Haga clic en Instalar.
- Elige Solo seleccionar repositorios.
- Selecciona el menú desplegable Seleccionar repositorios y haz clic en el repositorio que elegiste al principio de esta sección.
- 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.
-
En una ventana de terminal, ve al directorio en el que se almacena el clon de github/github-app-js-sample.
-
Para recibir los webhooks reenviados desde Smee.io, ejecuta
npx smee -u WEBHOOK_PROXY_URL -t http://localhost:3000/api/webhook
. ReemplazaWEBHOOK_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
-
En una segunda ventana de terminal, ve al directorio en el que se almacena el clon de github/github-app-js-sample.
-
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.
- Abre una solicitud de incorporación de cambios en el repositorio que creaste en Paso 5: Instalar la aplicación. Para obtener más información, vea "Crear una solicitud de incorporación de cambios".
- Vaya a la dirección URL del proxy del webhook en smee.io. Verá el evento
pull_request
. Esto indica que GitHub envió correctamente un evento de solicitud de cambios al crear una solicitud de este tipo. - 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. - 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. - 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.
Modificación 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 obtener más información, vea «Elección de permisos para una aplicación de GitHub».
Implementación de la aplicación
En este tutorial se usó el equipo 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, puedes 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 obtener más información, vea «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 puedes 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 obtener más información, vea «Hacer pública o privada a una GitHub App».
Seguimiento de los procedimientos recomendados
Debes intentar seguir los procedimientos recomendados con tu instancia de GitHub App. Para obtener más información, vea «Procedimientos recomendados para crear una aplicación de GitHub».