# Overview A small git-integrated script to sign a repository archive tarball for use with cgit. ## Usage ```console $ git-snapsign [--dry-run] [--force] [-s ] [-F ] [-p ] -t ``` `git-snapsign` will create a detached signature for archive output from `git-archive(1)` for `` and add it to the tag's notes in the `refs/notes/signatures/` namespace. cgit can then display these alongside the snapshots it offers on the repository's summary page. ## Options ``` -d, --dry-run: Do everything except add the signature blobs and associated note refs. -f, --force: Overwrite any existing signature -F, --format : Format to pass to git-archive(1). Currently, we only accept either "tar.gz", "tar.lz", "tar.xz", "tgz", "tar" or "zip" as we sign only the underlying archive, not the compressed version. For default "tar.lz". -p, --prefix : Prefix to use when determining the prefix to pass to git-archive(1). By default, we use the repository basename to create -.. Note that we also drop any intital "v" character from . -P, --push: Upload signature to remote git -s, --signature : Create the signature using . If not provided, the output of git config user.signingkey is used. -t, --tag : Git tag name -v, --version: Show version of git-snapsign -h, --help: This message ``` ### Examples Create a signature for the archive tarball at tag v1.0.0. ```console $ git-snapsign -t v1.0.0 ``` Same as above but use the zip format. ```console $ git-snapsign -F zip -t v1.0.0 ``` Create a signature with the key corresponding to heckyel@hyperbola.info ```console $ git-snapsign -s 4DF21B6A7C1021B25C360914F6EE7BC59A315766 -t v1.0.0 ``` Use "linux-libre-lts" to create the archive prefix. Useful for when the repository basename is not the canonical name of the project. For example, the linux-libre-lts project may wish to set the prefix this way. ```console $ git-snapsign -p linux-libre-lts -t v5.4.96 ```