Установите GitHub App для автоматического проставления временных меток на ваши коммиты
Вы уже автоматизируете сборку, тесты, линтинг и развертывание. Так почему же вы до сих пор вручную проставляете временные метки на коммиты, когда нужно доказать приоритет? Сложный путь — запускать инструменты протокола для каждого коммита и самостоятельно отслеживать файлы доказательств. Timestamp GIT заменяет это управляемым GitHub App, который автоматически проставляет временные метки на каждый коммит и привязывает их к блокчейну Bitcoin.
После настройки рабочий процесс намеренно скучен: установите GitHub App один раз, выберите репозитории для мониторинга, и ночной конвейер будет создавать .ots-квитанции с доказательствами. Не нужно устанавливать CLI на машины разработчиков, не нужно запоминать ручные команды перед релизом, и нет хрупкого локального архива временных меток.
В этой статье рассматриваются одноразовая настройка, что происходит между коммитом и привязкой к Bitcoin, как отслеживать доказательства и практики, которые сохраняют ваши доказательства пригодными для суда.
Одноразовая настройка: подключение GitHub App
Автоматизация начинается с одной установки. После этого GitHub App для проставления временных меток на коммиты выполняет всю повторяющуюся работу за вас.
1. Установите GitHub App Timestamp GIT
Установите приложение на свой личный аккаунт или организацию из панели управления Timestamp GIT. Во время установки вы предоставляете доступ к репозиториям так же, как и для любого другого GitHub App.
В стандартном режиме приложению требуется:
- Доступ на чтение к исходному репозиторию. GitHub не предлагает разрешение только на хеши коммитов, поэтому приложению нужен как минимум доступ только для чтения, чтобы обнаруживать хеши коммитов.
- Доступ на запись к целевому репозиторию или ветке. Файлы доказательств должны где-то храниться. Это может быть выделенная ветка
timestampsв исходном репозитории или отдельный теневой репозиторий.
Даже при наличии доступа на чтение приложение считывает только хеш HEAD-коммита отслеживаемых репозиториев. Оно не читает исходные файлы, диффы, issues или содержимое pull request’ов.
2. Выберите репозитории для мониторинга
После установки выберите репозитории, которые должны получать автоматическое проставление временных меток. Публичные репозитории доступны на бесплатном тарифе. Приватные репозитории требуют платного тарифа Pro или Enterprise, в зависимости от ваших требований к безопасности и соответствию нормам.
Никаких изменений в коде приложения не требуется. Вы ничего не устанавливаете на машины разработчиков, и вашей команде не нужно менять свой рабочий процесс коммитов.
3. Выберите способ доставки доказательств
По умолчанию приложение создает выделенную Git-ветку или теневой репозиторий для артефактов доказательств. Это отделяет доказательства от основной истории исходного кода и позволяет избежать загрязнения pull request’ов файлами .ots.
Режим Enterprise ZK: нулевой доступ к коду
Если ваш код является проприетарным, регулируемым или изолированным от сети, режим Enterprise ZK — более строгий вариант. GitHub Action из 12 строк работает на вашей инфраструктуре и отправляет в API Timestamp GIT только хеш коммита.
В этом режиме приложению Timestamp GIT вообще не нужен доступ на чтение к вашему исходному репозиторию. Вы устанавливаете GitHub Action, и за пределы вашей среды уходят только хеши коммитов. Ваш исходный код — никогда.
Опционально: режим самостоятельного хостинга на Docker
Для максимального контроля Timestamp GIT также доступен в виде Docker-образа. Это полезно для изолированных от сети сред или организаций, которые должны держать всю инфраструктуру локально.
Минимальная конфигурация Compose выглядит так:
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 и конфигурацию экземпляра.
Автоматизированный конвейер: от коммита до привязки к Bitcoin
После установки GitHub App процесс проставления временных меток работает самостоятельно.
Шаг 1: Обнаружение коммитов
В стандартном режиме GitHub App обнаруживает новые коммиты через вебхуки. В режиме Enterprise ZK ваш GitHub Action отправляет хеши коммитов в API в рамках CI/CD.
В любом случае единственные данные, попадающие в конвейер Timestamp GIT, — это хеш коммита.
Шаг 2: Ночная пакетная обработка и привязка к Bitcoin
Хеши коммитов хранятся в хранилище «ключ-значение» в памяти для пакетной обработки. Каждую ночь cron-воркер:
- Группирует все ожидающие хеши коммитов.
- Создает файл манифеста для каждого репозитория.
- Строит дерево Меркла из дневного пакета.
- Создает доказательства OpenTimestamps с использованием публичных OTS-календарей.
- Привязывает корень Меркла к блокчейну Bitcoin.
Корень Меркла за день — это то, что встраивается в Bitcoin. Как только эта транзакция подтверждается, хеш навсегда замораживается в конкретном блоке Bitcoin.
Шаг 3: Доставка доказательств
После подтверждения транзакции Bitcoin Timestamp GIT отправляет манифест и файлы .ots-квитанций обратно в выделенную ветку timestamps или теневой репозиторий.
Подтверждение Bitcoin обычно занимает около трех часов после отправки ночного пакета. Это означает, что для коммита, сделанного в течение дня, файл доказательства, как правило, будет доступен к следующему дню.
Шаг 4: Статус и верификация
Вы можете просматривать историю привязок на панели статуса репозитория. Публичная панель показывает:
- Долговечность доказательств
- Самая ранняя дата привязки
- Регулярность ежедневных привязок
- Данные о блоке и транзакции Bitcoin
- Календарную тепловую карту
- Скачиваемый аудиторский CSV и PDF-сертификат
Для программного доступа доступны публичные эндпоинты статуса:
# Информация о последнем привязанном блоке Bitcoin
curl -s https://timestampgit.dev/api/statusLast/acme/payments-api
# Общее количество закоммиченных и отмеченных коммитов
curl -s https://timestampgit.dev/api/statusCount/acme/payments-api
# Сводная информация для бейджей Shields.io
curl -s https://timestampgit.dev/api/statusSummary/acme/payments-api
Продукт также предоставляет аутентифицированный эндпоинт для бейджей, чтобы вы могли генерировать бейджи для README одним запросом. Для приватных репозиториев URL-адреса бейджей включают зашифрованный HMAC, чтобы только авторизованные пользователи могли видеть статус.
Мониторинг и обработка сбоев
Автоматизация не означает игнорирование системы. Вы должны отслеживать регулярность привязок так же, как отслеживаете состояние CI.
Панель статуса — самое быстрое место для обнаружения пропущенного дня. Если ночной пакет не создал доказательство, пропущенная дата будет видна как пробел в календарной тепловой карте и в представлении ежедневной регулярности.
Для программных проверок те же эндпоинты выше могут быть интегрированы в ваш внутренний мониторинг:
- Используйте
/api/statusLast/{user}/{repo}для подтверждения самой последней привязки к Bitcoin. - Используйте
/api/statusCount/{user}/{repo}для сравнения количества отмеченных коммитов с ожидаемым количеством коммитов. - Используйте
/api/audit/{user}/{repo}для скачивания полного аудиторского журнала в формате CSV.
Пример:
# Скачать полный аудиторский журнал
curl -OJ https://timestampgit.dev/api/audit/acme/payments-api
# Скачать PDF-сертификат за конкретную дату
curl -OJ https://timestampgit.dev/api/report/acme/payments-api/2026-09-13
Поскольку система пакетирует хеши в полночь, а подтверждение Bitcoin занимает около трех часов, не считайте только что отправленный коммит полностью отмеченным временной меткой до тех пор, пока файл доказательства не появится в ветке timestamps.
Наконец, любой может независимо проверить .ots-файл по блокчейну Bitcoin. Доказательство основано на стандартных квитанциях OpenTimestamps и данных блоков Bitcoin, поэтому верификация не зависит от доступности Timestamp GIT.
Лучшие практики автоматического проставления временных меток
1. Включите его на всех критически важных репозиториях
Проставление временных меток только на публичных репозиториях оставляет приватную внутреннюю работу незащищенной. Патентные тролли и трудовые споры часто касаются проприетарных систем, которые никогда не покидают вашу инфраструктуру. Используйте тарифы для приватных репозиториев или режим Enterprise ZK для таких случаев.
2. Используйте режим Enterprise ZK для коммерческой тайны
Если репозиторий содержит коммерческую тайну или регулируемый код, не предоставляйте никакому стороннему приложению доступ на чтение к нему. Используйте GitHub Action, чтобы за пределы вашей среды уходили только хеши коммитов.
3. Защитите ветку timestamps
.ots-квитанции и файлы манифестов — это ваши доказательства. Относитесь к выделенной ветке timestamps или теневому репозиторию как к неизменяемому хранилищу доказательств. Ограничьте доступ на запись приложению и обязательным администраторам.
4. Регулярно архивируйте аудиторские записи
Скачивайте аудиторские CSV и PDF-сертификаты по расписанию, например ежеквартально или перед крупными релизами. Храните копии в вашем архиве комплаенса или юридическом архиве. Доказательство в блокчейне существует независимо, но наличие организованного аудиторского следа значительно упрощает юридическую проверку.
5. Добавьте бейдж верификации в README
Публичные бейджи верификации — простой способ показать, что в репозитории включено автоматическое проставление временных меток. Используйте ссылку на бейдж из панели управления или аутентифицированного API, чтобы встроить бейдж Shields.io в ваш README.
FAQ
Читает ли GitHub App мой исходный код?
Нет. В стандартном режиме приложение считывает только хеш HEAD-коммита. В режиме Enterprise ZK GitHub Action на вашей стороне отправляет в API только хеш коммита, поэтому приложение никогда не имеет доступа к вашему репозиторию.
Сколько времени занимает проставление временной метки на коммит?
Коммиты собираются в течение дня и привязываются к Bitcoin в ночном пакете. После отправки пакета подтверждение Bitcoin обычно занимает около 3 часов. Вы получаете .ots-файл доказательства после подтверждения.
Могу ли я проверить временную метку без использования Timestamp GIT?
Да. Доказательства представляют собой стандартные .ots-файлы OpenTimestamps. Любой может скачать файл и проверить его локально по блокчейну Bitcoin с помощью инструментов с открытым исходным кодом. Timestamp GIT также предоставляет веб-верификатор и PDF-сертификаты.
Доступен ли самостоятельный хостинг?
Да. Timestamp GIT предлагает Docker-образ для самостоятельного хостинга, подходящий для изолированных от сети или строго регулируемых сред. Демонстрационная лицензия с ограниченным сроком действия предоставляется по запросу.
Заключение: настройте и забудьте
Ручное проставление временных меток ненадежно, потому что зависит от того, что кто-то не забудет это сделать. Конвейер на основе GitHub App устраняет этот режим отказа.
С Timestamp GIT вы устанавливаете один раз, выбираете репозитории и позволяете ночному воркеру привязывать хеши коммитов к Bitcoin. Ваша команда продолжает писать код как обычно. Доказательства накапливаются автоматически в виде .ots-файлов, аудиторских отчетов и бейджей статуса.
Установите GitHub App Timestamp GIT сегодня или начните с бесплатного тарифа для публичных репозиториев. Тарифы Pro и Enterprise доступны для приватных репозиториев и более строгих развертываний с нулевым разглашением.
Похожие статьи
- Как стартапы могут защитить свою интеллектуальную собственность в ПО без патентов
- Бесплатное open-source проставление временных меток Git с Timestamp GIT
- Что такое криптографическое проставление временных меток и как оно защищает ваш код?