{"meta":{"title":"Migración de aplicaciones de OAuth a aplicaciones de GitHub","intro":"Obtén información sobre las ventajas de migrar tu OAuth app a un GitHub App, y aprende cómo migrar tu OAuth app.","product":"Aplicaciones","breadcrumbs":[{"href":"/es/apps","title":"Aplicaciones"},{"href":"/es/apps/creating-github-apps","title":"Creación de aplicaciones GitHub"},{"href":"/es/apps/creating-github-apps/about-creating-github-apps","title":"Acerca de la creación de aplicaciones de GitHub"},{"href":"/es/apps/creating-github-apps/about-creating-github-apps/migrating-oauth-apps-to-github-apps","title":"Migración desde OAuth apps"}],"documentType":"article"},"body":"# Migración de aplicaciones de OAuth a aplicaciones de GitHub\n\nObtén información sobre las ventajas de migrar tu OAuth app a un GitHub App, y aprende cómo migrar tu OAuth app.\n\n## Ventajas de migrar de OAuth apps a GitHub Apps\n\nGitHub Apps son la manera recomendada de integrar con GitHub.\nGitHub Apps ofrecen muchas ventajas frente a OAuth apps, entre ellas:\n\n* Características de seguridad mejoradas, como permisos específicos, elección sobre el acceso al repositorio y tokens de corta duración\n* La capacidad de actuar de manera independiente o en nombre de un usuario\n* Límites de frecuencia escalables\n* Webhooks integrados\n\nPara más información, consulta [Acerca de la creación de aplicaciones de GitHub](/es/apps/creating-github-apps/about-creating-github-apps/about-creating-github-apps).\n\n## Conversión de un objeto OAuth app en GitHub App\n\nLos siguientes pasos ofrecen una visión general de cómo migrar de un OAuth app a un GitHub App. Los pasos específicos dependen de la aplicación.\n\n### 1. Revise su OAuth app\n\nVuelva a familiarizarse con el código de su OAuth app. Las solicitudes a la API que realice tu OAuth app te ayudarán a decidir qué permisos seleccionar para tu GitHub App.\n\nAdemás, hay algunos puntos de conexión de API REST que no están disponibles para OAuth apps. Compruebe que los extremos REST que utilice estén disponibles para GitHub Apps consultando [Puntos de conexión disponibles para los tokens de acceso para la instalación de aplicaciones de GitHub](/es/rest/authentication/endpoints-available-for-github-app-installation-access-tokens).\n\n### 2. Registre un GitHub App\n\nRegistre un nuevo GitHub App. Para más información, consulta [Registro de una aplicación de GitHub](/es/apps/creating-github-apps/registering-a-github-app/registering-a-github-app).\n\nComparado con un OAuth app, tienes más control sobre la configuración de GitHub App. Algunas adiciones clave son:\n\n* A diferencia de un OAuth app, que siempre actúa en nombre de un usuario, puedes hacer que tu GitHub App realice acciones por sí mismo o en nombre de un usuario. Si no desea que el nuevo GitHub App realice acciones en nombre de un usuario, puede omitir la configuración \"Identificación y autorización de usuarios\". Para más información, consulta [Acerca de la autenticación con una aplicación de GitHub](/es/apps/creating-github-apps/authenticating-with-a-github-app/about-authentication-with-a-github-app).\n\n* Puede usar webhooks para notificar a su GitHub App cuando se produzcan eventos específicos. A diferencia de los webhooks para OAuth apps, que debe configurar a través de la API para cada repositorio u organización, los webhooks están integrados en GitHub Apps. Al registrar su GitHub App, puede seleccionar los eventos de webhook que desea recibir. Además, si OAuth app utiliza actualmente sondeo para determinar si se ha producido algún evento, considere suscribirse en su lugar a webhooks para que GitHub App se mantenga dentro del límite de frecuencia. Para más información, consulta [Uso de webhooks con aplicaciones de GitHub](/es/apps/creating-github-apps/registering-a-github-app/using-webhooks-with-github-apps).\n\n* Con un OAuth app, solicitas alcances cuando un usuario autoriza tu aplicación. Con un GitHub App, se especifican los permisos en la configuración de la aplicación. Estos permisos son más pormenorizados que los ámbitos y te permiten seleccionar solo los permisos que necesita la aplicación. Además, estos permisos se asignan a los puntos de conexión de la API REST y a los eventos de webhook, por lo que puede determinar fácilmente qué permisos GitHub App necesita para acceder a un punto de conexión de API REST específico o suscribirse a un webhook específico. Actualmente, los permisos no están documentados para las solicitudes de GraphQL. Para más información, consulta [Elección de permisos para una aplicación de GitHub](/es/apps/creating-github-apps/registering-a-github-app/choosing-permissions-for-a-github-app).\n\n### 3. Modifica el código de la aplicación\n\nUna vez que haya registrado un GitHub App, adapte el código del antiguo OAuth app para trabajar con el nuevo GitHub App.\n\n#### Actualización de la autenticación\n\nTendrá que actualizar el código de su aplicación para gestionar la autenticación de la API para su GitHub App. Un GitHub App puede autenticarse de tres maneras:\n\n* Como la aplicación misma, para obtener o modificar los detalles sobre el registro GitHub App o para crear un token de acceso de instalación. Para más información, consulta [Autenticación como una aplicación de GitHub](/es/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app).\n* Como instalación de aplicación, para realizar acciones en su propio nombre. Para más información, consulta [Autenticación como una instalación de una aplicación de GitHub](/es/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app-installation).\n* En nombre de un usuario, para atribuir acciones a un usuario. Para más información, consulta [Autenticación con una aplicación de GitHub en nombre de un usuario](/es/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-with-a-github-app-on-behalf-of-a-user).\n\nSi usa GitHubla biblioteca oficial de Octokit.js, puede usar el objeto integrado `App` para autenticarse. Para obtener ejemplos, consulta [Scripting con la API de REST y JavaScript](/es/rest/guides/scripting-with-the-rest-api-and-javascript) y [Creación de una aplicación de GitHub que responda a eventos de webhook](/es/apps/creating-github-apps/writing-code-for-a-github-app/building-a-github-app-that-responds-to-webhook-events).\n\n#### Revisión de los límites de frecuencia\n\nRevise las diferencias en los límites de velocidad entre OAuth apps y GitHub Apps.\nGitHub Apps use reglas deslizantes para los límites de velocidad, lo que puede aumentar en función del número de repositorios y el número de usuarios de la organización. Para más información, consulta [Límites de frecuencia para aplicaciones de GitHub](/es/apps/creating-github-apps/registering-a-github-app/rate-limits-for-github-apps).\n\nSi es posible, considera la posibilidad de utilizar solicitudes condicionales y suscribirte a webhooks en lugar de sondeos para mantenerte dentro de los límites de frecuencia. Para más información sobre las solicitudes condicionales, consulta [Procedimientos recomendados para usar la API de REST](/es/rest/using-the-rest-api/best-practices-for-using-the-rest-api). Para obtener más información sobre cómo usar webhooks con su GitHub App, consulte [Uso de webhooks con aplicaciones de GitHub](/es/apps/creating-github-apps/registering-a-github-app/using-webhooks-with-github-apps) y [Creación de una aplicación de GitHub que responda a eventos de webhook](/es/apps/creating-github-apps/writing-code-for-a-github-app/building-a-github-app-that-responds-to-webhook-events).\n\n#### Probar el código\n\nPruebe el nuevo GitHub App para asegurarse de que el código funciona según lo previsto.\n\n### 4. Da a conocer tu nuevo GitHub App\n\nSi quiere que otras cuentas puedan usar el nuevo GitHub App, asegúrese de que la aplicación es pública. Si quieres que tu aplicación GitHub App sea más fácil de encontrar, incluye tu aplicación en GitHub Marketplace.\nPara obtener más información, consulte [Acerca de GitHub Marketplace para aplicaciones](/es/apps/github-marketplace/github-marketplace-overview/about-github-marketplace-for-apps) y [Hacer que una aplicación de GitHub sea pública o privada](/es/apps/creating-github-apps/registering-a-github-app/making-a-github-app-public-or-private).\n\n### 5. Indica a los usuarios que migren\n\nUna vez que el nuevo GitHub App esté listo, indique a los usuarios del antiguo OAuth app que migre a su nuevo GitHub App. No puedes migrar automáticamente a los usuarios. Cada usuario debe instalar y/o autorizar su GitHub App por su cuenta.\n\nComo propietario de la aplicación, debe incluir llamadas a la acción para animar a los usuarios a instalar o autorizar el nuevo GitHub App y revocar la autorización para el antiguo OAuth app. También debes actualizar cualquier elemento de la interfaz de usuario o documentación.\n\n#### Pida a los usuarios que instalen su GitHub App\n\nSi desea que GitHub App realice solicitudes de API en nombre propio o acceda a los recursos de la organización o del repositorio, el usuario debe instalar GitHub App. Cuando un usuario instala una GitHub App en su cuenta u organización, elige los repositorios a los que puede acceder la aplicación y concede a la aplicación los permisos de organización y repositorio que solicitó.\n\nPara ayudar a los usuarios a instalar su GitHub App, puede añadir un vínculo a la página web de su aplicación en el que los usuarios puedan hacer clic para instalar la GitHub App. El formato de la dirección URL de instalación es `https://github.com/apps/YOUR_APP_NAME/installations/new`. Reemplaza `YOUR_APP_NAME` por el nombre en formato slug de tu GitHub App, que puedes encontrar en el campo \"Enlace público\" de la página de configuración de tu GitHub App.\n\nPara preseleccionar los repositorios a los que OAuth app tuviera acceso, es posible agregar `/permissions` y parámetros de consulta a la URL de instalación. Esto ayuda a los usuarios a conceder acceso a GitHub App a los repositorios a los que OAuth app ya tiene acceso. Los parámetros de consulta son los siguientes:\n\n* `suggested_target_id`: El identificador del usuario u organización que está instalando tu GitHub App. Este parámetro es obligatorio.\n* `repository_ids[]`: los identificadores de repositorio que se van a seleccionar para la instalación. Si se omite, se seleccionan todos los repositorios. La cantidad máxima de repositorios que se pueden pre-seleccionar es de 100. Para obtener una lista de repositorios a los que OAuth app tiene acceso, use los puntos de conexión [List repositories for the authenticated user](/es/rest/repos/repos#list-repositories-for-the-authenticated-user) y [List organization repositories](/es/rest/repos/repos#list-organization-repositories).\n\nPor ejemplo: `https://github.com/apps/YOUR_APP_NAME/installations/new/permissions?suggested_target_id=ID_OF_USER_OR_ORG&repository_ids[]=REPO_A_ID&repository_ids[]=REPO_B_ID`.\n\nPara obtener más información sobre cómo instalar GitHub Apps, consulte [Instalación de una aplicación de GitHub desde GitHub Marketplace en tu cuenta personal](/es/apps/using-github-apps/installing-a-github-app-from-github-marketplace-for-your-personal-account), [Instalación de una instancia de GitHub App desde GitHub Marketplace en las organizaciones](/es/apps/using-github-apps/installing-a-github-app-from-github-marketplace-for-your-organizations), [Instalación de una instancia de GitHub App desde un tercero](/es/apps/using-github-apps/installing-a-github-app-from-a-third-party) y [Instalación de su propia aplicación de GitHub](/es/apps/using-github-apps/installing-your-own-github-app).\n\n#### Indícale a los usuarios que autoricen la aplicación\n\nSi desea que GitHub App realice solicitudes de API en nombre de un usuario, el usuario debe autorizar la aplicación. Cuando un usuario autoriza una aplicación, le concede permiso para actuar en su nombre y concede los permisos de usuario que la aplicación ha solicitado. Si la aplicación está instalada en una cuenta de organización, cada usuario de esa organización debe autorizar la aplicación para que esta actúe en su nombre.\n\nPara solicitar a los usuarios que autoricen la aplicación, los llevarás a través del flujo de aplicación web o del flujo de dispositivo. Para más información, consulta [Generación de un token de acceso de usuario para una aplicación de GitHub](/es/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app).\n\nPara obtener más información sobre cómo autorizar GitHub Apps, vea [Autorización de aplicaciones GitHub](/es/apps/using-github-apps/authorizing-github-apps).\n\n#### Anime a sus usuarios a revocar OAuth app el acceso\n\nTambién debe invitar a sus usuarios a revocar el acceso al antiguo OAuth app. Esto le ayudará a dejar atrás por completo su OAuth app y a mantener seguros los datos de sus usuarios. Para más información, consulta [Revisión de las aplicaciones autorizadas de OAuth](/es/apps/oauth-apps/using-oauth-apps/reviewing-your-authorized-oauth-apps).\n\n#### Actualiza toda interfaz o documentación\n\nDebería actualizar cualquier interfaz de usuario o documentación relacionada con su aplicación para reflejar el cambio de OAuth app a GitHub App.\n\n### 6. Eliminar webhooks del antiguo OAuth app\n\nCuando un usuario instala su GitHub App y concede acceso a un repositorio, debería eliminar los webhooks de su antiguo OAuth app. Si el nuevo GitHub App y el anterior OAuth app responden a webhooks para el mismo evento, el usuario puede observar un comportamiento duplicado.\n\nPara quitar webhooks de repositorio, puedes escuchar el webhook `installation_repositories` con la acción `added`. Cuando GitHub App recibe ese evento, puede usar la API de REST para eliminar el webhook de esos repositorios para OAuth app. Para más información, consulta [Eventos y cargas de webhook](/es/webhooks/webhook-events-and-payloads?actionType=added#installation_repositories) y [Puntos de conexión de la API de REST para los webhooks de repositorio](/es/rest/repos/webhooks#delete-a-repository-webhook).\n\nDe manera similar, para quitar webhooks de organización, puedes escuchar el webhook `installation` con la acción `created`. Cuando GitHub App recibe ese evento para una organización, puede usar la API de REST para eliminar el webhook en esa organización y los repositorios correspondientes de OAuth app. Para más información, consulta [Eventos y cargas de webhook](/es/webhooks/webhook-events-and-payloads?actionType=created#installation), [Puntos de conexión de API REST para webhooks de organización](/es/rest/orgs/webhooks#delete-an-organization-webhook) y [Puntos de conexión de la API de REST para los webhooks de repositorio](/es/rest/repos/webhooks#delete-a-repository-webhook).\n\n### 7. Eliminar tu antiguo OAuth app\n\nUna vez que los usuarios hayan migrado al nuevo GitHub App, debe eliminar el antiguo OAuth app. Esto ayudará a evitar el abuso de las credenciales de OAuth app. Esta acción también revocará todas las OAuth appautorizaciones restantes. Para más información, consulta [Eliminación de una aplicación de OAuth](/es/apps/oauth-apps/maintaining-oauth-apps/deleting-an-oauth-app). Si su OAuth app está publicada en GitHub Marketplace, es posible que deba ponerse en contacto con Soporte de GitHub para quitar primero su aplicación del marketplace."}