> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub

> Trabaja con Devin directamente en tus repos

<div id="why-integrate-devin-with-github">
  ## ¿Por qué integrar Devin con GitHub?
</div>

Integrar Devin con tu organización de GitHub permite que Devin cree pull requests, responda a comentarios en PR y colabore directamente en tus repositorios. Esto permite que Devin actúe como un colaborador de pleno derecho en tu equipo de ingeniería.

Para comenzar, ve a [app.devin.ai](http://app.devin.ai) > **Settings** > **Integrations** > **GitHub**, haz clic en **Add Connection** y sigue las indicaciones. Podrás seleccionar a qué repositorios puede acceder Devin y revisar los permisos necesarios.

<Note>
  **¿Usas GitHub Enterprise Server o GitHub Enterprise Cloud con residencia de datos?** Consulta la [guía de integración de GitHub Enterprise Server](/es/enterprise/integrations/github-enterprise-server) para ver las instrucciones de configuración.
</Note>

<div id="setting-up-the-integration">
  ## Configuración de la integración
</div>

<Tip>Debes ser administrador de tu organización de GitHub para crear y administrar la integración de Devin. ¿Tienes problemas? Consulta nuestra sección de [Problemas comunes](/es/admin/common-issues#i-m-unable-to-connect-my-github-organization).</Tip>

1. En tu cuenta de Devin en [app.devin.ai](http://app.devin.ai), ve a **Settings** > **Integrations** > **GitHub** y haz clic en **Add Connection**.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/c6DxxPyY6b7QnGkw/images/integrations/Add-GitHub-Connection.png?fit=max&auto=format&n=c6DxxPyY6b7QnGkw&q=85&s=c7f5f670bcf2216e6883b99fbb267f49" alt="Devin" width="1264" height="1474" data-path="images/integrations/Add-GitHub-Connection.png" />
</Frame>

2. Si aún no has iniciado sesión en GitHub, se te pedirá que te autentiques.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/c6DxxPyY6b7QnGkw/images/integrations/GitHub-Authenticate.png?fit=max&auto=format&n=c6DxxPyY6b7QnGkw&q=85&s=22f091a1ffec12d41b28b7ac2e955a77" alt="Devin" width="1004" height="1380" data-path="images/integrations/GitHub-Authenticate.png" />
</Frame>

3. Selecciona la organización de GitHub que deseas conectar con Devin.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/c6DxxPyY6b7QnGkw/images/integrations/GitHub-Select-Organization.png?fit=max&auto=format&n=c6DxxPyY6b7QnGkw&q=85&s=84eb317b909b6a1a4ab70742563a1eec" alt="Devin" width="1296" height="726" data-path="images/integrations/GitHub-Select-Organization.png" />
</Frame>

4. Elige si quieres otorgar a Devin acceso a **All repositories** o **Select repositories** para controlar a qué repositorios puede acceder Devin.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/c6DxxPyY6b7QnGkw/images/integrations/GitHub-Grant-Repository-Permissions.png?fit=max&auto=format&n=c6DxxPyY6b7QnGkw&q=85&s=26c759c0d5fa426677ab3fa765a49952" alt="Devin" width="1004" height="652" data-path="images/integrations/GitHub-Grant-Repository-Permissions.png" />
</Frame>

5. Después de completar la autorización de GitHub, se te redirigirá a la configuración de Devin, donde puedes confirmar que la integración está activa.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/c6DxxPyY6b7QnGkw/images/integrations/GitHub-Connected.png?fit=max&auto=format&n=c6DxxPyY6b7QnGkw&q=85&s=0381c62ef505b76d57ec7924614e45b6" alt="Devin" width="1212" height="326" data-path="images/integrations/GitHub-Connected.png" />
</Frame>

<Tip>Recomendamos habilitar reglas de protección de ramas en la rama principal para asegurarte de que todas las comprobaciones requeridas se aprueben antes de que Devin pueda fusionar cambios.</Tip>

<div id="using-devin-with-the-github-integration">
  ## Uso de Devin con la integración de GitHub
</div>

<div id="for-core-and-teams-users">
  ### Para usuarios de Core y Teams
</div>

Una vez que la integración esté configurada, puedes mencionar repositorios con @ directamente en tus mensajes dentro de la aplicación web de Devin.

<div id="for-enterprise-users">
  ### Para usuarios Enterprise
</div>

Una vez que la integración esté configurada, puedes delegar repositorios a organizaciones específicas desde **Enterprise Settings** > **Repository Permissions**.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/Mjnq1XQhhDt7kgxn/images/enterprise/Enterprise-Add-Repositories.png?fit=max&auto=format&n=Mjnq1XQhhDt7kgxn&q=85&s=40569aced6bfea47b72b31a39865b89f" alt="Devin" width="2360" height="1322" data-path="images/enterprise/Enterprise-Add-Repositories.png" />
</Frame>

<Tip>
  Si estás trabajando con un repositorio por primera vez, te recomendamos completar la [configuración del entorno de desarrollo en el flujo de incorporación](/es/onboard-devin/environment) para garantizar que Devin tenga información precisa y actualizada sobre tu base de código. Devin responde automáticamente a los comentarios en PR (pull requests) siempre que la sesión no haya sido archivada.
</Tip>

<div id="managing-devins-permissions-in-github">
  ## Gestión de permisos de Devin en GitHub
</div>

Durante la configuración, puedes otorgar a Devin acceso a **todos los repositorios** de tu organización o limitar el acceso a **repositorios específicos**.

Puedes ajustar el acceso a los repositorios en cualquier momento desde la configuración de tu organización en GitHub:

1. Ve a **Settings** > **GitHub Apps** de tu organización de GitHub (p. ej., `https://github.com/organizations/<org_name>/settings/installations`)
2. Selecciona **Configure** para la integración de Devin.ai
3. En **Repository access**, elige otorgar acceso a todos los repositorios o selecciona repositorios específicos
4. Haz clic en **Save** para aplicar los cambios

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/c6DxxPyY6b7QnGkw/images/integrations/GitHub-Manage-Devin-Permissions.png?fit=max&auto=format&n=c6DxxPyY6b7QnGkw&q=85&s=f926780257bb9628e26d634f4a15c18c" alt="Devin" width="1984" height="1542" data-path="images/integrations/GitHub-Manage-Devin-Permissions.png" />
</Frame>

Devin requiere los siguientes permisos:

Acceso de **lectura** a:

| Permiso                          | Descripción                                                                                                                 |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `dependabot alerts`              | Permite que Devin resuelva alertas de Dependabot en tu nombre (es decir, actualizando versiones de dependencias)            |
| `actions`                        | Permite que Devin vea las acciones configuradas para un repositorio con el fin de entender si los cambios de Devin pasan CI |
| `deployments`                    | Permite que Devin vea qué versiones de un repositorio se han desplegado                                                     |
| `metadata`                       | Permite que Devin vea metadatos cruciales sobre un repositorio, como quién es el propietario                                |
| `packages`                       | Permite que Devin vea qué versiones de un repositorio se han publicado como paquete                                         |
| `pages`                          | Permite que Devin consulte páginas asociadas con un repositorio, p. ej., para ver documentación                             |
| `repository security advisories` | Permite que Devin vea avisos de seguridad relacionados con un repositorio para ayudar a corregir problemas de seguridad     |
| `members`                        | Permite que Devin vea los miembros de una organización                                                                      |
| `webhooks`                       | Permite que Devin vea los webhooks configurados para un repositorio, p. ej., linting y verificación de tipos                |

Acceso de **lectura** y **escritura** a:

| Permiso           | Descripción                                                                                                                                          |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `checks`          | Permite que Devin vea e informe resultados de comprobaciones para un repositorio con el fin de entender y comunicar si los cambios de Devin pasan CI |
| `commit statuses` | Permite que Devin vea y establezca estados de commits para indicar si un commit pasa CI                                                              |
| `contents`        | Permite que Devin contribuya a la base de código                                                                                                     |
| `discussions`     | Permite que Devin contribuya a las discusiones                                                                                                       |
| `issues`          | Permite que Devin abra nuevos issues                                                                                                                 |
| `pull requests`   | Permite que Devin cree nuevos pull requests                                                                                                          |
| `projects`        | Permite que Devin vea y administre proyectos asociados con un repositorio, p. ej., para recuperar información sobre una tarea                        |
| `workflows`       | Permite que Devin configure nuevos workflows, p. ej., para ayudar a configurar CI/CD                                                                 |

Estos permisos permiten que Devin trabaje en tus repositorios como un colaborador habitual, subiendo ramas, abriendo pull requests y participando en discusiones de PRs.

<div id="pull-request-templates">
  ## Plantillas de Pull Request
</div>

Cuando Devin crea un pull request, utiliza una plantilla de tu repositorio para estructurar la descripción del PR. Si proporcionas una plantilla, Devin sigue su formato al enviar PRs a GitHub.

<div id="devin-specific-template-recommended">
  ### Plantilla específica para Devin (recomendada)
</div>

Puedes proporcionar a Devin su propia plantilla sin modificar tu plantilla predeterminada para revisiones humanas añadiendo un archivo llamado `devin_pr_template.md` en una de las ubicaciones `PULL_REQUEST_TEMPLATE` compatibles que se indican a continuación. Esto es útil si quieres que Devin incluya contexto adicional, como una lista de verificación para revisores o un diagrama Mermaid de los archivos modificados.

<div id="template-search-order">
  ### Orden de búsqueda de plantillas
</div>

Devin busca plantillas en el siguiente orden y usa la primera coincidencia:

1. PULL\_REQUEST\_TEMPLATE/devin\_pr\_template.md
2. docs/PULL\_REQUEST\_TEMPLATE/devin\_pr\_template.md
3. .github/PULL\_REQUEST\_TEMPLATE/devin\_pr\_template.md
4. pull\_request\_template.md
5. docs/pull\_request\_template.md
6. .github/pull\_request\_template.md

Si no se encuentra ninguna plantilla, Devin usa su formato de descripción de PR predeterminado.

<Tip>Si quieres que Devin use tu archivo `pull_request_template.md` existente, cópialo (o crea un symlink) en una de las rutas `devin_pr_template.md` indicadas arriba.</Tip>

<Info>Para obtener más información sobre las plantillas de pull request de GitHub (ubicaciones admitidas, múltiples plantillas, parámetros de consulta, etc.), consulta la documentación de GitHub: <a href="https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/creating-a-pull-request-template-for-your-repository" target="_blank" rel="noopener noreferrer">Creating a pull request template for your repository</a>.</Info>

<div id="commit-signing">
  ### Firma de commits
</div>

Para firmar los commits de Devin con GPG, configura la clave en tu [environment](/es/onboard-devin/environment/blueprints) para que persista entre sesiones. Generar la clave en una terminal de sesión no funcionará: cada sesión de Devin se inicia a partir de una copia limpia de la imagen de la máquina, por lo que cualquier clave creada durante la sesión se descarta cuando esta termina.

<Warning>
  La firma con GPG mediante la configuración del entorno solo produce commits
  **Verified** cuando Devin es el *autor del commit*. GitHub verifica las firmas
  con respecto a la identidad del autor, pero en cualquier modo de **Commit authoring**
  en el que el autor sea el usuario que hizo la solicitud (p. ej., "Co-authored", "User only", "User as author, Devin as
  committer"), Devin sobrescribe `user.email` en cada sesión con el correo
  electrónico de cada usuario, lo que no coincidirá con una única clave GPG compartida.
  Configura el modo [Commit
  authoring](https://app.devin.ai/settings/profile) de tu organización en **"Devin only"** o
  **"Devin as author, user as committer"** antes de basarte en esta configuración.
</Warning>

Configura esto en la capa **de toda la organización** (o en la capa **Enterprise**, si lo necesitan todas tus organizaciones) para que cada repositorio tenga una configuración de firma de commits:

1. Crea (o elige) una cuenta de usuario de GitHub dedicada que será la propietaria tanto de la identidad del autor del commit como de las credenciales con las que Devin hará push; por ejemplo, `devin@company.com`. Usar una sola cuenta para ambas cosas simplifica la configuración de firma; usar dos divide entre ambas la configuración que se describe a continuación.
2. Genera una clave GPG localmente con el correo electrónico de esa cuenta como UID, siguiendo las [instrucciones de GitHub](https://docs.github.com/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key).
3. Sube la clave **pública** a la cuenta de GitHub cuyo correo electrónico verificado coincida con el UID de GPG, en [GitHub Settings > SSH and GPG keys](https://github.com/settings/keys). GitHub verifica las firmas con respecto a la identidad del *autor del commit*, no a la identidad que hace el push; la clave pública debe estar en la cuenta propietaria del correo electrónico de `user.email`. (Si es la misma cuenta dedicada con la que haces push, solo tienes que hacerlo una vez).
4. Exporta la clave **privada**, codifícala en base64 y agrégala (junto con los valores correspondientes de `GIT_USER_NAME` / `GIT_USER_EMAIL`) como secrets en [Settings > Secrets](https://app.devin.ai/settings/secrets).
5. En la [configuración de environment de toda la organización](https://app.devin.ai/settings/environment), importa la clave y habilita la firma al iniciar cada sesión. Consulta el [ejemplo de firma de commits con GPG](/es/onboard-devin/environment/templates#gpg-commit-signing), listo para copiar y pegar, para ver el YAML completo.

<Tip>
  El correo electrónico del committer (`user.email`) debe coincidir con un UID
  de la clave GPG, y ese mismo correo debe estar verificado en la cuenta de GitHub
  en la que subiste la clave pública. Si cualquiera de estos tres elementos no coincide,
  GitHub mostrará el commit como **Unverified** aunque la firma en sí sea válida.
</Tip>

<div id="security-considerations">
  ### Consideraciones de seguridad
</div>

* **Protección de ramas:** Recomendamos habilitar reglas de protección de ramas en tu rama principal para garantizar que se hayan superado todas las comprobaciones requeridas antes de que Devin pueda fusionar cambios.
* **Permisos a nivel de organización:** Devin usa los permisos concedidos a nivel de organización, no los permisos del usuario individual que ejecuta una sesión.
* **Acceso consistente:** Todos los usuarios con acceso tanto a las organizaciones de GitHub como de Devin comparten los mismos permisos de integración de Devin.
* **Creación de repositorios:** Devin no puede crear nuevos repositorios en tu cuenta de GitHub.

<div id="ip-allowlisting">
  ## Lista de IP permitidas
</div>

Si tu organización requiere una lista de IP permitidas para el acceso a GitHub, agrega las siguientes direcciones IP:

* 100.20.50.251
* 44.238.19.62
* 52.10.84.81
* 52.183.72.253
* 20.172.46.235
* 52.159.232.99
* 4.204.199.103
* 54.201.200.193
* 54.69.238.189
* 100.23.34.160

<Note>Estas direcciones IP pueden cambiar en futuras actualizaciones. Recomendamos monitorear nuestras notas de la versión para ver cualquier cambio.</Note>

<div id="troubleshooting-github-organization-connected-to-the-wrong-devin-organization">
  ## Solución de problemas: organización de GitHub conectada a la organización de Devin incorrecta
</div>

Si tu organización de GitHub ya está conectada a una organización de Devin a la que no tienes acceso, un Admin de la organización de GitHub puede eliminar la instalación existente y volver a instalarla en otra organización de Devin.

<Warning>Recomendamos confirmar con el propietario de la organización actual de Devin antes de eliminar la instalación.</Warning>

1. Ve a [github.com/settings/installations](https://github.com/settings/installations) y haz clic en **Configure** junto a **Devin.ai Integration**.

   Si es necesario, cambia al contexto correcto de la organización de GitHub usando el menú desplegable **Go to settings page** en la esquina superior derecha.

   <Frame>
     <img src="https://mintcdn.com/cognitionai-enterprise/Q55SWovKajVuWOnW/images/integrations/GitHub-Settings-Switch-Context.png?fit=max&auto=format&n=Q55SWovKajVuWOnW&q=85&s=2d3a5deeb2792ed3461c5e8f20261ac4" alt="Cambiar el contexto de Settings de GitHub" width="788" height="192" data-path="images/integrations/GitHub-Settings-Switch-Context.png" />
   </Frame>

2. En la página de instalación, desplázate hasta la sección **Danger zone** y haz clic en **Uninstall** para eliminar **Devin.ai Integration** de la organización de GitHub.

   <Frame>
     <img src="https://mintcdn.com/cognitionai-enterprise/Q55SWovKajVuWOnW/images/integrations/GitHub-Uninstall-App.png?fit=max&auto=format&n=Q55SWovKajVuWOnW&q=85&s=6ed985bca3524ea7a574a95752f7cea7" alt="Desinstalar Devin.ai Integration" width="1095" height="839" data-path="images/integrations/GitHub-Uninstall-App.png" />
   </Frame>

3. Vuelve a [app.devin.ai](https://app.devin.ai) y actualiza la página. Ahora puedes volver a instalar la integración de GitHub en tu organización de Devin.

<div id="github-integration-faqs">
  ## Preguntas frecuentes sobre la integración con GitHub
</div>

<AccordionGroup>
  <Accordion title="¿Puedo conectar mi cuenta personal de GitHub a la cuenta de Devin de mi organización?" icon="user">
    Sí, un usuario puede optar por conectar una organización de GitHub o una cuenta personal a la cuenta de Devin de su organización, pero recomendamos conectar la cuenta que tenga los permisos necesarios para que Devin acceda a los repositorios que necesita su equipo.
  </Accordion>

  <Accordion title="¿Cómo gestiona la aplicación de GitHub la autenticación de usuarios?" icon="shield-halved">
    Solo los usuarios que sean miembros de la organización que instaló la integración de GitHub pueden usarla en sus sesiones de Devin. Devin hereda el acceso a la integración de GitHub en función de la pertenencia del usuario a la organización.
  </Accordion>

  <Accordion title="¿Cómo gestiona y rota Devin las claves de cifrado?" icon="binary">
    Las claves de cifrado son gestionadas por AWS KMS y se rotan periódicamente.
  </Accordion>
</AccordionGroup>
