4979f15c3f
* 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>
198 lines
8.3 KiB
Cheetah
198 lines
8.3 KiB
Cheetah
{{template "base/head" .}}
|
|
<div class="repository new repo">
|
|
<div class="ui middle very relaxed page grid">
|
|
<div class="column">
|
|
<form class="ui form" action="{{.Link}}" method="post">
|
|
{{.CsrfTokenHtml}}
|
|
<h3 class="ui top attached header">
|
|
{{.i18n.Tr "new_repo"}}
|
|
</h3>
|
|
<div class="ui attached segment">
|
|
{{template "base/alert" .}}
|
|
<div class="inline required field {{if .Err_Owner}}error{{end}}">
|
|
<label>{{.i18n.Tr "repo.owner"}}</label>
|
|
<div class="ui selection owner dropdown">
|
|
<input type="hidden" id="uid" name="uid" value="{{.ContextUser.ID}}" required>
|
|
<span class="text" title="{{.ContextUser.Name}}">
|
|
<img class="ui mini image" src="{{.ContextUser.RelAvatarLink}}">
|
|
{{.ContextUser.ShortName 20}}
|
|
</span>
|
|
<i class="dropdown icon"></i>
|
|
<div class="menu">
|
|
<div class="item" data-value="{{.SignedUser.ID}}" title="{{.SignedUser.Name}}">
|
|
<img class="ui mini image" src="{{.SignedUser.RelAvatarLink}}">
|
|
{{.SignedUser.ShortName 20}}
|
|
</div>
|
|
{{range .Orgs}}
|
|
<div class="item" data-value="{{.ID}}" title="{{.Name}}">
|
|
<img class="ui mini image" src="{{.RelAvatarLink}}">
|
|
{{.ShortName 20}}
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
<span class="help">Some organizations may not show up in the dropdown due to a maximum repository count limit</span>
|
|
</div>
|
|
|
|
<div class="inline required field {{if .Err_RepoName}}error{{end}}">
|
|
<label for="repo_name">{{.i18n.Tr "repo.repo_name"}}</label>
|
|
<input id="repo_name" name="repo_name" value="{{.repo_name}}" autofocus required>
|
|
<span class="help">{{.i18n.Tr "repo.repo_name_helper"}}</span>
|
|
</div>
|
|
<div class="inline field">
|
|
<label>{{.i18n.Tr "repo.visibility"}}</label>
|
|
<div class="ui checkbox">
|
|
{{if .IsForcedPrivate}}
|
|
<input name="private" type="checkbox" checked readonly>
|
|
<label>{{.i18n.Tr "repo.visibility_helper_forced" | Safe}}</label>
|
|
{{else}}
|
|
<input name="private" type="checkbox" {{if .private}}checked{{end}}>
|
|
<label>{{.i18n.Tr "repo.visibility_helper" | Safe}}</label>
|
|
{{end}}
|
|
</div>
|
|
<span class="help">{{.i18n.Tr "repo.visibility_description"}}</span>
|
|
</div>
|
|
<div class="inline field {{if .Err_Description}}error{{end}}">
|
|
<label for="description">{{.i18n.Tr "repo.repo_desc"}}</label>
|
|
<textarea id="description" name="description">{{.description}}</textarea>
|
|
</div>
|
|
<div class="inline field">
|
|
<label>{{.i18n.Tr "repo.template"}}</label>
|
|
<div id="repo_template_search" class="ui search normal selection dropdown">
|
|
<input type="hidden" id="repo_template" name="repo_template" value="{{.repo_template}}">
|
|
<div class="default text">{{.repo_template_name}}</div>
|
|
<div class="menu">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="template_units" style="display: none;">
|
|
<div class="inline field">
|
|
<label>{{.i18n.Tr "repo.template.items"}}</label>
|
|
<div class="ui checkbox">
|
|
<input class="hidden" name="git_content" type="checkbox" tabindex="0" {{if .git_content}}checked{{end}}>
|
|
<label>{{.i18n.Tr "repo.template.git_content"}}</label>
|
|
</div>
|
|
<div class="ui checkbox" {{if not .SignedUser.CanEditGitHook}}data-tooltip="{{.i18n.Tr "repo.template.git_hooks_tooltip"}}"{{end}}>
|
|
<input class="hidden" name="git_hooks" type="checkbox" tabindex="0" {{if .git_hooks}}checked{{end}}>
|
|
<label>{{.i18n.Tr "repo.template.git_hooks"}}</label>
|
|
</div>
|
|
</div>
|
|
<div class="inline field">
|
|
<label></label>
|
|
<div class="ui checkbox">
|
|
<input class="hidden" name="webhooks" type="checkbox" tabindex="0" {{if .webhooks}}checked{{end}}>
|
|
<label>{{.i18n.Tr "repo.template.webhooks"}}</label>
|
|
</div>
|
|
<div class="ui checkbox">
|
|
<input class="hidden" name="topics" type="checkbox" tabindex="0" {{if .topics}}checked{{end}}>
|
|
<label>{{.i18n.Tr "repo.template.topics"}}</label>
|
|
</div>
|
|
</div>
|
|
<div class="inline field">
|
|
<label></label>
|
|
<div class="ui checkbox">
|
|
<input class="hidden" name="avatar" type="checkbox" tabindex="0" {{if .avatar}}checked{{end}}>
|
|
<label>{{.i18n.Tr "repo.template.avatar"}}</label>
|
|
</div>
|
|
<div class="ui checkbox">
|
|
<input class="hidden" name="labels" type="checkbox" tabindex="0" {{if .labels}}checked{{end}}>
|
|
<label>{{.i18n.Tr "repo.template.issue_labels"}}</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="non_template">
|
|
<div class="inline field">
|
|
<label>{{.i18n.Tr "repo.issue_labels"}}</label>
|
|
<div class="ui search normal selection dropdown">
|
|
<input type="hidden" name="issue_labels" value="{{.issueLabels}}">
|
|
<div class="default text">{{.i18n.Tr "repo.issue_labels_helper"}}</div>
|
|
<div class="menu">
|
|
<div class="item" data-value="">{{.i18n.Tr "repo.issue_labels_helper"}}</div>
|
|
{{range $template, $labels := .LabelTemplates}}
|
|
<div class="item" data-value="{{$template}}">{{$template}}<br/><i>({{$labels}})</i></div>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ui divider"></div>
|
|
|
|
<div class="inline field">
|
|
<label>.gitignore</label>
|
|
<div class="ui multiple search normal selection dropdown">
|
|
<input type="hidden" name="gitignores" value="{{.gitignores}}">
|
|
<div class="default text">{{.i18n.Tr "repo.repo_gitignore_helper"}}</div>
|
|
<div class="menu">
|
|
{{range .Gitignores}}
|
|
<div class="item" data-value="{{.}}">{{.}}</div>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="inline field">
|
|
<label>{{.i18n.Tr "repo.license"}}</label>
|
|
<div class="ui search selection dropdown">
|
|
<input type="hidden" name="license" value="{{.license}}">
|
|
<div class="default text">{{.i18n.Tr "repo.license_helper"}}</div>
|
|
<div class="menu">
|
|
<div class="item" data-value="">{{.i18n.Tr "repo.license_helper"}}</div>
|
|
{{range .Licenses}}
|
|
<div class="item" data-value="{{.}}">{{.}}</div>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="inline field">
|
|
<label>{{.i18n.Tr "repo.readme"}}</label>
|
|
<div class="ui selection dropdown">
|
|
<input type="hidden" name="readme" value="{{.readme}}">
|
|
<div class="default text">{{.i18n.Tr "repo.readme_helper"}}</div>
|
|
<div class="menu">
|
|
{{range .Readmes}}
|
|
<div class="item" data-value="{{.}}">{{.}}</div>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="inline field">
|
|
<div class="ui checkbox" id="auto-init">
|
|
<input class="hidden" name="auto_init" type="checkbox" tabindex="0" {{if .auto_init}}checked{{end}}>
|
|
<label>{{.i18n.Tr "repo.auto_init"}}</label>
|
|
</div>
|
|
</div>
|
|
<div class="inline field">
|
|
<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/>
|
|
<div class="inline field">
|
|
<label></label>
|
|
<button class="ui green button">
|
|
{{.i18n.Tr "repo.create_repo"}}
|
|
</button>
|
|
<a class="ui button" href="{{AppSubUrl}}/">{{.i18n.Tr "cancel"}}</a>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{template "base/footer" .}}
|