aboutsummaryrefslogtreecommitdiffstats
path: root/templates
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2020-09-19 17:44:55 +0100
committerGitHub <noreply@github.com>2020-09-20 00:44:55 +0800
commit4979f15c3f44b8e7be46ebce02e25ebd9cc74197 (patch)
tree803aa9da68170090d22d7a1235f36189d1bca9ba /templates
parent89c94e2f8e871028492d5460fd3a10794f4ced1b (diff)
downloadgitea-4979f15c3f44b8e7be46ebce02e25ebd9cc74197.tar.gz
gitea-4979f15c3f44b8e7be46ebce02e25ebd9cc74197.zip
Add configurable Trust Models (#11712)
* Add configurable Trust Models Gitea's default signature verification model differs from GitHub. GitHub uses signatures to verify that the committer is who they say they are - meaning that when GitHub makes a signed commit it must be the committer. The GitHub model prevents re-publishing of commits after revocation of a key and prevents re-signing of other people's commits to create a completely trusted repository signed by one key or a set of trusted keys. The default behaviour of Gitea in contrast is to always display the avatar and information related to a signature. This allows signatures to be decoupled from the committer. That being said, allowing arbitary users to present other peoples commits as theirs is not necessarily desired therefore we have a trust model whereby signatures from collaborators are marked trusted, signatures matching the commit line are marked untrusted and signatures that match a user in the db but not the committer line are marked unmatched. The problem with this model is that this conflicts with Github therefore we need to provide an option to allow users to choose the Github model should they wish to. Signed-off-by: Andrew Thornton <art27@cantab.net> * Adjust locale strings Signed-off-by: Andrew Thornton <art27@cantab.net> * as per @6543 Co-authored-by: 6543 <6543@obermui.de> * Update models/gpg_key.go * Add migration for repository Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Diffstat (limited to 'templates')
-rw-r--r--templates/repo/create.tmpl13
-rw-r--r--templates/repo/settings/options.tmpl46
-rw-r--r--templates/swagger/v1_json.tmpl11
3 files changed, 70 insertions, 0 deletions
diff --git a/templates/repo/create.tmpl b/templates/repo/create.tmpl
index c4b25c73d8..d5c540724b 100644
--- a/templates/repo/create.tmpl
+++ b/templates/repo/create.tmpl
@@ -167,6 +167,19 @@
<label for="default_branch">{{.i18n.Tr "repo.default_branch"}}</label>
<input id="default_branch" name="default_branch" value="{{.default_branch}}" placeholder="{{.default_branch}}">
</div>
+ <div class="inline field">
+ <label>{{.i18n.Tr "repo.settings.trust_model"}}</label>
+ <div class="ui selection owner dropdown">
+ <input type="hidden" id="trust_model" name="trust_model" value="default" required>
+ <div class="default text">{{.i18n.Tr "repo.settings.trust_model"}}</div>
+ <i class="dropdown icon"></i>
+ <div class="menu">
+ <div class="item" data-value="default">{{.i18n.Tr "repo.settings.trust_model.default"}}</div>
+ <div class="item" data-value="collaborator">{{.i18n.Tr "repo.settings.trust_model.collaborator"}}</div>
+ <div class="item" data-value="committer">{{.i18n.Tr "repo.settings.trust_model.committer"}}</div>
+ <div class="item" data-value="collaboratorcommitter">{{.i18n.Tr "repo.settings.trust_model.collaboratorcommitter"}}</div>
+ </div>
+ </div>
</div>
<br/>
diff --git a/templates/repo/settings/options.tmpl b/templates/repo/settings/options.tmpl
index 8a490ac645..a8e050c583 100644
--- a/templates/repo/settings/options.tmpl
+++ b/templates/repo/settings/options.tmpl
@@ -340,6 +340,52 @@
</form>
</div>
+ <h4 class="ui top attached header">
+ {{.i18n.Tr "repo.settings.signing_settings"}}
+ </h4>
+ <div class="ui attached segment">
+ <form class="ui form" method="post">
+ {{.CsrfTokenHtml}}
+ <input type="hidden" name="action" value="signing">
+ <div class="field">
+ <label>{{.i18n.Tr "repo.settings.trust_model"}}</label>
+ <div class="field">
+ <div class="ui radio checkbox">
+ <input type="radio" id="trust_model_default" name="trust_model" {{if eq .Repository.TrustModel.String "default"}}checked="checked"{{end}} value="default">
+ <label for="trust_model_default">{{.i18n.Tr "repo.settings.trust_model.default"}}</label>
+ <p class="help">{{.i18n.Tr "repo.settings.trust_model.default.desc"}}</p>
+ </div>
+ </div>
+ <div class="field">
+ <div class="ui radio checkbox">
+ <input type="radio" id="trust_model_collaborator" name="trust_model" {{if eq .Repository.TrustModel.String "collaborator"}}checked="checked"{{end}} value="collaborator">
+ <label for="trust_model_collaborator">{{.i18n.Tr "repo.settings.trust_model.collaborator.long"}}</label>
+ <p class="help">{{.i18n.Tr "repo.settings.trust_model.collaborator.desc"}}</p>
+ </div>
+ </div>
+ <div class="field">
+ <div class="ui radio checkbox">
+ <input type="radio" name="trust_model" id="trust_model_committer" {{if eq .Repository.TrustModel.String "committer"}}checked="checked"{{end}} value="committer">
+ <label for="trust_model_committer">{{.i18n.Tr "repo.settings.trust_model.committer.long"}}</label>
+ <p class="help">{{.i18n.Tr "repo.settings.trust_model.committer.desc"}}</p>
+ </div>
+ </div>
+ <div class="field">
+ <div class="ui radio checkbox">
+ <input type="radio" name="trust_model" id="trust_model_collaboratorcommitter" {{if eq .Repository.TrustModel.String "collaboratorcommitter"}}checked="checked"{{end}} value="collaboratorcommitter">
+ <label for="trust_model_collaboratorcommitter">{{.i18n.Tr "repo.settings.trust_model.collaboratorcommitter.long"}}</label>
+ <p class="help">{{.i18n.Tr "repo.settings.trust_model.collaboratorcommitter.desc"}}</p>
+ </div>
+ </div>
+ </div>
+
+ <div class="ui divider"></div>
+ <div class="field">
+ <button class="ui green button">{{$.i18n.Tr "repo.settings.update_settings"}}</button>
+ </div>
+ </form>
+ </div>
+
{{if .IsAdmin}}
<h4 class="ui top attached header">
{{.i18n.Tr "repo.settings.admin_settings"}}
diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl
index 4b78b40dd2..b687b4c57f 100644
--- a/templates/swagger/v1_json.tmpl
+++ b/templates/swagger/v1_json.tmpl
@@ -11937,6 +11937,17 @@
"description": "Readme of the repository to create",
"type": "string",
"x-go-name": "Readme"
+ },
+ "trust_model": {
+ "description": "TrustModel of the repository",
+ "type": "string",
+ "enum": [
+ "default",
+ "collaborator",
+ "committer",
+ "collaboratorcommitter"
+ ],
+ "x-go-name": "TrustModel"
}
},
"x-go-package": "code.gitea.io/gitea/modules/structs"