%h3.page-title Protected branches %p.light This ability allows to keep stable branches secured and force code review before merge to protected branches %hr .bs-callout.bs-callout-info %p Protected branches designed to %ul %li prevent push for all except #{link_to "masters", help_page_path("permissions", "permissions"), class: "vlink"}. %li prevent branch from force push %li prevent branch from removal %p Read more about project permissions #{link_to "here", help_page_path("permissions", "permissions"), class: "underlined-link"} - if can? current_user, :admin_project, @project = form_for [@project, @protected_branch], html: { class: 'form-horizontal' } do |f| -if @protected_branch.errors.any? .alert.alert-danger %ul - @protected_branch.errors.full_messages.each do |msg| %li= msg .form-group = f.label :name, "Branch", class: 'control-label' .col-sm-10 = f.select(:name, @project.open_branches.map { |br| [br.name, br.name] } , {include_blank: "Select branch"}, {class: "select2"}) .form-actions = f.submit 'Protect', class: "btn-create btn" - unless @branches.empty? %h5 Already Protected: %ul.bordered-list.protected-branches-list - @branches.each do |branch| %li %h4 = link_to project_commits_path(@project, branch.name) do %strong= branch.name - if @project.root_ref?(branch.name) %span.label.label-info default %span.label.label-success %i.icon-lock .pull-right - if can? current_user, :admin_project, @project = link_to 'Unprotect', [@project, branch], data: { confirm: 'Branch will be writable for developers. Are you sure?' }, method: :delete, class: "btn btn-remove btn-small" - if commit = branch.commit = link_to project_commit_path(@project, commit.id), class: 'commit_short_id' do = commit.short_id %span.light = gfm escape_once(truncate(commit.title, length: 40)) #{time_ago_with_tooltip(commit.committed_date)} - else (branch was removed from repository)