Настройте автоматическую отметку времени для Git-коммитов за минуты
Настройте автоматическую простановку временных меток Git-коммитов за считанные минуты
Если вы когда-нибудь пытались доказать, когда был написан тот или иной фрагмент кода, вам знаком этот ручной танец: запускать команду простановки метки после каждого важного коммита, хранить квитанцию где-нибудь в надёжном месте, помнить, какие файлы покрыты, и надеяться, что вы не пропустили тот самый коммит, который позже окажется в центре спора. Это утомительно, чревато ошибками и практически невозможно поддерживать на протяжении реального жизненного цикла проекта.
Автоматическая простановка временных меток Git-коммитов полностью снимает это бремя. С правильным управляемым сервисом это становится одноразовой настройкой, занимающей минуты, — а не постоянной рутиной. Timestamp GIT предлагает именно это: GitHub App, который ежедневно привязывает хеши ваших коммитов к блокчейну Bitcoin, без необходимости работать с CLI или управлять файлами квитанций.
В этой статье рассматриваются настройка, автоматизированный конвейер, мониторинг и лучшие практики, чтобы вы могли настроить всё один раз и забыть об этом.
Рутинная задача, которую можно исключить
Традиционные рабочие процессы простановки временных меток загоняют разработчиков в цикл ручных шагов:
- Запускать инструмент простановки метки после каждого коммита (или рисковать пропустить важные)
- Отслеживать файлы квитанций
.otsна разных машинах и в разных репозиториях - Помнить, какие коммиты уже привязаны, а какие нет
- Повторять процесс при каждом пуше в новую ветку или репозиторий
- Вручную проверять квитанции, когда нужно доказать приоритет
Это хрупкая система. Люди забывают. Квитанции теряются. Сама идея доказательства «я написал этот код в эту дату» рушится, когда процесс зависит от памяти и дисциплины.
Можно запустить базовый протокол OpenTimestamps самостоятельно, но это означает написание скриптов вокруг CLI-команд, обработку квитанций и отслеживание подтверждений в блокчейне. Это сложный путь — и именно его устраняет Timestamp GIT.
Timestamp GIT автоматизирует каждый шаг: после установки GitHub App каждый коммит в отслеживаемом репозитории собирается, группируется и привязывается к Bitcoin каждую ночь. Вам не нужно запускать команды, управлять квитанциями или помнить о необходимости что-либо штамповать. Это автоматическая простановка временных меток Git-коммитов в самом прямом смысле.
Подробное описание самой установки см. в статье Установка GitHub App для автоматической простановки временных меток кода. Эта статья посвящена сквозной настройке и автоматизации, которая работает после неё.
Одноразовая настройка: подключите ваш репозиторий
Настройка занимает несколько минут. Вот порядок действий:
- Установите GitHub App Timestamp GIT из GitHub Marketplace.
- Выберите репозитории для мониторинга. Поддерживаются публичные и приватные репозитории в зависимости от вашего тарифного плана.
- Выберите модель доступа:
- Стандартный режим: GitHub App требуется доступ только на чтение к исходному репозиторию. Он читает только хеш HEAD-коммита — никогда содержимое файлов.
- Режим Enterprise ZK: доступа на чтение к исходному коду нет вообще. GitHub Action в вашей инфраструктуре отправляет в API Timestamp GIT только хеш коммита. Ваш исходный код никогда не покидает вашу среду.
- Подтвердите установку.
После этого ручных шагов больше нет. Система следит за репозиторием, автоматически обнаруживает новые коммиты и каждую ночь запускает конвейер простановки меток.
Если вы разворачиваете решение самостоятельно через Docker-образ, мастер настройки проведёт вас через подключение GitHub App и конфигурацию экземпляра. Для большинства команд самый быстрый путь — SaaS-версия GitHub App.
Автоматизированный конвейер: от коммита до привязки в Bitcoin
Вот что происходит после подключения репозитория:
Ночная пакетная обработка
Каждый хеш коммита сохраняется в очереди в памяти по мере поступления. Каждую ночь запускается обработчик и группирует все ожидающие хеши для каждого репозитория. Он создаёт файлы манифеста (.txt), нативно строит дерево Меркла и генерирует доказательства OpenTimestamps с использованием публичных календарей.
Корень Меркла дневного пакета затем привязывается к блоку Bitcoin через протокол OpenTimestamps. После подтверждения в блокчейне временная метка становится неизменяемой — ни одна сущность, включая Timestamp GIT, не может изменить или подделать её.
Доставка доказательств
После подтверждения привязки (обычно около 3 часов) Timestamp GIT отправляет манифест и файлы квитанций .ots обратно в ваш репозиторий в отдельную ветку timestamps или теневой репозиторий. Вам не нужно ничего забирать вручную; доказательство версионируется прямо рядом с вашим кодом.
Режим Enterprise ZK в 12 строках
Если вы не можете предоставить доступ на чтение к исходному коду, режим Enterprise ZK использует GitHub Action, который выполняется в вашей инфраструктуре. Он отправляет в API только хеш коммита. Вот минимальный рабочий пример:
name: Timestamp commit hash
on: [push]
jobs:
anchor:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: |
curl -X POST "https://timestampgit.dev/api/timestamp/${{ github.repository }}/${{ github.ref_name }}/${{ github.sha }}/${{ secrets.TIMESTAMPGIT_HMAC }}"
Это весь action целиком. Фактический шаблон предоставляется при настройке Enterprise ZK, но принцип прост: отправьте идентификатор коммита и подписанный HMAC в API, и больше ничего не покидает вашу среду.
REST API для статуса, верификации и аудита
Автоматизация распространяется и на отчётность. Публичные эндпоинты позволяют запрашивать состояние доказательства без входа в панель управления:
# Информация о последнем привязанном блоке Bitcoin
curl https://timestampgit.dev/api/statusLast/your-org/your-repo
# Общее количество закоммиченных/проштампованных коммитов
curl https://timestampgit.dev/api/statusCount/your-org/your-repo
# Сводная информация для бейджей Shields.io
curl https://timestampgit.dev/api/statusSummary/your-org/your-repo
# Скачать полный журнал аудита в формате CSV
curl -O https://timestampgit.dev/api/audit/your-org/your-repo
# Скачать PDF-сертификат за определённую дату
curl -O https://timestampgit.dev/api/report/your-org/your-repo/2026-08-19
Для приватных репозиториев эти URL-адреса содержат зашифрованный HMAC, специфичный для вашего экземпляра, поэтому доступ к статусу имеют только авторизованные пользователи. Всё это происходит автоматически — вмешательство разработчика не требуется.
Мониторинг и обработка сбоев
Когда конвейер запущен, вам нужна видимость статуса доказательств и способ обнаружения проблем.
Публичная панель статуса
Каждый репозиторий получает публичную панель по адресу https://timestampgit.dev/status/{user}/{repo}. На ней отображается:
- Срок действия доказательств и самая ранняя дата привязки
- Ежедневная регулярность коммитов и привязок
- Данные о блоках и транзакциях Bitcoin для каждой привязки
- Календарная тепловая карта активности простановки меток
Вы также можете скачать CSV-журнал аудита и PDF-сертификат за любую дату. Это полезно для комплаенса и офлайн-ведения записей.
Встраиваемые бейджи верификации
Timestamp GIT предоставляет фрагменты кода бейджей, которые можно вставить в README. Бейдж отображает статус верификации в реальном времени и ссылается на публичную страницу верификации, где любой может проверить цепочку Меркла. Страница выполняет все вычисления локально в браузере — верификация с нулевым разглашением.
Обработка задержек и пропущенных дней
Подтверждение в Bitcoin занимает время, обычно около 3 часов. Система обрабатывает эту задержку автоматически; ваше доказательство записывается после подтверждения привязки. Если вы коммитите после ночного дедлайна, хеш попадает в пакет следующего дня.
Если в какой-то день коммитов нет, временная метка за этот день не генерируется. Существующие доказательства остаются действительными; система просто пропускает пустой пакет.
Для приватных репозиториев URL-адреса, подписанные HMAC, защищают доступ к страницам статуса и верификации. Только люди с правильным HMAC могут видеть состояние доказательства.
Лучшие практики для надёжной простановки меток
Чтобы получить максимум от автоматической простановки временных меток Git-коммитов, следуйте этим рекомендациям:
- Коммитьте регулярно. Система привязывает все ожидающие хеши каждую ночь. Ежедневные коммиты означают ежедневные привязки, формируя непрерывную запись.
- Сохраняйте ветку доказательств или теневой репозиторий в целости. Не удаляйте файлы
.otsили веткуtimestamps. Это ваши доказательства. - Используйте режим Enterprise ZK, когда доступ к исходному коду ограничен. Если вы не можете предоставить доступ на чтение к исходному репозиторию, подход с GitHub Action сохраняет код локально, при этом привязывая хеши.
- Для изолированных сред или сред с повышенными требованиями безопасности рассмотрите самодостаточную Docker-лицензию. Вы можете запустить Timestamp GIT полностью на собственной инфраструктуре с помощью файла Docker Compose.
- Периодически скачивайте CSV-журналы аудита и PDF-сертификаты. Храните их в отдельном архивном месте для юридических целей или комплаенса.
- Следите за тепловой картой на панели. Пробел в тепловой карте говорит о том, что в этот день не было привязано ни одного коммита — либо потому, что коммитов не было, либо потому, что что-то пошло не так. Панель делает это очевидным.
FAQ
Как работает автоматическая простановка временных меток Git-коммитов?
Timestamp GIT использует GitHub App для автоматического обнаружения новых коммитов. Каждую ночь он собирает хеши коммитов, строит дерево Меркла и привязывает корень к блокчейну Bitcoin через OpenTimestamps. Квитанции доказательств (файлы .ots) отправляются обратно в ваш репозиторий, обеспечивая неизменяемое доказательство существования.
Попадает ли мой исходный код в Timestamp GIT?
Нет. В стандартном режиме GitHub App читает только хеши коммитов, а не содержимое файлов. В режиме Enterprise ZK GitHub Action в вашей инфраструктуре отправляет в API только хеши, поэтому ваш исходный код никогда не покидает вашу среду.
Что произойдёт, если я пропущу день без коммитов?
Если в определённый день коммитов не было, временная метка за этот день не генерируется. Система привязывает только хеши совершённых коммитов. Существующие доказательства остаются действительными, а будущие коммиты будут проштампованы автоматически.
Могу ли я проверить временные метки, не полагаясь на серверы Timestamp GIT?
Да. Файлы квитанций .ots можно проверить независимо с помощью стандартных инструментов OpenTimestamps по блокчейну Bitcoin. Timestamp GIT также предоставляет страницу верификации в браузере, которая выполняет все вычисления локально.
Настройте и забудьте
Автоматическая простановка временных меток Git-коммитов превращает утомительную и подверженную ошибкам рутину в фоновый процесс. Вы один раз устанавливаете GitHub App, подключаете репозитории, и каждый коммит привязывается к Bitcoin каждую ночь — без ручных команд, без управления квитанциями, без необходимости что-либо помнить.
Timestamp GIT — это управляемый сервис, который делает это возможным. Он скрывает сложность OpenTimestamps за чистым GitHub App, доставляет доказательства прямо в ваш репозиторий и предоставляет панели, бейджи и API для верификации. Готовы начать? Установите GitHub App, подключите репозиторий, и пусть начнётся ночная привязка.