Cómo configurar, aplicar y mantener tu orden de repositorios con control sobre permisos y datos
Inicia sesión e instala la GitHub App en los repos que quieras gestionar
Busca, filtra y arrastra repositorios a la zona que quieres mantener arriba
Guarda el orden y las opciones para crear un snapshot restaurable
Sincroniza manualmente o conecta un scheduler externo para automatizarlo
GitPins combina la autorización de tu usuario, usada para identificarte y mostrar tus repositorios, con una instalación de GitHub App que realiza las operaciones de ordenado únicamente en los repositorios autorizados.
| Permiso | Para qué se usa |
|---|---|
| Autorización de usuario | Identificar tu cuenta, leer el email si está disponible y obtener la lista de repositorios que puedes ver |
| Metadata (read) | Leer nombre, descripción, visibilidad, lenguaje, estrellas y rama por defecto |
| Contents (write) | Resolver HEAD y crear o borrar exclusivamente las tags temporales usadas para ordenar |
Contents: write es un permiso con capacidad técnica de escritura. El código actual lo limita a crear y borrar tags temporales; por eso hablamos de lo que GitPins hace, no de una imposibilidad absoluta del permiso.
Puedes verificar y revocar permisos en cualquier momento desde github.com/settings/installations
El dashboard separa los repositorios que quieres mantener arriba del resto. Puedes buscar y filtrar por público/privado, lenguaje, propietario y estrellas antes de arrastrarlos.
Haz clic en un repositorio para añadirlo a la zona prioritaria. Usa la X para retirarlo.
Guardar define el orden deseado. Sincronizar compara ese orden con GitHub y toca únicamente los repositorios necesarios para restaurarlo.
El botón Sincronizar ahora llama a un endpoint autenticado y protegido con CSRF. Las ejecuciones demasiado próximas se omiten durante un cooldown de 10 minutos.
GitPins expone POST /api/sync, pero no ejecuta cron por sí mismo. GitHub Actions, cron u otro scheduler debe realizar la llamada.
La frecuencia real depende del cron externo. El valor guardado en Settings no modifica automáticamente un workflow que ya exista.
La hora preferida es una regla UTC: las llamadas programadas fuera de esa hora se omiten. El scheduler debe llamar dentro de la hora elegida.
Crea este workflow en un repositorio que controles. Define GITPINS_APP_URL como variable y GITPINS_SYNC_SECRET como secret del repositorio.
name: GitPins - Maintain order
on:
schedule:
- cron: '0 */6 * * *'
workflow_dispatch:
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Sync GitPins order
run: |
curl --fail --silent --show-error \
--request POST "$GITPINS_URL/api/sync" \
--header "X-GitPins-Sync-Secret: $SYNC_SECRET"
env:
GITPINS_URL: ${{ vars.GITPINS_APP_URL }}
SYNC_SECRET: ${{ secrets.GITPINS_SYNC_SECRET }}No escribas el sync secret en el YAML ni lo publiques. También puedes usar cualquier scheduler capaz de enviar esta misma petición POST.
GitPins utiliza una única estrategia: un toque con tag ref temporal. No existe una estrategia alternativa basada en ramas o commits.
El dashboard combina snapshots de orden y logs de sincronización. Los snapshots restaurables se limitan a los 20 más recientes.
La sección de actividad exporta las entradas que hayas cargado:
La exportación completa de cuenta es una descarga JSON separada disponible en Settings.
Puedes restaurar cualquiera de los snapshots conservados y volver a aplicarlo con Sincronizar ahora.
Desde Settings puedes descargar los datos almacenados o eliminar tu cuenta. Estas acciones afectan a GitPins, nunca borran repositorios de GitHub.
Genera un JSON con perfil, configuración, snapshots, logs y auditoría disponible. El archivo se prepara como un trabajo temporal.
Los tokens OAuth, refresh tokens y el sync secret nunca se incluyen en la exportación descargable.
Requiere reautenticación reciente y confirmación escrita. Borra los datos de usuario de GitPins, pero no repositorios ni código.