types/commit: skip parent line for root commits in payload
did:plc:ax5ydlsbo5optzsnfje3ysck wants to merge
did:plc:ax5ydlsbo5optzsnfje3ysck opened 12d ago
Currently, root commits are not showing up as "verified" in the AppView. See [example Repo](https://tangled.org/subzidion.com/ssh-signing/tree/mainline). This is because the Payload produced is incorrect, causing the signature verification to fail. The payload is _always_ including the `parent` field, even when it should not be present (such as for the root commit).
First, I confirmed the expected Payload, based on the commits to that Repo:
Good commit, verified in UI:
```
subzidion@mizithra ~/w/ssh-signing (mainline)> git cat-file commit 06f191fa
tree ec947e3dd7a7752d078f1ed0cfde7457b21fef58
parent 048662fa0dbc061740a324028c96773ad8f342b6
author Carl 'Subzidion' Hiltbrunner <git@carl.hiltbrunner.email> 1777700993 -0700
committer Carl 'Subzidion' Hiltbrunner <git@carl.hiltbrunner.email> 1777700993 -0700
gpgsig -----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAg0z270OwauAUjqsiJWwAgrTZlTm
34RukB+S3sMKtZn5UAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5
AAAAQIDHf3FzPh/bOF+5wVavdcCibtG3yDJdgg4DKkmMTeFX4wXW00Zb5ld+aKtazd/0wA
R5c06R/HsYAq4Y6VO4dgc=
-----END SSH SIGNATURE-----
Add hello.txt.
```
Root commit, not verified in UI (Note, no `parent` field):
```
subzidion@mizithra ~/w/ssh-signing (mainline)> git cat-file commit 048662fa
tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904
author Carl 'Subzidion' Hiltbrunner <git@carl.hiltbrunner.email> 1777700337 -0700
committer Carl 'Subzidion' Hiltbrunner <git@carl.hiltbrunner.email> 1777700337 -0700
gpgsig -----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAg0z270OwauAUjqsiJWwAgrTZlTm
34RukB+S3sMKtZn5UAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5
AAAAQF/EZB0DWCgjUFt0IPp5QiTEAdVMjkAGTbe44gVGx4uwMyBRygQ+iofrjYZpzZhh77
gs0Nv5fwsV2nVTThpkXQg=
-----END SSH SIGNATURE-----
Initial commit.
```
Then verified a unit test for a root commit failed. Again, note the presence of the `parent` in the Payload output:
```
=== RUN TestPayloadRootCommit
commit_test.go:27: root commit payload must not contain a parent line, got: "parent "
full payload:
tree abc123
parent
author Alice <alice@example.com> 1735732800 +0000
committer Alice <alice@example.com> 1735732800 +0000
```
Removing `parent` should cause the Payload to match the one in the signature and produce a Verified commit in the AppView.
Comments (0)
No comments yet.