%h3.page-title Protected branches %p.light Keep stable branches secure and force developers to use Merge Requests %hr .bs-callout.bs-callout-info %p Protected branches are designed to %ul %li prevent pushes from everybody except #{link_to "masters", help_page_path("permissions", "permissions"), class: "vlink"} %li prevent anyone from force pushing to the branch %li prevent anyone from deleting the branch %p Read more about #{link_to "project permissions", 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-group = f.label :developers_can_push, "Developers can push?", class: 'control-label' .col-sm-10 = f.check_box :developers_can_push .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.fa.fa-lock - if branch.developers_can_push %span.label.label-warning %i.fa.fa-group .pull-right - if can? current_user, :admin_project, @project - if branch.developers_can_push = link_to 'Disable developers push', [@project, branch, { developers_can_push: false }], data: { confirm: 'Branch will be no longer writable for developers. Are you sure?' }, method: :put, class: "btn btn-grouped btn-small" - else = link_to 'Allow developers to push', [@project, branch, { developers_can_push: true }], data: { confirm: 'Branch will be writable for developers. Are you sure?' }, method: :put, class: "btn btn-grouped btn-small" = 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)