SQ-GIT(1)

πŸ“¦
version 0.6.0 Β· 2 versions
, in fedora 43, fedora 44, nixos 26.05, nixpkgs unstable

SQ-GIT πŸ’… (section 1 of the manual, bestie)

okay so this is the user commands corner of the manual for sq-git, and today we're hyperfixating on the log subcommand. grab a strawberry πŸ“, we're verifying commits.


✨ NAME ✨

sq-git-log β€” Lists and verifies commits. that's it. that's the whole job. πŸ‘‘


🌸 SYNOPSIS 🌸

sq-git log [OPTIONS] COMMIT_RANGE

πŸ¦‹ DESCRIPTION πŸ¦‹

Lists and verifies commits. iconic. no notes. ✨

So like, it lists and verifies that the commits going from the given trust root all the way to the target commit actually adhere to the policy. vibe check, but for your git history.

A version is considered authenticated if there's a path from the trust root to the target commit where every single commit on that path can be authenticated by its parent. literally a chain of trust, a little relay race of signatures. πŸƒβ™€οΈ

Now, the spicy part. If the key that signed a commit is hard revoked, then that commit is considered bad. sq-git looks for hard revocations in all of the commits it examines. so the way that a project maintainer can add a hard revocation to a commit's policy file and it will cause later and earlier commits signed with that key to be considered invalid. not just forward β€” backward too. this is useful when a key has been compromised. 🚨

When a key has been hard revoked, downstream users either need to start using a more recent trust root, or the upstream project maintainers need to audit the relevant commits. If the commits are considered benign, they can be added to a goodlist using sq-git policy goodlist. πŸ“

And then β€” when a commit is considered authenticated but the certificate has been hard revoked, sq-git looks to see whether the commit has been goodlisted by a commit that is on an authenticated path from the commit in question to the target. If so, the commit is considered to be authenticated. slay, redemption arc. 🫢


πŸ’– OPTIONS πŸ’–

πŸŽ€ Subcommand options

  • --keep-going β€” Continues to check commits even when it is clear that the target commit cannot be authenticated.

Causes sq-git log to continue to check commits rather than stopping as soon as it is clear that the version can't be authenticated. like bestie, we already know the ending, but we're gonna read every page anyway. πŸ“–

  • --policy-file=POLICY β€” Use an alternate policy.

The default policy is the openpgp-policy.toml file in the root of the repository's working tree. (so that's the one it grabs unless you say otherwise πŸ’β™€οΈ)

  • --prune-certs β€” After authenticating the current version, prunes the certificates.

After authenticating the current version, prunes unused components of the certificates. In particular, subkeys that were not used to verify a signature, and user IDs that were never considered primary are removed. βœ‚οΈ

This does not remove unused certificates from the policy file; this just minimizes them.

This requires the retire-user capability. don't forget or it's not happening πŸ’…
  • --trust-root=COMMIT β€” Specifies the trust root.

If no policy is specified, then the value of the git repository's sequoia.trustRoot configuration key is used as the trust root. πŸ”‘

  • COMMIT_RANGE β€” The commits to check.

If not specified, HEAD is authenticated with respect to the trust root.

If a single commit ID is specified, the specified commit is authenticated with respect to the trust root.

If a commit range like 3895a3a..3b388ae is specified, the end of the range is authenticated with respect to the trust root, and there must be an authenticated path from the trust root via the start of the range to the end of the range.

🌈 Global options

See sq-git(1) for a description of the global options. (yes, more lore, go read it 🫢)


⭐ SEE ALSO ⭐

sq-git(1).

For the full documentation see <https://sequoia-pgp.gitlab.io/sequoia-git>. πŸ“š


πŸ‘‘ VERSION πŸ‘‘

0.6.0


k bye bestie, that's the whole page β€” brought to you by Sequoia PGP, version 0.6.0, and the letter SQ-GIT(1). mwah. πŸ’œπŸ§šβœ¨

πŸ“¦ where this page comes from
  • fedora 43: sequoia-git 0.6.0-4.fc43
  • fedora 43: sequoia-git 0.6.0-6.fc43 Β· LGPL-2.0-or-later AND Apache-2.0 AND BSD-3-Clause AND BSL-1.0 AND MIT AND MPL-2.0 AND Unicode-3.0 AND Unicode-DFS-2016 AND Zlib AND bzip2-1.0.6 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (MIT OR Apache-2.0 OR Zlib) AND (Unlicense OR MIT)
  • fedora 44: sequoia-git 0.6.0-4.fc44
  • fedora 44: sequoia-git 0.6.0-6.fc44 Β· LGPL-2.0-or-later AND Apache-2.0 AND BSD-3-Clause AND BSL-1.0 AND MIT AND MPL-2.0 AND Unicode-3.0 AND Unicode-DFS-2016 AND Zlib AND bzip2-1.0.6 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (MIT OR Apache-2.0 OR Zlib) AND (Unlicense OR MIT)
  • nixos 26.05: sequoia-git 0.6.0
  • nixpkgs unstable: sequoia-git 0.6.0
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms