git и Trusted Timestamps или DOI для частного репо? - PullRequest
0 голосов
/ 14 мая 2018

Мы используем git / github, и мы должны быть в состоянии доказать, что определенный коммит / тег был сделан до определенного времени, мы хотим использовать для этого Trusted Timestamp , так как они, кажется,быть самым простым способом достижения этого.

Другим вариантом может быть DOI, но репозиторий является частным (наложен запрет на использование во внутренних проектах) и будет общедоступным на более позднем этапе, но отметка времени должна бытьна время первоначального коммита / тега.

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

Но я борюсь за то, как я могу использовать их в git / github?

Создаю ли я Trusted Timestamp хэша, созданного git, и включаю его в тег, то есть запрашиваем TrustedВременная метка после коммита, которую я хочу отметить?

Добавлять ли метку времени как файл в коммит, т.е. запрашивать ли его перед коммитом?Но для чего мне использовать Trusted Timestamp?

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Я сейчас использую OriginStamp , который прекрасно интегрируется с github, как описано здесь в общем и на этот сайт специально для github.

Если я правильно понимаю, он дает Trusted Timestamp на основе сгенерированного хэша из git и помещает его в цепочку биткойнов.

0 голосов
/ 14 мая 2018

Git не поддерживает ничего этого из коробки, но быстрое сканирование вашей ссылки (я не углублялся ни в RFC, ни в стандарт ANSI X9.95) подсказывает, что способ сделать это - сделатьзафиксировать себя, затем передать необработанные данные фиксации - которые вы можете получить с помощью git cat-file -p <em>hash</em> - в орган отметки времени (TSA), который генерирует метку времени, и поместить все сгенерированные данные в аннотированный тег, помечая этот коммит.Будет легко продемонстрировать, что вы сохранили данные TSA в аннотированном теге, поскольку эти данные отображаются при печати содержимого тега, а TSA покажет, что вы предоставили им данные фиксации.

... Но я борюсь за то, как я могу использовать их в git / github?

Вы сможете делать коммит где угодно, но вам понадобится локальный клон для получениянеобработанный текст коммита.Сам текст фиксации выглядит так:

$ git cat-file -p HEAD | sed 's/@/ /'
tree 191f960868564ef1f0978328589aa191219f1ab8
parent 96f29521a3908eb80b9552f11f2b75ca34475686
author Junio C Hamano <gitster pobox.com> 1525762230 +0900
committer Junio C Hamano <gitster pobox.com> 1525762789 +0900

The fifth batch for 2.18

Signed-off-by: Junio C Hamano <gitster pobox.com>

, и это действительно хэш tree, который вы будете защищать здесь.Поскольку вы защищаете хеш дерева, теоретически было бы возможно вставить данные TSA непосредственно в текст фиксации, но эта часть была бы значительно сложнее, чем использование аннотированных тегов.Чтобы использовать аннотированные теги, вы просто доставляете полный текст фиксации в TSA;они предоставляют вам хеш, в какой бы форме они его не предоставляли, и вы превращаете его в нечто подходящее для хранения текста в аннотированном теге, точно так же, как Git использует подписи GPG.

Затем вы запускаете (локально, в вашем хранилище) git tag -a как обычно, вставьте текстовые данные TSA в свой тег, и теперь у вас есть аннотированный тег, хранящий данные TSA.Чтобы отправить эти данные в GitHub, вы просто git push тег:

git push origin refs/tags/<tagname>

Любой, кто клонирует хранилище, получает аннотированный тег, а git show <em>tagname</em> (или git cat-file -p refs/tags/<em>tagname</em>) извлекает аннотацию, которая содержит ваштекстовые данные TSA.Сравните с, например:

$ git show v2.17.0 | sed 's/@/ /'
tag v2.17.0
Tagger: Junio C Hamano <gitster@pobox.com>
Date:   Mon Apr 2 10:14:24 2018 -0700

Git 2.17
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEE4fA2sf7nIh/HeOzvsLXohpav5ssFAlrCZPAACgkQsLXohpav
5suOTg/+I+qxQFmQyi3Ms1VAzM3wefJ9Ut4qBV5TKCu+wY21c4ZvTk9kvmJN+qYK
MDi6smYlCyj7YD1JqbPEyEoUgb/7TjylA9dBVwrCk8HoyAyLQpwixgkZxLLJEEzE
9EpzAg65fHST//DYMr0pZMee9POKL0KU4ekAJKsrfgRF4rA29OwvkrKvNw9DzAQf
gfIBQktNGzGaKhyjS9AdFR7K7N8vy1hGWPWwAWkxRWRwa2vsENdPuqLMstJqUzmP
3OEqA5OFZ7RDr9WrrNORbCN1iIyAQQ7GzZEMwT1mXhHB+b91F0SO766REnkgfwa1
bMgjpqfzAjoSzeafg5t1jAqm+MvgXQNP4KCWsk6ZtstWj7xfgyuhZ2osTdPUNaeT
tqRdhmrShQ+lMY5uuhJHr7kqUvqt3INpE9KD19nmlPvgPbYP5mDpW8oZfEGTM+iw
vCQqE5AZ5SivhEkkSTDgNdFJemvX2QbtRBiG8RyhWTLpRUGp9q1lgD1KJZlxjrdX
ovqGRNhkRowaGVpfoFeFs5256cxB9FkttE5MEj5FoSB8G4/FdUhkm4qTWXP5fZKt
d89PyWvTXn7x8rKFs/XLMscDnc9kCgnyt0ugYZZxjb4Mqs59A6epE+ylX/j9DDFW
6ZfTteMqLRtDtaEntJFQS9CatSoMpdlXUluKvoWcD9uy57WTayQ=
=JgMH
-----END PGP SIGNATURE-----

commit 468165c1d8a442994a825f3684528361727cd8c0 (tag: v2.17.0, origin/maint)
Author: Junio C Hamano <gitster@pobox.com>
[snip rest]
...