Centro de Ayuda

Cómo configurar, aplicar y mantener tu orden de repositorios con control sobre permisos y datos

Empezar

1

Autorizar e instalar

Inicia sesión e instala la GitHub App en los repos que quieras gestionar

2

Filtrar y ordenar

Busca, filtra y arrastra repositorios a la zona que quieres mantener arriba

3

Guardar

Guarda el orden y las opciones para crear un snapshot restaurable

4

Aplicar

Sincroniza manualmente o conecta un scheduler externo para automatizarlo

Autorización e instalación de GitHub App

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.

Permisos solicitados

PermisoPara qué se usa
Autorización de usuarioIdentificar 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

Lo que GitPins hace

  • Leer el perfil y metadatos de los repositorios autorizados
  • Crear y borrar una tag ref temporal durante cada toque
  • Guardar tu orden, configuración, snapshots y logs de sync
  • Exportar o eliminar los datos de tu cuenta cuando lo solicitas

Lo que GitPins no hace

  • Borrar repositorios de GitHub
  • Crear commits, crear ramas o editar archivos en la estrategia actual
  • Leer secrets de GitHub Actions ni variables privadas del repositorio
  • Operar sobre repositorios fuera de la instalación autorizada

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

Ordenar repositorios

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.

Demo interactivo

Haz clic en un repositorio para añadirlo a la zona prioritaria. Usa la X para retirarlo.

Repos a mantener arriba(2/3)
my-awesome-project142
react-components89
Todos los repos

Qué ocurre al guardar

  1. 1.Tu orden se guarda en la base de datos
  2. 2.Se crea uno de los 20 snapshots restaurables más recientes
  3. 3.Guardar no modifica GitHub: pulsa Sincronizar ahora para aplicar el orden
  4. 4.La automatización es opcional y requiere un scheduler externo

Sincronización manual y programada

Guardar define el orden deseado. Sincronizar compara ese orden con GitHub y toca únicamente los repositorios necesarios para restaurarlo.

Sincronización manual

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.

Sincronización programada

GitPins expone POST /api/sync, pero no ejecuta cron por sí mismo. GitHub Actions, cron u otro scheduler debe realizar la llamada.

Qué significan las opciones de programación

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.

Ejemplo completo con GitHub Actions

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.

Cómo aplica GitPins el orden

GitPins utiliza una única estrategia: un toque con tag ref temporal. No existe una estrategia alternativa basada en ramas o commits.

Toque con ref temporal

Estrategia única
# Step 1
Resolver HEAD de la rama por defecto
# Step 2
Crear refs/tags/gitpins-touch-<id>
# Step 3
Borrar la tag temporal inmediatamente
  • Sin cambios de archivos
  • Sin commits ni ramas de GitPins
  • Una sola pasada, procesada en orden inverso
  • Solo toca el prefijo mínimo necesario

Historial y exportación de actividad

El dashboard combina snapshots de orden y logs de sincronización. Los snapshots restaurables se limitan a los 20 más recientes.

Qué se registra

  • Cambios manuales de orden
  • Sincronizaciones manuales y programadas
  • Sincronizaciones omitidas
  • Restauraciones de orden

Exportar actividad visible

La sección de actividad exporta las entradas que hayas cargado:

CSVEntradas cargadas para hojas de cálculo
JSONEntradas cargadas para análisis

La exportación completa de cuenta es una descarga JSON separada disponible en Settings.

Restaurar orden

Puedes restaurar cualquiera de los snapshots conservados y volver a aplicarlo con Sincronizar ahora.

Restaurar cambia la configuración guardada; no modifica GitHub hasta ejecutar una sincronización.

Privacidad y control de la cuenta

Desde Settings puedes descargar los datos almacenados o eliminar tu cuenta. Estas acciones afectan a GitPins, nunca borran repositorios de GitHub.

Exportación completa

Genera un JSON con perfil, configuración, snapshots, logs y auditoría disponible. El archivo se prepara como un trabajo temporal.

Secretos excluidos

Los tokens OAuth, refresh tokens y el sync secret nunca se incluyen en la exportación descargable.

Eliminar cuenta

Requiere reautenticación reciente y confirmación escrita. Borra los datos de usuario de GitPins, pero no repositorios ni código.

Solución de problemas

¿Tienes más preguntas?

Consulta el dashboard o abre un issue en GitHub