SQ-GIT(1)

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

✨ NAME ✨

okay so bestie, welcome to sq-git-policy-authorize β€” it changes the authorizations. that's the whole vibe. that's the job. πŸ’…

this is the sq-git manual page, and we're about to go through it together, no skimming, no skipping, every single flag gets its moment. πŸŽ€


🌸 SYNOPSIS 🌸

sq-git policy authorize [OPTIONS] NAME FILE|FINGERPRINT|KEYID

that's it, that's the shape of it: you run the subcommand, you throw some options at it, and you tell it who you're authorizing with a NAME plus a FILE, FINGERPRINT, or KEYID. slay. πŸ¦‹


πŸ’– DESCRIPTION πŸ’–

Changes the authorizations. yep, that's the whole thing. ✨

here's the actually-important part though: a certificate can delegate any of its capabilities to another certificate without breaking an authentication chain. that's the magic trick. πŸͺ„

and if you wanna fork a project, you create a new policy file. that's the move. periodt. πŸ‘‘


🫢 OPTIONS 🫢

🌈 Subcommand options

  • --add-user β€” Grant the certificate the add-user capability.

this capability lets the certificate add users to the policy file, and also lets it grant them capabilities. but here's the catch, and it's a big one: a certificate that has this capability is only allowed to grant capabilities that it has. so if Alice has the sign-commit and add-user capability, she can grant Bob either of those, but she can't grant him the sign-tag capability, because she does not have that capability. no reaching into the cookie jar you can't open, bestie. πŸͺ

  • --audit β€” Grants the certificate the audit capability.

this capability allows the certificate to audit commits. imagine: Alice has the audit capability, Bob has the can-sign capability, and then Bob revokes his key because it was compromised β€” suddenly all commits that Bob signed are considered invalid. 😭 Alice can recover from this situation by auditing Bob's commit. and after auditing each commit, she marks it as good using sq-git policy goodlist. crisis averted, main character energy. πŸ’…

  • --cert=FINGERPRINT|KEYID β€” The fingerprint or Key ID of the certificate to use

this is read from the user's default certificate directory.

see the top-level option --home for more information about the certificate store. 🏠

  • --cert-file=FILE β€” The file containing the certificate to authorize.

the file must contain exactly one certificate. not two. not zero. one. 🎯

  • --committer β€” Grants all capabilities relevant to a committer.

a committer is authorized to commit changes to the code. this option grants the certificate the sign-commit capability. that's it, that's the committer bundle. ✨

  • --no-add-user β€” Rescind the add-user capability from a certificate.

removes the add-user capability for the certificate. Note: this operation is not retroactive; operations that rely on this grant prior to the policy change are still considered authenticated. πŸ™ˆ

rescinding the add-user capability from a certificate does not rescind any grants that that certificate made. so: if Alice grants Bob the can-sign and add-user capability, Bob grants Carol the can-sign capability, and then Alice rescinds Bob's can-sign and add-user capabilities β€” Carol still has the can-sign capability. in this way, a grant is a copy of a capability. photocopied, not lent. πŸ–¨οΈ

  • --no-audit β€” Rescind the audit capability from a certificate.

removes the audit capability from a certificate. the specified certificate cannot no longer mark arbitrary commits as good. πŸ’€

  • --no-retire-user β€” Rescind the retire-user capability from a certificate.

removes the retire-user capability from a certificate. the specified certificate cannot no longer rescind capabilities β€” even those that they granted. 😬

  • --no-sign-archive β€” Rescind the sign-archive capability from a certificate.

removes the sign-archive capability for the certificate. Note: this operation is not retroactive; archives signed with the certificate prior to the policy change are still considered authenticated. πŸ“¦

  • --no-sign-commit β€” Rescind the sign-commit capability from a certificate.

removes the sign-commit capability for the certificate. Note: this operation is not retroactive; commits signed with the certificate prior to the policy change are still considered authenticated. 🌟

  • --no-sign-tag β€” Rescind the sign-tag capability from a certificate.

removes the sign-tag capability for the certificate. Note: this operation is not retroactive; tags signed with the certificate prior to the policy change are still considered authenticated. 🏷️

  • --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. πŸ“

  • --project-maintainer β€” Grants all capabilities relevant to a project maintainer.

a project maintainer is a person who is responsible for maintaining the project. this option grants the certificate all capabilities. the whole crown. πŸ‘‘

  • --release-manager β€” Grants all capabilities relevant to a release manager.

a release manager is authorized to commit changes, and make releases. this option grants the certificate the sign-tag, sign-archive, and sign-commit capabilities. πŸš€

  • --retire-user β€” Grants the certificate the retire-user capability.

this capability allows the certificate to rescind arbitrary capabilities. so if Alice has the retire-user capability, she can rescind Bob's can-sign capability even if she didn't grant him that capability. scary power, use responsibly. ⚠️

  • --sign-archive β€” Grant the certificate the sign-archive capability.

this capability allows the certificate to sign tarballs or other archives. when authenticating an archive, an archive is considered authenticated if it is signed by a certificate with this capability. πŸ—œοΈ

  • --sign-commit β€” Grant the certificate the sign-commit capability.

this capability allows the certificate to sign commits. when authenticating a version of the repository, a commit is considered authenticated if it is signed by a certificate with this capability. βœ…

  • --sign-tag β€” Grant the certificate the sign-tag capability.

this capability allows the certificate to sign tags. when authenticating a tag, a tag is considered authenticated if it is signed by a certificate with this capability. πŸŽ‰

πŸ’œ NAME

  • FILE|FINGERPRINT|KEYID β€” The filename, fingerprint or Key ID of the certificate to authenticate

this is first interpreted as a filename. if that file does not exist, then it is interpreted as a fingerprint or Key ID, and read from the certificate store. to avoid ambiguity, use --cert or --cert-file instead. seriously, bestie, if you're confused, just use the explicit flags. 🫠

see the top-level option --home for more information about the certificate store.

⭐ Global options

see sq-git(1) for a description of the global options. go read that one too, i'm not redoing it here. πŸ’…


πŸ¦‹ SEE ALSO πŸ¦‹

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


πŸŽ€ VERSION πŸŽ€

0.6.0


and that's the whole page, bestie!! you read every single flag, every capability, every "not retroactive" warning, and i'm so proud of you. πŸ₯ΉπŸ’–

sending you off with the classic sign-off: this gem is brought to you by Sequoia PGP, version 0.6.0, living its best life under the SQ-GIT(1) manual page name. go forth and authorize responsibly. πŸŒˆβœ¨πŸ‘‘

πŸ“¦ 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