2023-04-23 18:21:21 +08:00
{{ template "repo/settings/layout_head" ( dict "ctxData" . "pageClass" "repository settings branches" ) }}
<div class="repo-setting-content">
2023-01-16 16:00:22 +08:00
<form class="ui form" action=" {{ .Link }} " method="post">
<h4 class="ui top attached header">
{{ .locale .Tr "repo.settings.branch_protection" ( .Rule .RuleName | Escape ) | Str2html }}
</h4>
<div class="ui attached segment branch-protection">
2023-04-29 18:44:52 +08:00
<h5 class="ui dividing header"> {{ .locale .Tr "repo.settings.protect_patterns" }} </h5>
2023-01-16 16:00:22 +08:00
<div class="field">
2023-04-29 18:44:52 +08:00
<label> {{ .locale .Tr "repo.settings.protect_branch_name_pattern" }} </label>
2023-01-16 16:00:22 +08:00
<input name="rule_name" type="text" value=" {{ .Rule .RuleName }} ">
<input name="rule_id" type="hidden" value=" {{ .Rule .ID }} ">
2017-09-14 16:16:22 +08:00
</div>
2023-04-29 18:44:52 +08:00
<div class="field">
<label> {{ .locale .Tr "repo.settings.protect_protected_file_patterns" }} </label>
<input name="protected_file_patterns" type="text" value=" {{ .Rule .ProtectedFilePatterns }} ">
<p class="help gt-ml-0"> {{ .locale .Tr "repo.settings.protect_protected_file_patterns_desc" | Safe }} </p>
</div>
<div class="field">
<label> {{ .locale .Tr "repo.settings.protect_unprotected_file_patterns" }} </label>
<input name="unprotected_file_patterns" type="text" value=" {{ .Rule .UnprotectedFilePatterns }} ">
<p class="help gt-ml-0"> {{ .locale .Tr "repo.settings.protect_unprotected_file_patterns_desc" | Safe }} </p>
</div>
2023-01-16 16:00:22 +08:00
{{ .CsrfTokenHtml }}
2023-04-29 18:44:52 +08:00
<h5 class="ui dividing header"> {{ .locale .Tr "repo.settings.event_push" }} </h5>
<div class="field">
<div class="ui radio checkbox">
<input name="enable_push" type="radio" value="none" class="toggle-target-disabled" data-target="#whitelist_box" {{ if not .Rule .CanPush }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.protect_disable_push" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.protect_disable_push_desc" }} </p>
2019-12-04 02:08:56 +01:00
</div>
2023-04-29 18:44:52 +08:00
</div>
<div class="field">
<div class="ui radio checkbox">
<input name="enable_push" type="radio" value="all" class="toggle-target-disabled" data-target="#whitelist_box" {{ if and ( .Rule .CanPush ) ( not .Rule .EnableWhitelist ) }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.protect_enable_push" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.protect_enable_push_desc" }} </p>
2019-12-04 02:08:56 +01:00
</div>
2023-04-29 18:44:52 +08:00
</div>
<div class="grouped fields">
2019-12-04 02:08:56 +01:00
<div class="field">
<div class="ui radio checkbox">
2023-04-29 18:44:52 +08:00
<input name="enable_push" type="radio" value="whitelist" class="toggle-target-enabled" data-target="#whitelist_box" {{ if and ( .Rule .CanPush ) ( .Rule .EnableWhitelist ) }} checked {{ end }} >
2022-06-27 22:58:46 +02:00
<label> {{ .locale .Tr "repo.settings.protect_whitelist_committers" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.protect_whitelist_committers_desc" }} </p>
2017-09-14 16:16:22 +08:00
</div>
</div>
2023-04-29 18:44:52 +08:00
<div id="whitelist_box" class="grouped fields {{ if not .Rule .EnableWhitelist }} disabled {{ end }} ">
<div class="checkbox-sub-item field">
2022-06-27 22:58:46 +02:00
<label> {{ .locale .Tr "repo.settings.protect_whitelist_users" }} </label>
2017-09-14 16:16:22 +08:00
<div class="ui multiple search selection dropdown">
<input type="hidden" name="whitelist_users" value=" {{ .whitelist_users }} ">
2022-06-27 22:58:46 +02:00
<div class="default text"> {{ .locale .Tr "repo.settings.protect_whitelist_search_users" }} </div>
2017-09-14 16:16:22 +08:00
<div class="menu">
{{ range .Users }}
<div class="item" data-value=" {{ .ID }} ">
2023-03-17 00:32:25 +08:00
{{ avatar $ .Context . 2 8 "mini" }} {{ template "repo/search_name" . }}
2017-09-14 16:16:22 +08:00
</div>
{{ end }}
</div>
</div>
</div>
{{ if .Owner .IsOrganization }}
2023-04-29 18:44:52 +08:00
<div class="checkbox-sub-item field">
2022-06-27 22:58:46 +02:00
<label> {{ .locale .Tr "repo.settings.protect_whitelist_teams" }} </label>
2017-09-14 16:16:22 +08:00
<div class="ui multiple search selection dropdown">
<input type="hidden" name="whitelist_teams" value=" {{ .whitelist_teams }} ">
2022-06-27 22:58:46 +02:00
<div class="default text"> {{ .locale .Tr "repo.settings.protect_whitelist_search_teams" }} </div>
2017-09-14 16:16:22 +08:00
<div class="menu">
{{ range .Teams }}
<div class="item" data-value=" {{ .ID }} ">
2020-09-11 22:19:00 +02:00
{{ svg "octicon-people" }}
2017-09-14 16:16:22 +08:00
{{ .Name }}
</div>
{{ end }}
</div>
</div>
</div>
{{ end }}
2023-04-29 18:44:52 +08:00
<div class="checkbox-sub-item field">
2019-10-21 09:21:45 +01:00
<div class="ui checkbox">
2023-01-16 16:00:22 +08:00
<input type="checkbox" name="whitelist_deploy_keys" {{ if .Rule .WhitelistDeployKeys }} checked {{ end }} >
2023-04-29 18:44:52 +08:00
<label> {{ .locale .Tr "repo.settings.protect_whitelist_deploy_keys" }} </label>
2018-03-25 12:01:32 +02:00
</div>
</div>
2019-09-18 13:39:45 +08:00
</div>
2023-04-29 18:44:52 +08:00
</div>
<div class="field">
<div class="ui checkbox">
<input name="require_signed_commits" type="checkbox" {{ if .Rule .RequireSignedCommits }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.require_signed_commits" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.require_signed_commits_desc" }} </p>
2018-12-11 12:28:37 +01:00
</div>
2023-04-29 18:44:52 +08:00
</div>
<h5 class="ui dividing header"> {{ .locale .Tr "repo.settings.event_pull_request_approvals" }} </h5>
<div class="field">
<label> {{ .locale .Tr "repo.settings.protect_required_approvals" }} </label>
<input name="required_approvals" type="number" value=" {{ .Rule .RequiredApprovals }} ">
<p class="help gt-ml-0"> {{ .locale .Tr "repo.settings.protect_required_approvals_desc" }} </p>
</div>
<div class="grouped fields">
2019-12-04 02:08:56 +01:00
<div class="field">
<div class="ui checkbox">
2023-04-29 18:44:52 +08:00
<input name="enable_approvals_whitelist" type="checkbox" class="toggle-target-enabled" data-target="#approvals_whitelist_box" {{ if .Rule .EnableApprovalsWhitelist }} checked {{ end }} >
2022-06-27 22:58:46 +02:00
<label> {{ .locale .Tr "repo.settings.protect_approvals_whitelist_enabled" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.protect_approvals_whitelist_enabled_desc" }} </p>
2019-12-04 02:08:56 +01:00
</div>
</div>
2023-04-29 18:44:52 +08:00
<div id="approvals_whitelist_box" class="grouped fields {{ if not .Rule .EnableApprovalsWhitelist }} disabled {{ end }} ">
<div class="checkbox-sub-item field">
2022-06-27 22:58:46 +02:00
<label> {{ .locale .Tr "repo.settings.protect_approvals_whitelist_users" }} </label>
2018-12-11 12:28:37 +01:00
<div class="ui multiple search selection dropdown">
<input type="hidden" name="approvals_whitelist_users" value=" {{ .approvals_whitelist_users }} ">
2022-06-27 22:58:46 +02:00
<div class="default text"> {{ .locale .Tr "repo.settings.protect_whitelist_search_users" }} </div>
2018-12-11 12:28:37 +01:00
<div class="menu">
{{ range .Users }}
<div class="item" data-value=" {{ .ID }} ">
2023-03-17 00:32:25 +08:00
{{ avatar $ .Context . 2 8 "mini" }} {{ template "repo/search_name" . }}
2018-12-11 12:28:37 +01:00
</div>
{{ end }}
</div>
</div>
</div>
2019-12-04 02:08:56 +01:00
{{ if .Owner .IsOrganization }}
2023-04-29 18:44:52 +08:00
<div class="checkbox-sub-item field">
2022-06-27 22:58:46 +02:00
<label> {{ .locale .Tr "repo.settings.protect_approvals_whitelist_teams" }} </label>
2019-12-04 02:08:56 +01:00
<div class="ui multiple search selection dropdown">
<input type="hidden" name="approvals_whitelist_teams" value=" {{ .approvals_whitelist_teams }} ">
2022-06-27 22:58:46 +02:00
<div class="default text"> {{ .locale .Tr "repo.settings.protect_whitelist_search_teams" }} </div>
2019-12-04 02:08:56 +01:00
<div class="menu">
{{ range .Teams }}
<div class="item" data-value=" {{ .ID }} ">
2020-09-11 22:19:00 +02:00
{{ svg "octicon-people" }}
2019-12-04 02:08:56 +01:00
{{ .Name }}
</div>
{{ end }}
2018-12-11 12:28:37 +01:00
</div>
</div>
</div>
2019-12-04 02:08:56 +01:00
{{ end }}
2018-12-11 12:28:37 +01:00
</div>
2023-04-29 18:44:52 +08:00
</div>
<div class="field">
<div class="ui checkbox">
<input name="dismiss_stale_approvals" type="checkbox" {{ if .Rule .DismissStaleApprovals }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.dismiss_stale_approvals" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.dismiss_stale_approvals_desc" }} </p>
2020-01-15 08:32:57 +00:00
</div>
2023-04-29 18:44:52 +08:00
</div>
<div class="grouped fields">
2020-11-29 03:30:46 +08:00
<div class="field">
<div class="ui checkbox">
2023-04-29 18:44:52 +08:00
<input name="enable_status_check" type="checkbox" class="toggle-target-enabled" data-target="#statuscheck_contexts_box" {{ if .Rule .EnableStatusCheck }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.protect_check_status_contexts" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.protect_check_status_contexts_desc" }} </p>
2020-11-29 03:30:46 +08:00
</div>
</div>
2023-04-29 18:44:52 +08:00
<div id="statuscheck_contexts_box" class="checkbox-sub-item field {{ if not .Rule .EnableStatusCheck }} disabled {{ end }} ">
<table class="ui celled table">
<thead>
<tr>
<th> {{ .locale .Tr "repo.settings.protect_check_status_contexts_list" }} </th>
</tr>
</thead>
<tbody>
{{ range $ .branch_status_check_contexts }}
<tr>
<td>
<span class="ui checkbox">
<label> {{ . }} </label>
<input name="status_check_contexts" value=" {{ . }} " type="checkbox" {{ if SliceUtils .Contains $ .Rule .StatusCheckContexts . }} checked {{ end }} >
</span>
</td>
</tr>
{{ else }}
2023-05-02 11:54:29 +02:00
<tr><td>-</td></tr>
2023-04-29 18:44:52 +08:00
{{ end }}
</tbody>
</table>
</div>
</div>
<h5 class="ui dividing header"> {{ .locale .Tr "repo.settings.event_pull_request_merge" }} </h5>
<div class="grouped fields">
2020-01-09 02:47:45 +01:00
<div class="field">
2023-04-29 18:44:52 +08:00
<div class="ui radio checkbox">
<input name="enable_merge_whitelist" type="radio" value="false" class="toggle-target-disabled" data-target="#merge_whitelist_box" {{ if not .Rule .EnableMergeWhitelist }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.protect_enable_merge" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.protect_enable_merge_desc" }} </p>
2020-01-09 02:47:45 +01:00
</div>
</div>
2020-01-15 08:32:57 +00:00
<div class="field">
2023-04-29 18:44:52 +08:00
<div class="ui radio checkbox">
<input name="enable_merge_whitelist" type="radio" value="true" class="toggle-target-enabled" data-target="#merge_whitelist_box" {{ if .Rule .EnableMergeWhitelist }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.protect_merge_whitelist_committers" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.protect_merge_whitelist_committers_desc" }} </p>
2020-01-15 08:32:57 +00:00
</div>
</div>
2023-04-29 18:44:52 +08:00
<div id="merge_whitelist_box" class="grouped fields {{ if not .Rule .EnableMergeWhitelist }} disabled {{ end }} ">
<div class="checkbox-sub-item field">
<label> {{ .locale .Tr "repo.settings.protect_merge_whitelist_users" }} </label>
<div class="ui multiple search selection dropdown">
<input type="hidden" name="merge_whitelist_users" value=" {{ .merge_whitelist_users }} ">
<div class="default text"> {{ .locale .Tr "repo.settings.protect_whitelist_search_users" }} </div>
<div class="menu">
{{ range .Users }}
<div class="item" data-value=" {{ .ID }} ">
{{ avatar $ .Context . 2 8 "mini" }} {{ template "repo/search_name" . }}
</div>
{{ end }}
</div>
</div>
2020-04-17 03:00:36 +02:00
</div>
2023-04-29 18:44:52 +08:00
{{ if .Owner .IsOrganization }}
<div class="checkbox-sub-item field">
<label> {{ .locale .Tr "repo.settings.protect_merge_whitelist_teams" }} </label>
<div class="ui multiple search selection dropdown">
<input type="hidden" name="merge_whitelist_teams" value=" {{ .merge_whitelist_teams }} ">
<div class="default text"> {{ .locale .Tr "repo.settings.protect_whitelist_search_teams" }} </div>
<div class="menu">
{{ range .Teams }}
<div class="item" data-value=" {{ .ID }} ">
{{ svg "octicon-people" }}
{{ .Name }}
</div>
{{ end }}
</div>
</div>
</div>
{{ end }}
2020-04-17 03:00:36 +02:00
</div>
2023-04-29 18:44:52 +08:00
</div>
<div class="field">
<div class="ui checkbox">
<input name="block_on_rejected_reviews" type="checkbox" {{ if .Rule .BlockOnRejectedReviews }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.block_rejected_reviews" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.block_rejected_reviews_desc" }} </p>
2020-03-27 00:26:34 +02:00
</div>
2023-04-29 18:44:52 +08:00
</div>
<div class="field">
<div class="ui checkbox">
<input name="block_on_official_review_requests" type="checkbox" {{ if .Rule .BlockOnOfficialReviewRequests }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.block_on_official_review_requests" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.block_on_official_review_requests_desc" }} </p>
</div>
</div>
<div class="field">
<div class="ui checkbox">
<input name="block_on_outdated_branch" type="checkbox" {{ if .Rule .BlockOnOutdatedBranch }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.block_outdated_branch" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.block_outdated_branch_desc" }} </p>
2021-09-11 16:21:17 +02:00
</div>
2017-09-14 16:16:22 +08:00
</div>
<div class="ui divider"></div>
<div class="field">
2023-01-16 16:00:22 +08:00
<button class="ui green button"> {{ $ .locale .Tr "repo.settings.protected_branch.save_rule" }} </button>
<button class="ui gray button"> {{ $ .locale .Tr "cancel" }} </button>
2017-09-14 16:16:22 +08:00
</div>
2023-01-16 16:00:22 +08:00
</div>
</form>
2017-09-14 16:16:22 +08:00
</div>
2023-04-23 18:21:21 +08:00
{{ template "repo/settings/layout_footer" . }}