Установка GitHub-приложения для автоматической отметки времени в коде
Установка GitHub App для автоматической отметки времени кода
Вы хотите установить GitHub-приложение для отметки времени кода, чтобы каждый ваш коммит автоматически привязывался к блокчейну Bitcoin — без поддержки скриптов, запуска cron-задач и самостоятельной работы с OpenTimestamps. Именно это делает Timestamp GIT: установите GitHub App один раз, выберите репозитории для защиты, и каждый коммит будет хеширован, сгруппирован и привязан к Bitcoin каждую ночь. Никаких ручных шагов после настройки.
Это практическое руководство. Вы готовы внедрять, а не просто оценивать. К концу у вас будет установлен GitHub App Timestamp GIT, подключён первый репозиторий и настроен верификационный бейдж или журнал аудита.
Можно запускать OpenTimestamps вручную, самостоятельно создавать Bitcoin-транзакции и следить за cron-задачами — сложный путь. Или установить управляемое GitHub-приложение и позволить Timestamp GIT скрыть весь протокол за рабочим процессом с нулевой настройкой. Эта статья описывает первый путь.
Предварительные требования для установки GitHub App Timestamp GIT
Перед началом убедитесь, что у вас есть:
- Права администратора GitHub на репозиторий или организацию, которую вы хотите защитить. Вам нужно разрешение на установку GitHub App и предоставление доступа к репозиториям.
- Аккаунт Timestamp GIT на timestampgit.dev. Зарегистрируйтесь с помощью вашей учётной записи GitHub.
- Понимание двух режимов развёртывания:
- Стандартный режим (GitHub App): приложение автоматически считывает хеш HEAD-коммита отслеживаемых репозиториев. Ему требуется доступ только для чтения к исходному репозиторию, поскольку GitHub не предоставляет разрешений только на хеш коммита. Также требуется доступ на чтение и запись к целевому репозиторию, где будут храниться доказательства.
- Enterprise ZK Mode (GitHub Action): GitHub Action из 12 строк работает на вашей собственной инфраструктуре и отправляет в API Timestamp GIT только хеши коммитов. Приложение вообще не имеет доступа к вашему исходному репозиторию. Вам нужен только доступ на чтение и запись к целевому репозиторию.
- Платный тариф, если вы отмечаете время в приватных репозиториях. Бесплатный тариф Open Source покрывает публичные репозитории. Для приватных репозиториев требуется Pro Agency ($49/месяц) или Enterprise ZK ($199/месяц). Приватные страницы статуса и бейджи защищены зашифрованным HMAC-токеном.
- Никаких локальных инструментов или CLI-утилит. Всё управляется через веб-приложение Timestamp GIT и GitHub App. На машины разработчиков ничего устанавливать не нужно.
Пошаговая инструкция: установка и настройка GitHub App
Шаг 1: Войдите в Timestamp GIT и откройте страницу установки GitHub App
Войдите на timestampgit.dev. После входа перейдите на страницу настройки репозиториев — обычно это Your Repositories в панели управления. Нажмите на опцию установки GitHub App.
Шаг 2: Авторизуйте Timestamp GIT для вашего аккаунта или организации GitHub
Нажмите Install GitHub App. GitHub предложит выбрать между вашим личным аккаунтом и организациями, которыми вы управляете. Выберите аккаунт, которому принадлежат репозитории, которые вы хотите защитить.
Шаг 3: Выберите репозитории и установите права доступа к исходному коду
Выберите, какие репозитории Timestamp GIT должен отслеживать.
- В стандартном режиме предоставьте доступ только для чтения к исходным репозиториям. GitHub App нужно это разрешение, потому что GitHub не предоставляет разрешение только на хеш коммита. Timestamp GIT извлекает только хеш коммита; он никогда не читает и не хранит ваш исходный код.
- В Enterprise ZK Mode не предоставляйте доступ к исходному репозиторию вообще. GitHub Action выполняется в вашем CI-конвейере и отправляет в API только хеши, поэтому приложение никогда не касается вашего кода.
Шаг 4: Выберите, где будут храниться доказательства отметки времени
Выберите целевой репозиторий. Это может быть тот же репозиторий, что и исходный код, или отдельный теневой репозиторий. Timestamp GIT будет отправлять файлы манифестов и .ots-квитанции в выделенную ветку timestamps в целевом репозитории.
Для стандартного режима целевому репозиторию нужен доступ на чтение и запись. Для Enterprise ZK Mode вам нужен доступ на чтение и запись только к целевому репозиторию.
Шаг 5: Для Enterprise ZK Mode добавьте workflow GitHub Action
Если вы выбрали Enterprise ZK Mode, панель управления Timestamp GIT сгенерирует для вас YAML-фрагмент из 12 строк. Скопируйте его в файл workflow в вашем исходном репозитории, например .github/workflows/timestampgit.yml.
Сгенерированный workflow выглядит примерно так (используйте точный фрагмент из вашей панели управления):
# Enterprise ZK Mode workflow generated by Timestamp GIT.
# This runs on your infrastructure and sends only commit hashes.
name: timestamp-git-zk
on:
push:
branches: [main]
jobs:
send-hash:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Send commit hash to Timestamp GIT
env:
TIMESTAMPGIT_HMAC: ${{ secrets.TIMESTAMPGIT_HMAC }}
run: |
# The exact command is generated by Timestamp GIT.
# It pushes the HEAD commit hash to the API endpoint.
Action отправляет только хеш коммита. Ваш исходный код никогда не покидает вашу среду.
Шаг 6: Подтвердите настройку в панели управления Timestamp GIT
Вернитесь в Timestamp GIT и подтвердите установку. В стандартном режиме GitHub App начнёт обнаруживать коммиты через вебхуки GitHub автоматически. В Enterprise ZK Mode Action будет отправлять хеши коммитов в API при каждом push.
На этом этапе вы должны увидеть свой репозиторий в списке Your Repositories со статусом, показывающим, что он подключён.
Шаг 7: Добавьте верификационный бейдж в README
Со страницы подключённого репозитория (https://timestampgit.dev/connected/{user}/{repo}) скопируйте markdown-фрагмент для бейджа Shields.io. Он выглядит так, с вашими фактическими именами пользователя и репозитория:
[](https://timestampgit.dev/status/your-user/your-repo)
Вставьте его в ваш README.md. Публичные посетители могут нажать на бейдж, чтобы просмотреть публичный статус верификации вашего репозитория.
Как подтвердить, что отметка времени работает
После установки дождитесь ночной пакетной обработки и подтверждения в Bitcoin. Вот как проверить, что ваши первые коммиты были правильно привязаны.
-
Проверьте страницу статуса репозитория. Откройте
https://timestampgit.dev/status/{user}/{repo}. Она показывает самую раннюю дату привязки, ежедневную регулярность, данные блока и транзакции Bitcoin, а также календарную тепловую карту отмеченных коммитов. -
Найдите ветку timestamps. В вашем целевом репозитории найдите выделенную ветку timestamps (или теневой репозиторий). Она содержит файлы манифестов и
.ots-квитанции для каждой ежедневной партии. -
Запустите локальную верификацию в браузере. Посетите
https://timestampgit.dev/verification/{user}/{repo}/{date}. Страница выполняет пошаговую проверку цепочки Меркла локально в вашем браузере — с нулевым разглашением, никто не видит, что вы проверяете. Устанавливать ничего не нужно. -
Скачайте записи для комплаенса. Используйте конечные точки аудита CSV и PDF-сертификатов. Например:
https://timestampgit.dev/api/audit/{user}/{repo}скачивает полный журнал аудита в формате CSV.https://timestampgit.dev/api/report/{user}/{repo}/{date}скачивает PDF-сертификат за конкретный день.
-
Помните о времени. Коммиты группируются каждую ночь cron-воркером. Затем корень Меркла привязывается к Bitcoin-транзакции. Подтверждение Bitcoin обычно занимает около 3 часов, поэтому доказательства обычно доступны на следующий день. Если вы не видите доказательство сразу после коммита — это ожидаемо.
Устранение распространённых проблем при установке
Проблема: коммиты не получают отметку времени.
Проверьте, что у GitHub App правильные разрешения и что репозиторий выбран в панели управления Timestamp GIT. В стандартном режиме приложению нужен доступ только для чтения к исходному репозиторию и доступ на чтение и запись к целевому репозиторию. В Enterprise ZK Mode GitHub Action должен быть установлен в исходном репозитории и настроен на отправку в API.
Проблема: доказательства не появляются через день.
Убедитесь, что ночной cron-воркер выполнился и Bitcoin-транзакция подтверждена. Подтверждение Bitcoin обычно занимает около 3 часов после обработки партии. Проверьте страницу статуса репозитория на предмет информации о последнем привязанном блоке. Если прошло более 24 часов, убедитесь, что в целевом репозитории есть ветка timestamps и что у GitHub App всё ещё есть доступ на запись.
Проблема: статус приватного репозитория не виден.
Страницы статуса и бейджи приватных репозиториев защищены зашифрованным HMAC-токеном. Убедитесь, что вы используете аутентифицированный URL, содержащий значение HMAC. Также подтвердите, что вы на платном тарифе (Pro Agency или Enterprise ZK). Бесплатный тариф Open Source не покрывает приватные репозитории.
Проблема: Enterprise ZK Mode не отправляет хеши.
Проверьте, что файл workflow GitHub Action находится в .github/workflows/ и что секрет TIMESTAMPGIT_HMAC правильно задан в настройках вашего репозитория. Проверьте логи запуска workflow в GitHub Actions, чтобы убедиться, что конечная точка API доступна и action завершился успешно.
Проблема: локальная верификация не проходит на публичной странице верификации или со скачанным .ots-файлом.
Убедитесь, что вы используете правильный .ots-файл для конкретной даты. Также подтвердите, что ваши локальные инструменты OpenTimestamps обновлены, если вы проверяете вне браузера. Сама страница верификации выполняет все вычисления локально и должна работать в любом современном браузере.
FAQ
Имеет ли GitHub App Timestamp GIT доступ к моему исходному коду?
В стандартном режиме GitHub App требует доступ только для чтения к исходному репозиторию, потому что GitHub не предоставляет разрешений только на хеш коммита. Однако Timestamp GIT извлекает только хеш коммита и никогда не читает и не хранит ваш исходный код. В Enterprise ZK Mode GitHub Action работает на вашей инфраструктуре и отправляет в API только хеш коммита, поэтому приложение вообще не имеет доступа к вашему исходному репозиторию.
Сколько времени занимает отметка времени коммита в блокчейне Bitcoin?
Коммиты группируются каждую ночь. После обработки партии корень Меркла привязывается к Bitcoin-транзакции. Подтверждение Bitcoin обычно занимает около 3 часов, поэтому доказательство обычно доступно на следующий день. Вы можете отслеживать статус на панели управления репозиторием.
Можно ли использовать Timestamp GIT для приватных репозиториев?
Да, приватные репозитории поддерживаются на тарифах Pro Agency ($49/месяц) и Enterprise ZK ($199/месяц). Бесплатный тариф Open Source ограничен публичными репозиториями. Страницы статуса и бейджи приватных репозиториев защищены зашифрованным HMAC-токеном.
Что произойдёт, если Timestamp GIT прекратит работу? Смогу ли я по-прежнему проверять свои отметки времени?
Ваши доказательства хранятся в виде .ots-файлов в вашем репозитории и привязаны к блокчейну Bitcoin. Вы можете проверить их независимо с помощью стандартных инструментов OpenTimestamps и данных блоков Bitcoin. Проприетарные технологии не требуются, поэтому ваши доказательства остаются действительными даже без Timestamp GIT.
Заключение: начните защищать свой код сегодня
Установка GitHub App Timestamp GIT занимает несколько минут. После этого каждый коммит в отслеживаемый репозиторий автоматически получает цифровой отпечаток, группируется и привязывается к блокчейну Bitcoin. Вы получаете доказательства, готовые для суда, независимые от поставщика доказательства и нулевые постоянные усилия.
Если вам нужна максимальная безопасность в изолированной или самостоятельно размещённой среде, Timestamp GIT также доступен в виде Docker-образа с ограниченной по времени демо-лицензией. Но для большинства команд управляемое GitHub App — самый быстрый путь к криптографическому подтверждению приоритета.
Начните на Timestamp GIT, зарегистрируйтесь, установите GitHub App и подключите свой первый репозиторий уже сегодня.