Automatice el sellado de tiempo del código con una GitHub App
Si alguna vez ha sellado manualmente el tiempo de su código, conoce la rutina: generar un hash, copiarlo en un lugar seguro, guardar un recibo y repetir el proceso en cada commit significativo. Es repetitivo, fácil de olvidar y frágil cuando más lo necesita. El sellado de tiempo automático del código con una GitHub App elimina por completo esa carga manual.
Timestamp GIT es una GitHub App gestionada que ancla automáticamente cada hash de commit de sus repositorios monitoreados en la blockchain de Bitcoin. No hay ninguna herramienta CLI que ejecutar, ningún recibo que archivar a mano y ningún trabajo por lotes nocturno que recordar. Instala la aplicación una sola vez y el sistema se encarga de la detección de commits, el anclaje criptográfico y la entrega de pruebas en segundo plano.
Este artículo explica la configuración inicial única, el pipeline nocturno automatizado, la supervisión y el manejo de fallos, y las mejores prácticas para construir una trayectoria de arte previo duradera.
Configuración inicial única: instale la GitHub App
Todo el proceso de configuración ocurre en la interfaz de GitHub.
- Instale la Timestamp GIT GitHub App desde el GitHub Marketplace.
- Seleccione los repositorios que desea monitorear. Los repositorios públicos son compatibles con el plan gratuito Open Source; los repositorios privados están disponibles en los planes Pro Agency y Enterprise ZK.
- Otorgue los permisos requeridos.
Los requisitos de permisos dependen del modo de implementación:
- Modo Estándar: La aplicación necesita acceso de solo lectura al repositorio de origen. GitHub no ofrece un permiso de “solo hash de commit”, por lo que se requiere acceso de lectura para que la aplicación pueda ver el hash del commit HEAD. La aplicación también necesita acceso de lectura y escritura al repositorio de destino donde se almacenarán las pruebas.
- Modo Enterprise ZK: La aplicación no necesita acceso de lectura al repositorio de origen en absoluto. Una GitHub Action en su infraestructura envía únicamente el hash del commit a la API de Timestamp GIT. Solo otorga acceso de lectura y escritura al repositorio de pruebas de destino.
No hay herramientas CLI que instalar ni archivos de configuración que mantener. Después de la instalación, la aplicación está lista.
Para entornos aislados o completamente autogestionados, Timestamp GIT también está disponible como imagen Docker. Si necesita control local, consulte el artículo dedicado sobre sellado de tiempo autogestionado con Docker. Para la mayoría de los equipos, la GitHub App alojada es la vía más rápida.
El pipeline automatizado: del commit al anclaje en Bitcoin
El núcleo de Timestamp GIT es un pipeline de automatización nocturno que no requiere ninguna intervención diaria por parte de los desarrolladores.
Qué ocurre después de cada commit
-
Detección de commits
En el Modo Estándar, la GitHub App recibe un webhook cada vez que se sube un nuevo commit a un repositorio monitoreado. En el Modo Enterprise ZK, su GitHub Action envía el hash del commit a la API. -
Cola de hashes
Los hashes de los commits se almacenan en un almacén clave-valor en memoria y esperan su procesamiento por lotes. -
Trabajador cron de medianoche
Cada noche, un trabajador agrupa todos los hashes pendientes, crea un archivo de manifiesto para cada repositorio, construye un árbol de Merkle de forma nativa y crea pruebas OpenTimestamps. La raíz de Merkle del lote diario se ancla en la blockchain de Bitcoin. -
Entrega de pruebas
El manifiesto y los archivos de recibo.otsse suben de vuelta a una rama dedicada de timestamps o a un repositorio espejo. La confirmación en Bitcoin normalmente tarda unas tres horas, por lo que los archivos de prueba aparecen unas horas después del anclaje nocturno.
El proceso es de conocimiento cero por arquitectura. Timestamp GIT solo ve el hash del commit —una huella unidireccional—, nunca su código fuente. En el Modo Estándar, la aplicación solo lee el hash del commit HEAD. En el Modo Enterprise ZK, el código fuente nunca sale de su entorno porque el hash del commit se envía desde su propio runner de GitHub Action.
Modo Enterprise ZK con una GitHub Action
Si necesita un aislamiento estricto del código fuente, el Modo Enterprise ZK es la opción más sólida. Una GitHub Action breve se ejecuta en su infraestructura y envía únicamente el hash del commit a la API de Timestamp GIT.
Un flujo de trabajo típico se ve así:
name: Push commit hash to Timestamp GIT
on:
push:
branches:
- main
jobs:
timestamp:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Send commit hash
run: |
curl -X POST "${{ secrets.TIMESTAMPGIT_SIGNED_URL }}" \
-H "Content-Type: application/json" \
-d "{\"commitId\":\"${{ github.sha }}\"}"
La URL firmada proviene del asistente de configuración de Enterprise y se almacena como un secreto de GitHub. La acción no tiene ningún paso de inspección del código fuente ni subidas de archivos.
Dos modos de implementación de un vistazo
| Modo | Acceso al código fuente | Almacenamiento de pruebas | Ideal para |
|---|---|---|---|
| GitHub App Estándar | Repositorio de origen de solo lectura | Rama dedicada o repositorio espejo | Automatización rápida y sin configuración |
| Enterprise ZK | Sin acceso al código fuente | Repositorio de destino que usted controla | Secretos comerciales, cumplimiento normativo, seguridad estricta |
En ambos modos, el anclaje subyacente en Bitcoin es idéntico: la raíz de Merkle diaria se incrusta en una transacción de Bitcoin mediante el protocolo OpenTimestamps. Una vez que la transacción se confirma en un bloque, el sello de tiempo no puede ser alterado por nadie, incluido Timestamp GIT.
Supervisión y manejo de fallos
La automatización solo es valiosa cuando puede confiar en que sigue funcionando. Timestamp GIT proporciona varias superficies de supervisión.
Panel de estado público
Cada repositorio tiene una página de estado que muestra:
- La fecha de anclaje más antigua
- La regularidad del anclaje diario
- Datos del bloque y la transacción de Bitcoin
- Un mapa de calor de calendario con los días sellados
- CSV de auditoría descargable y certificado PDF
Puede consultar el último bloque de Bitcoin anclado a través de la API de estado pública:
curl https://timestampgit.dev/api/statusLast/your-org/your-repo
Una respuesta de ejemplo se ve así:
{
"blockHeight": 862400,
"timestamp": "2026-09-25T00:37:00Z",
"status": "confirmed"
}
Para repositorios privados, las URL de estado incluyen un HMAC cifrado para que solo los usuarios autorizados puedan ver el estado del sellado de tiempo. El HMAC es específico de la instancia del servidor.
Qué ocurre cuando algo falla
Dado que el lote nocturno se ejecuta según una programación, un trabajo fallido no elimina silenciosamente su rastro de pruebas. El sistema reintenta el proceso de anclaje automáticamente. La página de estado le permite detectar lagunas en la regularidad diaria e investigar si un repositorio dejó de enviar nuevos hashes de commits.
Para fines de cumplimiento y mantenimiento de registros, puede descargar el libro de auditoría completo como CSV y un certificado PDF para una fecha específica:
GET /api/audit/{user}/{repo}— CSV de auditoría completoGET /api/report/{user}/{repo}/{date}— certificado PDF para un solo día
Verificación independiente
Cualquiera puede verificar un sello de tiempo sin confiar en el panel de Timestamp GIT. La página de verificación guía a través de la verificación de la cadena de Merkle de varios niveles localmente en el navegador. Para un repositorio público, el archivo de recibo .ots también puede verificarse contra la blockchain de Bitcoin utilizando las herramientas estándar de verificación de OpenTimestamps. Dado que la prueba está incrustada en Bitcoin, sigue siendo verificable incluso si el servicio de Timestamp GIT desaparece.
Mejores prácticas para el sellado de tiempo automatizado
El anclaje automatizado funciona mejor cuando se convierte en una parte predeterminada del ciclo de vida de su repositorio.
- Actívelo para todos los repositorios activos, no solo para los críticos. Una trayectoria de arte previo amplia es más sólida que una dispersa. El coste marginal de sellar cada commit es bajo con la automatización.
- Use el Modo Enterprise ZK para código propietario o secretos comerciales. Si desea cero acceso al código fuente por parte del proveedor de sellado de tiempo, envíe solo hashes de commits desde su propia GitHub Action.
- Descargue los CSV de auditoría regularmente y almacénelos por separado. Mantenga copias redundantes fuera de GitHub. Sus archivos
.otsya están en su repositorio, pero una copia adicional sin conexión es un seguro barato para auditorías legales. - Inserte insignias de verificación en su README. Las insignias públicas dan a colaboradores, clientes y competidores una señal clara de que su historial de commits está anclado. Enlazan al visor de verificación público y al informe PDF.
- Envíe certificados PDF a los clientes. Para agencias y freelancers, un certificado PDF diario puede adjuntarse a facturas o entregas de hitos para demostrar las fechas de finalización del trabajo.
- Considere el autogestionado con Docker para entornos aislados. Si no puede usar un SaaS alojado, la licencia autogestionada de Docker le ofrece la misma automatización en su propia infraestructura.
Preguntas frecuentes
¿Qué es exactamente el sellado de tiempo automático del código con una GitHub App?
El sellado de tiempo automático del código con una GitHub App significa que cada commit que realice en un repositorio monitoreado se ancla criptográficamente de forma automática a la blockchain de Bitcoin sin intervención manual. La aplicación detecta nuevos commits, los agrupa por lotes cada noche y crea recibos de prueba inmutables. No se requieren herramientas CLI ni pasos manuales.
¿Cómo garantiza Timestamp GIT que mi código fuente nunca quede expuesto?
Timestamp GIT utiliza una arquitectura de conocimiento cero. En el Modo Estándar, la aplicación solo lee el hash del commit —una huella unidireccional— de su repositorio. En el Modo Enterprise ZK, una GitHub Action en su infraestructura envía únicamente el hash del commit a la API, por lo que la aplicación nunca tiene acceso a su código fuente en absoluto.
¿Puedo usar Timestamp GIT con repositorios privados?
Sí. Timestamp GIT admite repositorios privados en los planes Pro Agency y Enterprise ZK. Para repositorios privados, las insignias de estado y las URL de verificación incluyen un HMAC cifrado para que solo los usuarios autorizados puedan ver el estado del sellado de tiempo.
¿Qué ocurre si el servicio de Timestamp GIT se cae? ¿Puedo seguir verificando mis sellos de tiempo?
Sus sellos de tiempo siguen siendo totalmente verificables incluso si Timestamp GIT desaparece. Las pruebas están incrustadas en la blockchain de Bitcoin mediante el protocolo OpenTimestamps, y puede verificarlas localmente con herramientas estándar. Los archivos de recibo .ots se almacenan en su repositorio, por lo que siempre conserva la evidencia.
Conclusión: configúrelo y olvídese
El sellado de tiempo manual es una carga que la automatización elimina por completo. Timestamp GIT convierte cada commit en una prueba de existencia anclada en Bitcoin sin CLI, sin scripts nocturnos y sin gestión manual de recibos. Instala la GitHub App una vez y el sistema se encarga del resto: detección de commits, construcción del árbol de Merkle, anclaje en Bitcoin y entrega de pruebas.
Si está listo para proteger su arte previo sin añadir otro proceso manual a su flujo de trabajo, instale Timestamp GIT desde el GitHub Marketplace. Los precios comienzan con un plan gratuito Open Source para repositorios públicos, Pro Agency a $49/mes para repositorios privados y Enterprise ZK a $199/mes para cero acceso al código fuente. También está disponible una licencia autogestionada con Docker para implementaciones aisladas o locales.
Publicaciones relacionadas
- La mejor GitHub App para sellar el tiempo de sus commits
- Sellado de tiempo con Bitcoin para desarrolladores: guía para principiantes
- Sellado de tiempo autogestionado con Docker: Timestamp GIT
- Cómo demostrar la autoría de software: guía para desarrolladores
- Cómo verificar el sello de tiempo de un commit de Git
- Selle automáticamente el tiempo de los commits de Git con una GitHub App