Автоматизируйте отметку времени 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:
- Установите GitHub App Timestamp GIT из GitHub Marketplace.
- Предоставьте доступ к репозиториям, которые хотите отслеживать.
- Выберите, где хранить доказательства: в отдельной ветке того же репозитория или в отдельном теневом репозитории.
- Готово.
После установки GitHub App автоматически начинает отслеживать новые коммиты через вебхуки. Никаких изменений в коде, никаких локальных файлов конфигурации и ничего не нужно устанавливать на машины разработчиков.
Разрешения в стандартном режиме:
- Приложению нужен доступ только для чтения к исходному репозиторию, чтобы прочитать хеш HEAD-коммита.
- Ему нужен доступ на чтение и запись к целевому репозиторию или ветке, где будут храниться файлы доказательств.
- Оно никогда не читает и не хранит ваш фактический исходный код.
Enterprise ZK Mode для сред с нулевым разглашением:
Если ваша политика безопасности требует, чтобы исходный код никогда не покидал вашу инфраструктуру, вы можете использовать Enterprise ZK Mode. GitHub Action из 12 строк запускается на вашей стороне и отправляет в API Timestamp GIT только хеш коммита. В этом режиме Timestamp GIT вообще не нужен доступ на чтение к исходному репозиторию — только доступ на чтение и запись к целевому репозиторию, где хранятся доказательства.
Это различие важно для команд комплаенса: стандартный режим читает хеши коммитов из GitHub, а Enterprise ZK Mode отправляет только хеши из вашего GitHub Action.
Автоматизированный конвейер: от коммита к якорю в Bitcoin
После настройки конвейер работает без ручного вмешательства.
Каждую ночь рабочий процесс собирает ожидающие хеши коммитов за день и обрабатывает их пакетом:
- Хеши коммитов обнаруживаются GitHub App или отправляются вашим Enterprise ZK Action.
- Хеши находятся в очереди в памяти до ночного запуска.
- Cron-воркер в полночь группирует ожидающие хеши по репозиториям.
- Воркер создаёт файлы манифеста для каждого репозитория.
- Он строит дерево Меркла из дневного пакета.
- Он создаёт доказательства OpenTimestamps с использованием публичных OTS-календарей.
- Корень Меркла закрепляется в блоке 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 после установки. Типичный бейдж выглядит так:
[](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 и сделайте отметку времени тем, что ваши репозитории делают автоматически.
Похожие статьи
- How to Prove Your Code Existed on a Specific Date (Without Revealing It)
- Protect Your Startup from Patent Trolls with Git Timestamping
- How Dev Shops Can Prove Work Delivery with Timestamp GIT