Clarify commit signature trust models (GPG and S/MIME) #8378

Open
opened 2025-11-02 08:04:15 -06:00 by GiteaMirror · 1 comment
Owner

Originally created by @LecrisUT on GitHub (Jan 19, 2022).

Feature Description

Currently there is a confusion when using the Collaborator trust model for commit signature, particularly in the commit view. This causes frequent confusions to the users. I suggest that we implement at least one or preferably both:

  1. Add a tooltip in the commit view that pops-up an explanation of untrusted user (UI wise something like in this tutorial). Explanation could be: This commit is correctly signed by ${user}(${email}), but ${user} is not a trusted collaborator of this repository
  2. Change the default trust model to Committer

For reference attached is a screenshot of one of the places where a tooltip pop-up would clarify

Screenshots

image
image

Originally created by @LecrisUT on GitHub (Jan 19, 2022). ### Feature Description Currently there is a confusion when using the `Collaborator` trust model for commit signature, particularly in the commit view. This causes frequent confusions to the users. I suggest that we implement at least one or preferably both: 1. Add a tooltip in the commit view that pops-up an explanation of `untrusted user` (UI wise something like in [this tutorial](https://www.w3schools.com/css/css_tooltip.asp)). Explanation could be: `This commit is correctly signed by ${user}(${email}), but ${user} is not a trusted collaborator of this repository` 2. Change the default trust model to `Committer` For reference attached is a screenshot of one of the places where a tooltip pop-up would clarify ### Screenshots ![image](https://user-images.githubusercontent.com/25577083/150104154-46943451-370d-4492-83b2-9b6821da7d5b.png) ![image](https://user-images.githubusercontent.com/25577083/150104336-418cf0a4-fad6-4f6e-8f19-0d921b25f3a6.png)
GiteaMirror added the type/proposaltype/enhancement labels 2025-11-02 08:04:15 -06:00
Author
Owner

@Simandara commented on GitHub (Jul 18, 2023):

I would also like some clarification about this, regarding translation of Gitea. On the matter of signing commits (or others entities), such could be:

  • Signed by
  • Signed by untrusted user
  • Signed by untrusted user who does not match committer

On the other hand, Gitea repositories have a Signature Trust Model with the following options:

  • Default (but we don't know what is the behavior)
  • Collaborator
  • Commiter
  • Collaborator+Commiter

It is not clear how behave gitea given one of the selected model: will it actually forbid a collaborator from pushing commits because of untrusted signature? Does that setting only set the illustrated warning (on @LecrisUT 's screenshots) when pushing unverified commits?

To me, it looks like it's the same behavior as of Github (About commit signature verification > Default statuses):

Status Description
Verified The commit is signed and the signature was successfully verified.
Unverified The commit is signed but the signature could not be verified.
No verification status The commit is not signed.

But instead of wording "Verified", gitea uses "Trusted". Can someone comfirm this?

@Simandara commented on GitHub (Jul 18, 2023): I would also like some clarification about this, regarding translation of Gitea. On the matter of signing commits (or others entities), such could be: - Signed by - Signed by untrusted user - Signed by untrusted user who does not match committer On the other hand, Gitea repositories have a Signature Trust Model with the following options: - Default (but we don't know what is the behavior) - Collaborator - Commiter - Collaborator+Commiter It is not clear how behave gitea given one of the selected model: will it actually forbid a collaborator from pushing commits because of untrusted signature? Does that setting only set the illustrated warning (on @LecrisUT 's screenshots) when pushing unverified commits? To me, it looks like it's the same behavior as of Github ([About commit signature verification > Default statuses](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification#default-statuses)): Status | Description -- | -- Verified | The commit is signed and the signature was successfully verified. Unverified | The commit is signed but the signature could not be verified. No verification status | The commit is not signed. But instead of wording "Verified", gitea uses "Trusted". Can someone comfirm this?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/gitea#8378