# Inicio rápido para compilar aplicaciones de GitHub

Crea rápidamente un GitHub App que comente en las solicitudes de extracción.

## Introducción

GitHub Apps le permite automatizar procesos o integrar otras plataformas con GitHub. Para más información, consulta [Acerca de la creación de aplicaciones de GitHub](/es/enterprise-server@3.22/apps/creating-github-apps/about-creating-github-apps/about-creating-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 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](/es/enterprise-server@3.22/apps/creating-github-apps/writing-code-for-a-github-app/building-a-github-app-that-responds-to-webhook-events).

## 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](https://nodejs.org).

## 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](/es/enterprise-server@3.22/apps/creating-github-apps/writing-code-for-a-github-app/building-a-github-app-that-responds-to-webhook-events).

1. Clona el repositorio [github/github-app-js-sample](https://github.com/github/github-app-js-sample). Para más información, consulta [Clonar un repositorio](/es/enterprise-server@3.22/repositories/creating-and-managing-repositories/cloning-a-repository). Puede 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 en local, puedes usar una URL de proxy de webhooks para reenviar webhooks desde GitHub a tu 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.

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 un 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](/es/enterprise-server@3.22/apps/creating-github-apps/registering-a-github-app/registering-a-github-app).

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 **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-label="code" role="img"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg> Developer settings**.
4. En la barra lateral de la izquierda, haga clic en **GitHub Apps** .
5. Haga clic en **Nuevo GitHub App**.
6. En "GitHub App name", escriba un nombre para la aplicación. Por ejemplo, `USERNAME-quickstart-app` donde `USERNAME` es el GitHub nombre de usuario.
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](/es/enterprise-server@3.22/apps/creating-github-apps/registering-a-github-app/registering-a-github-app).
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](#step-2-get-a-webhook-proxy-url).
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 GitHub App instalar?", seleccione **Solo en esta cuenta**.
15. Haga clic en **Crear 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](#deploy-your-app).

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](/es/enterprise-server@3.22/get-started/git-basics/ignoring-files).

1. Ve al directorio en el que se almacena el clon de [github/github-app-js-sample](https://github.com/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`:
   Reemplace por `YOUR_HOSTNAME` el nombre de tu instancia de GitHub Enterprise Server. Actualizará los demás valores en un paso posterior.

   ```text copy
   APP_ID="YOUR_APP_ID"
   WEBHOOK_SECRET="YOUR_WEBHOOK_SECRET"
   PRIVATE_KEY_PATH="YOUR_PRIVATE_KEY_PATH"
   HOSTNAME="YOUR_HOSTNAME"
   ```

### Ve a la configuración de la aplicación

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. 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**.
   * Para una aplicación propiedad de una empresa:
     1. Haga clic en **Configuración empresarial**.

3. En la barra lateral de la izquierda, haz clic en **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-label="code" role="img"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg> Developer settings**.

4. En la barra lateral de la izquierda, haga clic en **GitHub Apps** .

5. 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](/es/enterprise-server@3.22/apps/creating-github-apps/authenticating-with-a-github-app/managing-private-keys-for-github-apps).
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](/es/enterprise-server@3.22/repositories/creating-and-managing-repositories/creating-a-new-repository).
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](#navigate-to-your-app-settings).
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](https://github.com/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.

   ```shell
   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](https://github.com/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](#step-5-install-your-app). Para más información, consulta [Crear una solicitud de incorporación de cambios](/es/enterprise-server@3.22/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request).
2. 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 pull request cuando creaste una pull request.
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 <kbd>Ctrl</kbd>+<kbd>C</kbd> 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](https://github.com/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](/es/enterprise-server@3.22/apps/creating-github-apps/writing-code-for-a-github-app/building-a-github-app-that-responds-to-webhook-events).

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](/es/enterprise-server@3.22/apps/creating-github-apps/registering-a-github-app/choosing-permissions-for-a-github-app).

### 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](https://azure.microsoft.com/products/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](/es/enterprise-server@3.22/apps/creating-github-apps/writing-code-for-a-github-app/building-a-github-app-that-responds-to-webhook-events#deploy-your-app).

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](https://azure.microsoft.com/en-us/products/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](/es/enterprise-server@3.22/apps/creating-github-apps/registering-a-github-app/making-a-github-app-public-or-private).

### Seguimiento de los procedimientos recomendados

Debería intentar seguir las mejores prácticas con su GitHub App. Para más información, consulta [Procedimientos recomendados para crear una aplicación de GitHub](/es/enterprise-server@3.22/apps/creating-github-apps/about-creating-github-apps/best-practices-for-creating-a-github-app).