Timestamp GIT Secure your prior art without exposing code

← Todos los artículos

2026-08-31

Sella automáticamente cada commit de Git con una GitHub App

Sella automáticamente cada commit de Git con una GitHub App
timestamp git blockchain proof

Sella temporalmente cada commit de Git automáticamente con una GitHub App

Cada vez que haces un commit, Git ya genera un hash único que identifica el estado exacto de tu repositorio. Ese hash es una huella criptográficamente segura de tu trabajo en ese momento. Lo que no es, por sí mismo, es una prueba de cuándo existió ese trabajo. Convertir ese hash en evidencia inmutable y lista para un tribunal solía implicar un proceso manual: ejecutar comandos adicionales, vigilar la salida, almacenar archivos de recibo y repetir todo para cada commit.

La alternativa automatizada es más simple: instala una GitHub App una vez, selecciona tus repositorios y deja que cada commit futuro quede anclado a la blockchain de Bitcoin mientras duermes.

Timestamp GIT es un servicio gestionado construido en torno a esa idea. Automatiza por completo el protocolo OpenTimestamps para que nunca necesites tocar una CLI, construir una transacción de Bitcoin o gestionar archivos de prueba a mano. Este artículo cubre la configuración única, el pipeline de automatización nocturno, la monitorización, las mejores prácticas y las preguntas frecuentes.

Configuración única: instala la GitHub App de Timestamp GIT

Todo el producto está diseñado en torno a un único flujo de configuración. Después de eso, hacer commit del código es la única acción que necesitas realizar.

Modo estándar: GitHub App

  1. Instala la GitHub App de Timestamp GIT desde GitHub Marketplace.
  2. Otorga los permisos solicitados durante la instalación. En el modo estándar, la app requiere acceso de solo lectura al repositorio de origen porque los permisos de GitHub no ofrecen un ámbito limitado únicamente a los hashes de commit. Timestamp GIT nunca lee, copia ni almacena tu código fuente.
  3. Selecciona los repositorios que deseas monitorizar. Los repositorios públicos son compatibles con el plan gratuito Open Source; los repositorios privados requieren un plan de pago.
  4. Elige dónde deben residir los archivos de prueba. Puedes almacenarlos en una rama dedicada timestamps en el mismo repositorio, o en un repositorio de destino separado. Un repositorio sombra separado mantiene limpio el historial de tu código fuente principal.

Después de la instalación, la GitHub App monitoriza los repositorios seleccionados automáticamente. No hay herramientas CLI que instalar, no hay comandos de OpenTimestamps que aprender y no hay pasos manuales que ejecutar después de la configuración.

Modo Enterprise ZK: GitHub Action

Para organizaciones que desean el máximo aislamiento, Timestamp GIT ofrece un modo Enterprise ZK. En lugar de otorgar a la GitHub App acceso de lectura a tu repositorio de origen, una GitHub Action se ejecuta en tu propia infraestructura y envía únicamente el hash del commit a la API de Timestamp GIT.

La forma del workflow se ve así:

name: timestamp-git-zk

on:
  push:

jobs:
  timestamp:
    runs-on: ubuntu-latest
    steps:
      - name: Push commit hash to Timestamp GIT
        env:
          COMMIT_SHA: ${{ github.sha }}
          REPO: ${{ github.repository }}
        run: |
          curl -fsS -X POST \
            -H "Authorization: Bearer ${{ secrets.TIMESTAMP_GIT_HMAC }}" \
            -H "Content-Type: application/json" \
            -d "{\"repo\":\"$REPO\",\"hash\":\"$COMMIT_SHA\"}" \
            "${{ vars.TIMESTAMP_GIT_API_URL }}"

La URL exacta de la API, los identificadores del repositorio y el secreto HMAC se proporcionan durante el asistente de configuración de Enterprise. La parte importante es lo que el workflow no hace: nunca envía código fuente, archivos ni contenido del repositorio. Envía un hash de commit y nada más.

En este modo, Timestamp GIT no necesita ningún acceso de lectura a tu repositorio de origen.

El pipeline automatizado: del commit al anclaje en Bitcoin

Una vez que la GitHub App o la GitHub Action está en su lugar, el sellado temporal se convierte en un trabajo en segundo plano.

1. Detección de commits

En el modo estándar, la GitHub App recibe webhooks cuando llegan nuevos commits a tus repositorios monitorizados. En el modo Enterprise ZK, tu GitHub Action envía el hash del commit directamente a la API.

2. Cola de hashes

Los hashes de commit detectados entran en un almacén clave-valor en memoria donde esperan el procesamiento por lotes. Timestamp GIT no escanea tu código, no clona tu repositorio completo ni inspecciona el contenido de los archivos.

3. Worker cron nocturno

Cada noche, un worker agrupa todos los hashes pendientes por repositorio. Para cada repositorio, crea un archivo de manifiesto, construye un árbol de Merkle de forma nativa y crea pruebas de OpenTimestamps utilizando calendarios OTS públicos.

4. Anclaje en Bitcoin

La raíz de Merkle del lote diario se incrusta en una transacción de Bitcoin utilizando el protocolo OpenTimestamps. Una vez que esa transacción se confirma en un bloque de Bitcoin, el anclaje se vuelve inmutable. Ninguna entidad —incluida Timestamp GIT— puede alterarlo o falsificarlo.

La confirmación en Bitcoin normalmente tarda alrededor de tres horas. Eso significa que un commit realizado durante la jornada laboral suele estar anclado a la mañana siguiente.

5. Entrega de pruebas

Después de la confirmación, el manifiesto y los archivos de recibo .ots se envían de vuelta a la ubicación de prueba configurada: ya sea una rama dedicada de timestamps o un repositorio sombra. Los archivos de prueba son pequeños archivos de texto y binarios que demuestran que el hash de tu commit existía antes de que se minara el bloque de Bitcoin.

Puedes consultar el último bloque anclado de un repositorio público con una simple llamada a la API:

curl -s https://timestampgit.dev/api/statusLast/your-org/your-repo

La respuesta contiene la información del último bloque de Bitcoin anclado. Endpoints adicionales devuelven el recuento total de commits sellados, resúmenes de estado combinados y datos completos de la cadena de Merkle para un día específico.

Monitorización y gestión de fallos

La automatización solo es útil cuando puedes ver que está funcionando.

Panel de estado del repositorio

Cada repositorio conectado obtiene una página de estado pública o autenticada. El panel muestra:

  • Longevidad de la prueba: hasta dónde se remonta tu fecha de anclaje más antigua
  • Regularidad diaria: si los commits se están procesando por lotes de forma consistente
  • Datos de bloque y transacción de Bitcoin para cada anclaje
  • Un mapa de calor de calendario para una vista visual de la actividad

La página de estado te da una respuesta rápida a la pregunta: «¿Se anclaron los commits de ayer?»

Exportaciones de auditoría y cumplimiento

Timestamp GIT proporciona registros de auditoría descargables:

# Download a full audit ledger as CSV
curl -o audit.csv https://timestampgit.dev/api/audit/your-org/your-repo

También puedes descargar un certificado PDF para una fecha específica. Estas exportaciones son útiles para archivos de cumplimiento, revisiones legales o documentación de propiedad intelectual a nivel de junta directiva.

Gestión de commits perdidos

En operación normal, un commit que se pierde el lote nocturno —por ejemplo, porque la entrega de un webhook se retrasó— se recoge en la siguiente ejecución nocturna. El diseño orientado a lotes significa que los fallos temporales no requieren que vuelvas a ejecutar nada manualmente.

Privacidad de repositorios privados

Para repositorios privados, los endpoints de estado están protegidos con un HMAC cifrado. Solo los usuarios autorizados con la firma de URL correcta pueden ver el estado del repositorio. El HMAC es específico de la instancia del servidor, por lo que los datos de estado no se exponen al público.

Mejores prácticas para el sellado temporal automatizado

Una GitHub App puede automatizar la mecánica, pero algunas opciones de configuración hacen que la evidencia sea más sólida y más fácil de gestionar.

Monitoriza todos los repositorios activos

No monitorices solo las ramas de release. Las disputas de estado de la técnica a menudo dependen de un commit experimental temprano, una rama de trabajo en progreso o un prototipo rápido. Activa la monitorización en cada repositorio donde se escriba código significativo.

Usa un repositorio sombra dedicado

Si no quieres que los archivos de prueba abarroten tu repositorio principal, configura Timestamp GIT para enviar las pruebas a un repositorio separado. Esto mantiene limpio el historial del código fuente mientras sigue dando a abogados, auditores y equipos de cumplimiento un único lugar donde buscar los recibos de prueba.

Elige el modo Enterprise ZK para el máximo aislamiento

Si tu código es altamente sensible o tu política de seguridad prohíbe el acceso de lectura de terceros a los repositorios de origen, usa el modo Enterprise ZK. El enfoque de GitHub Action significa que tu código fuente nunca sale de tu entorno. Timestamp GIT solo recibe hashes de commit.

Archiva los CSV de auditoría regularmente

Los archivos .ots son la prueba criptográfica, pero los CSV de auditoría son el registro legible por humanos. Descárgalos según un calendario y almacénalos junto con tus otros documentos de cumplimiento. En una disputa, tener un libro de registro cronológico limpio ahorra tiempo.

Añade insignias de verificación a tu README

Los repositorios públicos pueden mostrar una insignia de verificación que enlaza a la página de estado de Timestamp GIT. La página de conexión del repositorio proporciona URLs de insignias y fragmentos de Markdown. Una insignia típica se ve así:

[![Timestamp GIT verification](https://timestampgit.dev/api/badgeLink/your-org/your-repo)](https://timestampgit.dev/status/your-org/your-repo)

Cualquiera que vea el repositorio puede hacer clic y verificar el estado actual del sellado temporal sin instalar nada.

Preguntas frecuentes

¿Cómo sella temporalmente la GitHub App mis commits automáticamente?

Una vez instalada, la GitHub App monitoriza tus repositorios seleccionados. Cada noche, recopila todos los nuevos hashes de commit, crea un árbol de Merkle, ancla la raíz en la blockchain de Bitcoin mediante OpenTimestamps y envía los archivos de prueba .ots de vuelta a tu repositorio. No se requieren pasos manuales.

¿Necesita la GitHub App acceso a mi código fuente?

En el modo estándar, la GitHub App requiere acceso de solo lectura al repositorio de origen para leer los hashes de commit, porque los permisos de GitHub exigen ese ámbito. Sin embargo, Timestamp GIT nunca lee, copia ni almacena tu código fuente —solo procesa el hash del commit. En el modo Enterprise ZK, una GitHub Action se ejecuta en tu infraestructura y envía únicamente el hash del commit a la API, por lo que la app no tiene ningún acceso a tu repositorio de origen.

¿Cuánto tarda un commit en sellarse temporalmente en Bitcoin?

Los commits se procesan por lotes cada noche. Después de procesar el lote, se transmite la transacción de Bitcoin. La confirmación en la blockchain de Bitcoin normalmente tarda alrededor de tres horas, después de lo cual los archivos de prueba se escriben en tu repositorio. Un commit realizado durante el día normalmente tendrá su prueba de sellado temporal disponible a la mañana siguiente.

¿Puedo verificar el sellado temporal sin depender de Timestamp GIT?

Sí. La prueba es un archivo .ots estándar de OpenTimestamps. Puedes descargarlo y verificarlo localmente usando cualquier herramienta de verificación de OpenTimestamps contra la blockchain de Bitcoin. Timestamp GIT también proporciona una página de verificación basada en web y certificados PDF por conveniencia.

Conclusión: configúralo y olvídate

Timestamp GIT convierte la protección criptográfica del estado de la técnica de una tarea manual en un proceso automático en segundo plano. Instala la GitHub App una vez, selecciona tus repositorios y cada commit futuro fluye a través del mismo pipeline: detección de hashes, procesamiento por lotes nocturno, construcción del árbol de Merkle, anclaje en Bitcoin y entrega de pruebas.

El modelo de seguridad es intencionadamente de conocimiento cero. Tu código fuente nunca se lee ni se almacena. El modo estándar solo procesa hashes de commit, y el modo Enterprise ZK mantiene incluso esos hashes bajo tu control hasta que los envías a la API.

Los precios cubren los casos comunes: Open Source es gratuito para repositorios públicos, Pro Agency cuesta $49/mes para repositorios privados, y Enterprise ZK cuesta $199/mes con soporte para GitHub Actions. Para entornos aislados o autogestionados, también está disponible una licencia Docker self-hosted.

Si todavía estás creando sellos temporales manualmente para commits individuales, el camino más rápido es instalar la GitHub App de Timestamp GIT o solicitar una licencia Docker self-hosted para el máximo control.

Publicaciones relacionadas

EU label: AI-generated content