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

# Integración con la GitHub App

> Qué observa la GitHub App de Driftless en tus PRs y pushes, y cómo evita que el contexto quede stale.

La GitHub App es lo que le permite a Driftless mirar el trabajo mientras pasa. Una vez instalada en tus repositorios, lee los pull requests y pushes que van pasando, muestra lo que el equipo ya registró sobre los archivos que tocaste, y marca un topic como drifted en el momento en que sus archivos cambian.

<Note>
  La GitHub App es una **superficie distinta** de una Connection GitHub del Broker. Esta App (`type: github`) es una superficie de observación: mira PRs y pushes para impulsar el drift y alimentar al Auditor, y no expone `invoke`. Una Connection GitHub del Broker (`type: nango:github`) para escrituras como crear un issue **no está shipped**. Ver [Integraciones y Connections](/es/integrations/overview#disponibilidad-por-proveedor).
</Note>

## Instalación

Instálala desde el dashboard:

<Steps>
  <Step title="Abre la configuración de GitHub Integration">
    Ve a **Settings > GitHub Integration** en el dashboard.
  </Step>

  <Step title="Empieza la instalación">
    Haz clic en **Install on GitHub**. Te va a redirigir al flujo de instalación de apps de GitHub.
  </Step>

  <Step title="Selecciona los repositorios">
    Elige la cuenta u organización, y después selecciona repositorios específicos. Puedes ampliar el acceso más tarde desde la misma página de settings.
  </Step>

  <Step title="Vuelve al dashboard">
    GitHub te devuelve de vuelta. Driftless vincula la instalación a tu workspace automáticamente, haciendo match del nombre de la org o de los repos existentes.
  </Step>
</Steps>

## Qué hace la app

### Observación de PRs

En los eventos `pull_request.opened`, `synchronize`, `reopened` y `ready_for_review`:

1. Trae la lista de archivos cambiados vía la GitHub API
2. Hace match de cada archivo contra todos los patrones de topics del workspace usando intersección de globs
3. **Registra** cada match PR↔topic (alimenta la actividad de PRs del dashboard) y **encola al Auditor**

El único comentario que Driftless publica es el del **Auditor**, y solo cuando tiene un hallazgo. Cuando lo tiene, el contexto registrado de los topics afectados (gotchas, decisiones, invariantes, flags de stale) viaja junto con él. Un PR limpio, o un workspace sin el Auditor configurado (sin key de modelo), no recibe comentario. Ver [Comentarios de PR](/es/concepts/pr-bot).

El comentario **informa; nunca bloquea**. Los hallazgos aterrizan como propuestas que un humano aprueba. Se actualiza en el lugar con cada commit nuevo, nunca se vuelve a publicar.

### Staleness por push

En los eventos `push` a ramas rastreadas (la rama por defecto más cualquier rama personalizada):

1. Hace match de los archivos cambiados contra los topics usando intersección de patrones glob
2. Marca los topics que matchean como **stale** con una razón (por ejemplo, "3 files changed in commit abc1234")

Agrega ramas rastreadas personalizadas:

```bash theme={"theme":"github-light"}
driftless branches add staging
```

### Formato del comentario de PR

```text theme={"theme":"github-light"}
<!-- driftless-auditor -->
## 🔎 Driftless Auditor

Este cambio puede afectar 1 cosa que el equipo registró. En cola para revisión.
Esto son propuestas; un humano las aprueba.

- `auth-boundaries` (necesita un humano): la nueva ruta se salta el guard del workspace

### Lo que el equipo ya sabe

#### `auth-boundaries`: auth con scope de workspace
**Gotchas**
- Todos los endpoints requieren auth; no agregues @Public() sin revisión
```

El marcador HTML (`<!-- driftless-auditor -->`) le permite a Driftless encontrar y actualizar el comentario en los pushes siguientes.

## Permisos

| Permiso           | Nivel               | Razón                                           |
| ----------------- | ------------------- | ----------------------------------------------- |
| **Contents**      | Lectura             | Traer los archivos cambiados en PRs y pushes    |
| **Pull requests** | Lectura y escritura | Publicar y actualizar el comentario del Auditor |
| **Issues**        | Lectura y escritura | Los comentarios de PR usan la Issues API        |
| **Metadata**      | Lectura             | Requerido por GitHub para todas las apps        |

La app nunca clona tu repositorio y nunca lee secrets ni archivos de entorno.

## Desactivación

Quita la integración desde **Settings > GitHub Integration**, o desinstala la app directamente en GitHub. El webhook `installation/deleted` desactiva la integración en tu workspace automáticamente.

<Note>
  El CLI funciona sin la GitHub App. Los comentarios de PR del Auditor y el marcado de stale por push requieren que la app esté instalada.
</Note>
