Configurar la GitHub App
PullPress se comunica con tu repositorio mediante una GitHub App: acotada, auditable y removible con un clic.
Una GitHub App es la forma que recomienda GitHub para dar a un servicio acceso limitado a un repositorio. A diferencia de un token de acceso personal, tiene su propia identidad (pullpress[bot]), sus permisos son fijos y visibles, y puedes limitarla exactamente a los repositorios que elijas.
Qué permisos pide
Durante la instalación, GitHub te muestra la lista completa de permisos. Es corta a propósito:
- Contents: lectura y escrituraLeer tus archivos de contenido y hacer commit de los cambios de los redactores en ramas.
- Pull requests: lectura y escrituraAbrir, actualizar y etiquetar las pull requests que envían los redactores.
- Metadata: lecturaInformación básica del repositorio (nombre, rama por defecto). Obligatorio para toda GitHub App.
- Organization members: lecturaSolo se usa para comprobar si quien conecta es propietario de tu organización de GitHub, que es lo que le permite retirar una instalación de un espacio de trabajo que no debería tenerla.
- Checks: lectura (opcional)Permite al panel mostrar si tu sitio se está construyendo o ya está en línea tras un cambio. Sin él, todo lo demás funciona igual.
- Workflows, Actions, ajustes, secretsNo se solicitan, de forma expresa. PullPress no puede modificar tu CI, los ajustes del repositorio, los webhooks ni los secrets.
Instalar en un solo repositorio
- En tu panel de PullPress, elige Conecta un sitio web (o Conectar sitio en la página Sites & GitHub). Se te envía a la pantalla de instalación de GitHub.
- Elige la cuenta u organización propietaria del repositorio y luego Only select repositories y selecciona el repositorio de tu sitio. Siempre puedes añadir más después.
- Revisa los permisos y confirma. GitHub te pide autorizar PullPress para tu cuenta de GitHub y te devuelve.
Con ese paso de autorización PullPress comprueba que tú tienes de verdad acceso a la instalación antes de vincularla a tu espacio de trabajo: pregunta a GitHub qué instalaciones de la App puede alcanzar tu cuenta de GitHub y solo acepta esas. Nadie puede conectar tus repositorios a su espacio adivinando un número de instalación, y una instalación que otro usuario de GitHub ya conectó a otro espacio se rechaza.
Tener acceso a una instalación no es tener acceso a todos sus repositorios, así que PullPress también pregunta a GitHub en qué repositorios puede hacer push tu cuenta. Solo esos se ofrecen al añadir un sitio, y la comprobación se repite en el servidor. Sigue siendo válida una semana; después, un clic en Actualizar mi acceso a repositorios la vuelve a comprobar con GitHub.
Una vez que existe un sitio, sigue funcionando mediante la App, aunque la persona que conectó GitHub deje después tu organización. Por eso, cada 180 días PullPress pide a un administrador del espacio que vuelva a confirmar la conexión: la página Sites muestra Volver a confirmar antes del… con dos semanas de antelación, los propietarios y administradores reciben un correo y Verificar con GitHub, junto a la instalación, lo resuelve en un clic. Es solo un recordatorio: editar y publicar nunca se bloquean.
De vuelta en PullPress, la pantalla de conexión confirma primero qué cuenta cubre la instalación y a cuántos repositorios llega, con un enlace directo para cambiar la instalación en GitHub si acabó en la cuenta o en los repositorios equivocados. Si cancelas el proceso de GitHub a medias, PullPress muestra una nota amable de que la instalación no se completó, con un enlace para reintentarlo, en lugar de fallar en silencio.
Los administradores de una organización también pueden instalar la App para un compañero. Esa persona abre entonces la pantalla de conexión (o la página Sites) y elige Verificar con GitHub (o Conectar una instalación existente): GitHub confirma su acceso y la instalación queda lista. Si tu cuenta de GitHub alcanza varias instalaciones, eliges la que debe usar este espacio; PullPress nunca las conecta todas a la vez. Las instalaciones conectadas antes de que existiera esta comprobación piden la misma verificación única antes de poder añadirles sitios nuevos.
Si un miembro de la organización solicita la App en lugar de instalarla, PullPress te indica que la solicitud espera a un propietario de la organización; una vez aprobada, usa Conectar una instalación existente.
Desconectar y tomar el control
Los propietarios de un espacio pueden Desconectar una instalación en la página Sites cuando ningún sitio activo la usa. En GitHub no cambia nada.


Si otro espacio de PullPress tiene una instalación en tu cuenta u organización de GitHub, un propietario de esa cuenta puede moverla a su propio espacio (como propietario de un espacio de PullPress; los administradores del espacio ven la opción pero necesitan que un propietario la confirme): GitHub confirma que esa persona es propietaria, los sitios del otro espacio en esa instalación se archivan (solo lectura) y sus propietarios reciben un correo. Tanto las desconexiones como los traspasos quedan registrados en la auditoría del espacio de trabajo.
Cómo una instalación se convierte en un sitio
Un repositorio conectado se convierte en un sitio en PullPress. El sitio lee su modelo de contenido del pullpress.config.yml del repositorio, y cada redactor que invitas queda invitado a ese sitio en concreto. Las agencias con muchos repositorios de clientes tienen un sitio por repositorio, todos visibles en el panel multisitio, cada uno con sus propios redactores y roles.
Notas de seguridad
- Rutas permitidas. Los cambios de los redactores solo se escriben en las carpetas que declara tu configuración: carpetas de colecciones y la carpeta de medios. Fuera de ellas, PullPress escribe solo dos archivos propios: su
pullpress.config.yml(cuando un administrador configura o edita la configuración) y, si lo usas, unllms.txten la raíz del repositorio. Los cambios de configuración y el mantenimiento automático de unllms.txtexistente en sitios con publicación directa se envían con commit directamente a tu rama por defecto; el botón manual “Actualizar llms.txt” en otros sitios pasa por revisión. Todo lo demás, incluido.github/, se rechaza. - Ningún token en el navegador. Los navegadores de los redactores solo hablan con PullPress. Las credenciales de GitHub son tokens de instalación de corta duración que existen en el servidor y nunca se envían al cliente. La autorización de GitHub que comprueba el acceso al conectar funciona con PKCE y se revoca en cuanto termina la comprobación; PullPress no guarda tokens de usuario de GitHub.
- Cada cambio tiene autor. Los commits y las pull requests los crea
pullpress[bot]y se atribuyen al redactor que los hizo, para que tu historial de Git siga teniendo sentido. Por defecto, el autor es el nombre del redactor con una dirección no-reply seudónima (id+name@users.noreply.…), así que las direcciones de correo nunca acaban en el historial de un repositorio público. Un administrador del sitio puede pasar a direcciones reales en Ajustes del sitio → Usar las direcciones de correo reales de los editores en el historial de Git. - Revocable con un clic. Desinstala la App desde tus ajustes de GitHub cuando quieras. El acceso termina al instante y tu contenido se queda exactamente donde está. PullPress también lo nota: una instalación desinstalada o suspendida aparece como insignia de estado en la lista de sitios y como aviso en el panel, y los administradores del espacio reciben un correo en pocos minutos. Nada se rompe en silencio.
- Las vistas previas de rama construyen contenido de los redactores. Los cambios que esperan revisión viven en su propia rama. Si tu proveedor de hosting genera una vista previa de cada rama (Netlify, Vercel, Cloudflare Pages…), esa vista previa ejecuta el build de tu sitio con contenido aún sin revisar. PullPress impide que los redactores añadan scripts o código MDX, y solo se pueden subir imágenes JPG/PNG/WebP reales. Aun así, no expongas secretos de producción a los builds de vista previa o de rama, y reserva los permisos de administrador (quien puede añadir código) para personas de confianza.
- Los permisos que faltan se nombran. Si alguna vez a la App le falta un permiso que necesita (por ejemplo, tras una actualización de permisos que aún no has aceptado), el error nombra exactamente el scope que falta en lugar de fallar de forma genérica.
Siguiente paso: describe tu contenido en pullpress.config.yml, o recorre toda la configuración en Primeros pasos.