New Features (BREAKING)
-
support signing and verifying annotated tags
Breaking as it renamesTag::pgp_signaturetosignature.Extend
gix-objectsignature support from commits to annotated tags.Signature infrastructure
- Move object-independent signing and verification machinery into the shared
gix_object::signaturemodule. - Keep signature discovery available without the
signaturefeature. - Continue using the existing signing and verification options and
shared verification outcome for all object types.
Annotated tags
- Add
Tag::sign()andTagRef::sign(). - Add signature accessors that report both the armor and detected format.
- Add raw extraction of a tag signature and its exact signed bytes.
- Recognize OpenPGP signature/message, X.509, and SSH armor markers.
- Match Git by selecting the last recognized marker at a line boundary.
- Support native SHA-1 and SHA-256 tags without compatibility headers or
multiple signatures.
- Move object-independent signing and verification machinery into the shared
New Features
-
add explicit commit signing to gix-object
Add plumbing for signing commits through external OpenPGP, X.509, and SSH
programs under the shared signature feature. Accept fully resolved signer
options so callers control the program, key, environment, and arguments
without introducing repository configuration into the object crate.Replace an existing signature using the hash-appropriate commit header,
normalize signer output, and report process and malformed-output failures
with context. Cover every supported format, SHA-256 headers, replacement,
literal SSH keys, and verify generated signatures through the sibling
plumbing verifier as well as the external reference programs. -
add commit signature verification to gix-object via
commit::SignedData::verify()Add feature-gated plumbing for verifying OpenPGP, X.509, and SSH commit
signatures with fully resolved programs, arguments, environments, trust
thresholds, and SSH policy inputs. Keep repository configuration out of
the object crate while exposing Git-compatible status, identity, key, and
fingerprint results.Stream signed commit data directly to OpenPGP and SSH verifiers without
reconstructing it. Use a temporary payload only where gpgsm requires a
file, and cover Git status parsing plus unsupported and mismatched formats. -
recognize SHA-256 commit signature headers
Teach commit parsing and signature extraction about the gpgsig-sha256
header used by Git when signing SHA-256 commits. Treat it like gpgsig
when locating the embedded signature while preserving the actual header
name when reconstructing the signed payload.Cover both full commit parsing and token iteration so callers observe
the signature consistently through either API. -
add
tree::name_order()for git-style tree-entry comparison -
support Assisted-by commit trailers, count them as attributions.
Expose Assisted-by predicates and iterators alongside Co-authored-by, and
include agent assistance in the general attribution stream without treating
assistants as authors. -
expose commit message blocks via
Commit::body()::message_blocks()
This allows parsing messages that have been concatenated, and each message
has its own trailers.
Commit Statistics
- 16 commits contributed to the release over the course of 30 calendar days.
- 30 days passed between releases.
- 7 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Update manifests prior to release (ebe9095)
- Merge pull request #2930 from GitoxideLabs/gix-notes (7424676)
- Improve
Tree::bisect_entry()to be more succinct (579544e) - Merge pull request #2905 from GitoxideLabs/various-improvements (f3bbfad)
- Support signing and verifying annotated tags (26d231b)
- Add explicit commit signing to gix-object (ca7563e)
- Add commit signature verification to gix-object via
commit::SignedData::verify()(5b90699) - Recognize SHA-256 commit signature headers (a30f442)
- Adapt to changes in
gix-testtools(0cbe539) - Add
tree::name_order()for git-style tree-entry comparison (c6cf668) - Merge pull request #2901 from cruessler/switch-to-gix-odb-at-opts (2a4d996)
- Introduce
Store::at()where possible (17fea2a) - Merge pull request #2834 from GitoxideLabs/tix-improvements (2fadbc7)
- Support Assisted-by commit trailers, count them as attributions. (e5370e6)
- Expose commit message blocks via
Commit::body()::message_blocks()(f2e90e9) - Merge pull request #2812 from GitoxideLabs/report-july (ae8845a)