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.

cospan · schematic version control on atproto built on AT Protocol