Timestamp GIT Secure your prior art without exposing code

← All posts

2026-09-09

Автоматизируйте проставление временных меток в Git-коммитах с помощью GitHub App

Автоматизируйте проставление временных меток в Git-коммитах с помощью GitHub App
timestamp git blockchain proof

Автоматизируйте отметку времени Git-коммитов с помощью GitHub App

Если вы когда-либо пытались доказать, когда произошёл Git-коммит, вам знакома ручная рутина: создать криптографическую квитанцию для хеша коммита, сохранить файл .ots в надёжном месте, сопоставить эту квитанцию с нужным коммитом и повторить процесс для каждой ветки и репозитория, которые имеют значение. Пропустите один коммит — и в вашей записи о prior art появится пробел.

Timestamp GIT заменяет эту рутину на GitHub App, который автоматически проставляет отметки времени для Git-коммитов. Эта статья посвящена пути автоматизации, а не лежащим в основе криптографическим концепциям. Для получения базовых сведений о доказательстве существования и о том, почему это важно, см. Proof of Existence for Code: What It Is and Why It Matters.

Ручная рутина отметки времени, которую можно устранить

Ручная отметка времени обычно не срабатывает по скучным причинам, а не из-за безопасности.

  • Вы забываете отметить важную feature-ветку.
  • Квитанции оказываются разбросанными по ноутбукам, артефактам CI и случайным папкам.
  • Нет чёткого сопоставления между файлами квитанций и конкретными коммитами.
  • Разные члены команды используют разные процессы или не используют их вовсе.
  • Когда спор действительно возникает, вы обнаруживаете, что квитанция так и не была создана.

Сложный путь — работать с OpenTimestamps напрямую: установить инструменты, вручную отмечать хеши коммитов и самостоятельно хранить файлы квитанций. Технически этот подход работает, но это рутина, которая конкурирует с реальной работой по разработке.

Timestamp GIT снимает эту рутину с ваших плеч. Это управляемый SaaS и GitHub App, который полностью автоматизирует и скрывает протокол OpenTimestamps. После установки он следит за вашими репозиториями, собирает хеши коммитов и каждую ночь закрепляет их в блокчейне Bitcoin. Никаких CLI-инструментов, никакого ручного управления квитанциями, ничего не нужно помнить.

Одноразовая настройка: подключите репозиторий к GitHub App

Модель настройки намеренно скучна: установите один раз, подключите репозитории и продолжайте работать.

Стандартный режим с GitHub App:

  1. Установите GitHub App Timestamp GIT из GitHub Marketplace.
  2. Предоставьте доступ к репозиториям, которые хотите отслеживать.
  3. Выберите, где хранить доказательства: в отдельной ветке того же репозитория или в отдельном теневом репозитории.
  4. Готово.

После установки GitHub App автоматически начинает отслеживать новые коммиты через вебхуки. Никаких изменений в коде, никаких локальных файлов конфигурации и ничего не нужно устанавливать на машины разработчиков.

Разрешения в стандартном режиме:

  • Приложению нужен доступ только для чтения к исходному репозиторию, чтобы прочитать хеш HEAD-коммита.
  • Ему нужен доступ на чтение и запись к целевому репозиторию или ветке, где будут храниться файлы доказательств.
  • Оно никогда не читает и не хранит ваш фактический исходный код.

Enterprise ZK Mode для сред с нулевым разглашением:

Если ваша политика безопасности требует, чтобы исходный код никогда не покидал вашу инфраструктуру, вы можете использовать Enterprise ZK Mode. GitHub Action из 12 строк запускается на вашей стороне и отправляет в API Timestamp GIT только хеш коммита. В этом режиме Timestamp GIT вообще не нужен доступ на чтение к исходному репозиторию — только доступ на чтение и запись к целевому репозиторию, где хранятся доказательства.

Это различие важно для команд комплаенса: стандартный режим читает хеши коммитов из GitHub, а Enterprise ZK Mode отправляет только хеши из вашего GitHub Action.

Автоматизированный конвейер: от коммита к якорю в Bitcoin

После настройки конвейер работает без ручного вмешательства.

Каждую ночь рабочий процесс собирает ожидающие хеши коммитов за день и обрабатывает их пакетом:

  1. Хеши коммитов обнаруживаются GitHub App или отправляются вашим Enterprise ZK Action.
  2. Хеши находятся в очереди в памяти до ночного запуска.
  3. Cron-воркер в полночь группирует ожидающие хеши по репозиториям.
  4. Воркер создаёт файлы манифеста для каждого репозитория.
  5. Он строит дерево Меркла из дневного пакета.
  6. Он создаёт доказательства OpenTimestamps с использованием публичных OTS-календарей.
  7. Корень Меркла закрепляется в блоке Bitcoin.

Затем файлы манифеста и квитанции .ots отправляются обратно в вашу выделенную ветку timestamps или теневой репозиторий.

Одно важное замечание о времени: подтверждение в Bitcoin занимает несколько часов, обычно около трёх. Поскольку пакет запускается в полночь, а закрепление завершается позже, доказательства обычно появляются на следующий день. Эта задержка — не сбой, а сеть Bitcoin, выполняющая работу, которая делает отметку времени неизменяемой.

Вы можете проверить последний закреплённый статус с помощью REST API:

# Информация о последнем закреплённом блоке Bitcoin
curl -s https://timestampgit.dev/api/statusLast/acme/webapp

# Общее количество закоммиченных/отмеченных коммитов
curl -s https://timestampgit.dev/api/statusCount/acme/webapp

# Сводная информация, используемая бейджами Shields.io
curl -s https://timestampgit.dev/api/statusSummary/acme/webapp

Замените acme/webapp на вашего пользователя или организацию GitHub и имя репозитория.

Для публичного README можно встроить бейдж верификации. Страница Repository Connected предоставляет фрагмент Markdown после установки. Типичный бейдж выглядит так:

[![Timestamp GIT](https://timestampgit.dev/api/statusSummary/acme/webapp)](https://timestampgit.dev/status/acme/webapp)

Для приватных репозиториев URL-адреса статуса защищены зашифрованным HMAC. Только авторизованные пользователи могут просматривать статус этих репозиториев, и HMAC привязан к конкретному экземпляру сервера.

Мониторинг и обработка сбоев: поддержание здоровья ваших доказательств

Автоматизация не означает игнорирование системы. Это означает мониторинг результата вместо ручного выполнения задачи.

Страница статуса репозитория — ваша основная панель здоровья. Она показывает:

  • Долговечность доказательств
  • Самая ранняя дата закрепления
  • Ежедневную регулярность
  • Данные о блоках и транзакциях Bitcoin
  • Календарную тепловую карту отмеченных дней
  • Скачиваемый CSV-аудит
  • PDF-сертификат для каждой даты с отметкой времени

Для программного мониторинга публичные конечные точки API покрывают типичные случаи:

# Проверить последний закреплённый блок
curl -s https://timestampgit.dev/api/statusLast/acme/webapp

# Посчитать, сколько коммитов было отмечено
curl -s https://timestampgit.dev/api/statusCount/acme/webapp

# Получить сводную информацию для скриптов или Shields.io
curl -s https://timestampgit.dev/api/statusSummary/acme/webapp

Эти конечные точки можно подключить к вашему существующему мониторингу доступности, внутренней панели или проверке в CI. Например, запланированный скрипт может раз в день вызывать statusLast и оповещать, если ожидаемая дата закрепления отсутствует.

К типичным сценариям сбоев относятся:

  • Доступ к репозиторию отозван в GitHub.
  • GitHub App удалён.
  • Сетевые проблемы между GitHub и сервисом Timestamp GIT.

Эти сбои отображаются на странице статуса репозитория, а не проваливаются молча. Поскольку хеши коммитов группируются по датам, пропущенный ночной запуск может подхватить ожидающие хеши в следующем успешном пакете.

Для комплаенса и ведения записей периодически скачивайте CSV-аудит и PDF-сертификат. Храните их в своём юридическом архиве вместе с другой документацией по интеллектуальной собственности.

Лучшие практики автоматизированной отметки времени Git

Когда автоматизация внедрена, несколько привычек сделают вашу запись о prior art сильнее.

Отмечайте все репозитории, включая приватные. Многие команды отмечают только публичные проекты. Но патентные тролли и трудовые споры часто нацелены на внутренние системы и коммерческую тайну. Приватные репозитории важны не меньше, а то и больше.

Держите файлы доказательств вне основной ветки исходного кода. Используйте выделенную ветку timestamps или отдельный теневой репозиторий. Это сохраняет ветку main чистой и при этом даёт аудиторам единое место для поиска квитанций .ots и файлов манифеста.

Встройте бейдж верификации в README. Видимый бейдж сообщает потенциальным нарушителям, что история ваших коммитов закреплена в Bitcoin. Это не просто украшение — это недорогое средство сдерживания.

Используйте Enterprise ZK Mode там, где исходный код должен оставаться внутри. Если ваша команда комплаенса запрещает сторонний доступ на чтение к исходным репозиториям, подход с GitHub Action отправляет в API Timestamp GIT только хеши коммитов.

Для изолированных или self-hosted сред используйте Docker-образ. Timestamp GIT доступен как Docker-образ для полного контроля:

services:
  timestampgit:
    image: rue1401/timestampgit:prod
    ports:
      - "8080:8080"
    volumes:
      - ./data:/app/data
    restart: unless-stopped
  valkey:
    image: valkey/valkey:8
    restart: unless-stopped

Запустите его командой:

docker compose pull
docker compose up -d
docker compose logs -f timestampgit

Приложение станет доступно по адресу http://localhost:8080. При первом запуске мастер настройки проведёт вас через подключение вашего GitHub App и конфигурацию экземпляра. Демо-лицензия с ограниченным сроком действия доступна на странице Docker License.

Периодически скачивайте отчёты аудита. Не ждите юридического спора, чтобы начать собирать доказательства. Ежеквартальный или ежемесячный экспорт занимает несколько минут и даёт вам офлайн-архив.

FAQ

Как GitHub App автоматически отмечает мои коммиты?

После установки GitHub App Timestamp GIT отслеживает новые коммиты в вашем репозитории через вебхуки. Каждую ночь он собирает все хеши коммитов за день, создаёт дерево Меркла и закрепляет корень в блокчейне Bitcoin с помощью протокола OpenTimestamps. Затем доказательства автоматически отправляются обратно в ваш репозиторий. Никаких ручных шагов не требуется.

Имеет ли GitHub App доступ к моему исходному коду?

В стандартном режиме приложению требуется доступ только для чтения к исходному репозиторию, чтобы читать хеши коммитов, но оно никогда не читает и не хранит ваш фактический исходный код. Для максимальной конфиденциальности Enterprise ZK Mode использует GitHub Action, который отправляет в API Timestamp GIT только хеш коммита, поэтому ваш исходный код никогда не покидает вашу среду.

Можно ли использовать Timestamp GIT с приватными репозиториями?

Да. Планы Pro и Enterprise поддерживают приватные репозитории. Приложение может хранить доказательства в теневом репозитории или выделенной ветке, а доступ к конечным точкам статуса для приватных репозиториев защищён HMAC.

Как проверить, что мой коммит был отмечен?

Вы можете проверить это через публичную панель статуса, конечные точки API, такие как /api/statusLast, или скачав квитанцию .ots и запустив стандартные инструменты верификации OpenTimestamps против блокчейна Bitcoin. Верификация независима и не зависит от серверов Timestamp GIT.

Заключение: настройте и забудьте

Автоматизированная отметка времени Git меняет вопрос с «Вспомнил ли я отметить этот коммит?» на «Появляется ли ночной якорь в моей панели?»

Timestamp GIT полностью обрабатывает протокол OpenTimestamps за кулисами. Вы один раз устанавливаете GitHub App, подключаете репозитории и позволяете ночному конвейеру закреплять хеши коммитов в Bitcoin. Результат — неизменяемое, готовое к суду доказательство prior art без новой ручной привычки.

Начните с бесплатного плана для публичных репозиториев, перейдите на Pro Agency для приватных репозиториев или используйте Enterprise ZK, когда исходный код должен оставаться внутри вашей инфраструктуры. Self-hoster могут развернуть Docker-образ для полного контроля.

Установите GitHub App сегодня на Timestamp GIT и сделайте отметку времени тем, что ваши репозитории делают автоматически.

Похожие статьи

EU label: AI-generated content