Commit df6aada2 authored by Rémy Coutable's avatar Rémy Coutable

Resolve conflicts

Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
parent 9a9d7ad9
...@@ -47,12 +47,9 @@ import BlobLinePermalinkUpdater from './blob/blob_line_permalink_updater'; ...@@ -47,12 +47,9 @@ import BlobLinePermalinkUpdater from './blob/blob_line_permalink_updater';
import BlobForkSuggestion from './blob/blob_fork_suggestion'; import BlobForkSuggestion from './blob/blob_fork_suggestion';
import UserCallout from './user_callout'; import UserCallout from './user_callout';
import { ProtectedTagCreate, ProtectedTagEditList } from './protected_tags'; import { ProtectedTagCreate, ProtectedTagEditList } from './protected_tags';
<<<<<<< HEAD
import GeoNodes from './geo_nodes'; import GeoNodes from './geo_nodes';
import ServiceDeskRoot from './projects/settings_service_desk/service_desk_root'; import ServiceDeskRoot from './projects/settings_service_desk/service_desk_root';
=======
>>>>>>> ce/master
const ShortcutsBlob = require('./shortcuts_blob'); const ShortcutsBlob = require('./shortcuts_blob');
...@@ -356,10 +353,7 @@ const ShortcutsBlob = require('./shortcuts_blob'); ...@@ -356,10 +353,7 @@ const ShortcutsBlob = require('./shortcuts_blob');
// Initialize Protected Branch Settings // Initialize Protected Branch Settings
new gl.ProtectedBranchCreate(); new gl.ProtectedBranchCreate();
new gl.ProtectedBranchEditList(); new gl.ProtectedBranchEditList();
<<<<<<< HEAD
new UsersSelect(); new UsersSelect();
=======
>>>>>>> ce/master
// Initialize Protected Tag Settings // Initialize Protected Tag Settings
new ProtectedTagCreate(); new ProtectedTagCreate();
new ProtectedTagEditList(); new ProtectedTagEditList();
......
...@@ -169,14 +169,11 @@ export default Vue.component('environment-folder-view', { ...@@ -169,14 +169,11 @@ export default Vue.component('environment-folder-view', {
:environments="state.environments" :environments="state.environments"
:can-create-deployment="canCreateDeploymentParsed" :can-create-deployment="canCreateDeploymentParsed"
:can-read-environment="canReadEnvironmentParsed" :can-read-environment="canReadEnvironmentParsed"
<<<<<<< HEAD
:play-icon-svg="playIconSvg" :play-icon-svg="playIconSvg"
:terminal-icon-svg="terminalIconSvg" :terminal-icon-svg="terminalIconSvg"
:commit-icon-svg="commitIconSvg" :commit-icon-svg="commitIconSvg"
:toggleDeployBoard="toggleDeployBoard" :toggleDeployBoard="toggleDeployBoard"
:store="store" :store="store"
=======
>>>>>>> ce/master
:service="service"/> :service="service"/>
<table-pagination v-if="state.paginationInformation && state.paginationInformation.totalPages > 1" <table-pagination v-if="state.paginationInformation && state.paginationInformation.totalPages > 1"
......
...@@ -16,13 +16,10 @@ import eventHub from './event_hub'; ...@@ -16,13 +16,10 @@ import eventHub from './event_hub';
this.tokensContainer = this.container.querySelector('.tokens-container'); this.tokensContainer = this.container.querySelector('.tokens-container');
this.filteredSearchTokenKeys = gl.FilteredSearchTokenKeys; this.filteredSearchTokenKeys = gl.FilteredSearchTokenKeys;
<<<<<<< HEAD
if (page === 'issues' || page === 'boards') { if (page === 'issues' || page === 'boards') {
this.filteredSearchTokenKeys = gl.FilteredSearchTokenKeysWithWeights; this.filteredSearchTokenKeys = gl.FilteredSearchTokenKeysWithWeights;
} }
=======
>>>>>>> ce/master
this.recentSearchesStore = new RecentSearchesStore(); this.recentSearchesStore = new RecentSearchesStore();
let recentSearchesKey = 'issue-recent-searches'; let recentSearchesKey = 'issue-recent-searches';
if (page === 'merge_requests') { if (page === 'merge_requests') {
......
...@@ -790,13 +790,10 @@ a.allowed-to-push { ...@@ -790,13 +790,10 @@ a.allowed-to-push {
} }
} }
<<<<<<< HEAD
.disabled-item { .disabled-item {
@extend .btn.disabled; @extend .btn.disabled;
} }
=======
>>>>>>> ce/master
.protected-tags-list { .protected-tags-list {
.dropdown-menu-toggle { .dropdown-menu-toggle {
width: 100%; width: 100%;
......
...@@ -3,7 +3,6 @@ class Projects::ProtectedBranchesController < Projects::ProtectedRefsController ...@@ -3,7 +3,6 @@ class Projects::ProtectedBranchesController < Projects::ProtectedRefsController
def project_refs def project_refs
@project.repository.branches @project.repository.branches
<<<<<<< HEAD
end end
def create_service_class def create_service_class
...@@ -20,20 +19,6 @@ class Projects::ProtectedBranchesController < Projects::ProtectedRefsController ...@@ -20,20 +19,6 @@ class Projects::ProtectedBranchesController < Projects::ProtectedRefsController
def access_levels def access_levels
[:merge_access_levels, :push_access_levels] [:merge_access_levels, :push_access_levels]
=======
end
def create_service_class
::ProtectedBranches::CreateService
end
def update_service_class
::ProtectedBranches::UpdateService
end
def load_protected_ref
@protected_ref = @project.protected_branches.find(params[:id])
>>>>>>> ce/master
end end
def protected_ref_params def protected_ref_params
......
...@@ -30,11 +30,7 @@ class Projects::ProtectedRefsController < Projects::ApplicationController ...@@ -30,11 +30,7 @@ class Projects::ProtectedRefsController < Projects::ApplicationController
@protected_ref = update_service_class.new(@project, current_user, protected_ref_params).execute(@protected_ref) @protected_ref = update_service_class.new(@project, current_user, protected_ref_params).execute(@protected_ref)
if @protected_ref.valid? if @protected_ref.valid?
<<<<<<< HEAD
render json: @protected_ref, status: :ok, include: access_levels render json: @protected_ref, status: :ok, include: access_levels
=======
render json: @protected_ref, status: :ok
>>>>>>> ce/master
else else
render json: @protected_ref.errors, status: :unprocessable_entity render json: @protected_ref.errors, status: :unprocessable_entity
end end
......
...@@ -17,13 +17,10 @@ class Projects::ProtectedTagsController < Projects::ProtectedRefsController ...@@ -17,13 +17,10 @@ class Projects::ProtectedTagsController < Projects::ProtectedRefsController
@protected_ref = @project.protected_tags.find(params[:id]) @protected_ref = @project.protected_tags.find(params[:id])
end end
<<<<<<< HEAD
def access_levels def access_levels
[:create_access_levels] [:create_access_levels]
end end
=======
>>>>>>> ce/master
def protected_ref_params def protected_ref_params
params.require(:protected_tag).permit(:name, create_access_levels_attributes: [:access_level, :id]) params.require(:protected_tag).permit(:name, create_access_levels_attributes: [:access_level, :id])
end end
......
...@@ -8,17 +8,13 @@ module Projects ...@@ -8,17 +8,13 @@ module Projects
@deploy_keys = DeployKeysPresenter.new(@project, current_user: current_user) @deploy_keys = DeployKeysPresenter.new(@project, current_user: current_user)
define_protected_refs define_protected_refs
<<<<<<< HEAD
project.create_push_rule unless project.push_rule project.create_push_rule unless project.push_rule
@push_rule = project.push_rule @push_rule = project.push_rule
=======
>>>>>>> ce/master
end end
private private
<<<<<<< HEAD
def remote_mirror def remote_mirror
@remote_mirror = @project.remote_mirrors.first_or_initialize @remote_mirror = @project.remote_mirrors.first_or_initialize
end end
...@@ -35,18 +31,6 @@ module Projects ...@@ -35,18 +31,6 @@ module Projects
{ {
selected_merge_access_levels: @protected_branch.merge_access_levels.map { |access_level| access_level.user_id || access_level.access_level }, selected_merge_access_levels: @protected_branch.merge_access_levels.map { |access_level| access_level.user_id || access_level.access_level },
selected_push_access_levels: @protected_branch.push_access_levels.map { |access_level| access_level.user_id || access_level.access_level }, selected_push_access_levels: @protected_branch.push_access_levels.map { |access_level| access_level.user_id || access_level.access_level },
=======
def define_protected_refs
@protected_branches = @project.protected_branches.order(:name).page(params[:page])
@protected_tags = @project.protected_tags.order(:name).page(params[:page])
@protected_branch = @project.protected_branches.new
@protected_tag = @project.protected_tags.new
load_gon_index
end
def access_levels_options
{
>>>>>>> ce/master
create_access_levels: levels_for_dropdown(ProtectedTag::CreateAccessLevel), create_access_levels: levels_for_dropdown(ProtectedTag::CreateAccessLevel),
push_access_levels: levels_for_dropdown(ProtectedBranch::PushAccessLevel), push_access_levels: levels_for_dropdown(ProtectedBranch::PushAccessLevel),
merge_access_levels: levels_for_dropdown(ProtectedBranch::MergeAccessLevel) merge_access_levels: levels_for_dropdown(ProtectedBranch::MergeAccessLevel)
...@@ -72,10 +56,7 @@ module Projects ...@@ -72,10 +56,7 @@ module Projects
gon.push(protectable_tags_for_dropdown) gon.push(protectable_tags_for_dropdown)
gon.push(protectable_branches_for_dropdown) gon.push(protectable_branches_for_dropdown)
gon.push(access_levels_options) gon.push(access_levels_options)
<<<<<<< HEAD
gon.push(current_project_id: @project.id) if @project gon.push(current_project_id: @project.id) if @project
=======
>>>>>>> ce/master
end end
end end
end end
......
...@@ -33,7 +33,6 @@ module BranchesHelper ...@@ -33,7 +33,6 @@ module BranchesHelper
def protected_branch?(project, branch) def protected_branch?(project, branch)
ProtectedBranch.protected?(project, branch.name) ProtectedBranch.protected?(project, branch.name)
end end
<<<<<<< HEAD
def access_levels_data(access_levels) def access_levels_data(access_levels)
access_levels.map do |level| access_levels.map do |level|
...@@ -53,6 +52,4 @@ module BranchesHelper ...@@ -53,6 +52,4 @@ module BranchesHelper
end end
end end
end end
=======
>>>>>>> ce/master
end end
...@@ -3,10 +3,7 @@ module ProtectedBranchAccess ...@@ -3,10 +3,7 @@ module ProtectedBranchAccess
included do included do
include ProtectedRefAccess include ProtectedRefAccess
<<<<<<< HEAD
include EE::ProtectedBranchAccess include EE::ProtectedBranchAccess
=======
>>>>>>> ce/master
belongs_to :protected_branch belongs_to :protected_branch
......
...@@ -36,12 +36,10 @@ class Group < Namespace ...@@ -36,12 +36,10 @@ class Group < Namespace
validates :avatar, file_size: { maximum: 200.kilobytes.to_i } validates :avatar, file_size: { maximum: 200.kilobytes.to_i }
<<<<<<< HEAD validates :two_factor_grace_period, presence: true, numericality: { greater_than_or_equal_to: 0 }
validates :repository_size_limit, validates :repository_size_limit,
numericality: { only_integer: true, greater_than_or_equal_to: 0, allow_nil: true } numericality: { only_integer: true, greater_than_or_equal_to: 0, allow_nil: true }
=======
validates :two_factor_grace_period, presence: true, numericality: { greater_than_or_equal_to: 0 }
>>>>>>> ce/master
mount_uploader :avatar, AvatarUploader mount_uploader :avatar, AvatarUploader
has_many :uploads, as: :model, dependent: :destroy has_many :uploads, as: :model, dependent: :destroy
......
...@@ -10,15 +10,13 @@ class GroupMember < Member ...@@ -10,15 +10,13 @@ class GroupMember < Member
validates :source_type, format: { with: /\ANamespace\z/ } validates :source_type, format: { with: /\ANamespace\z/ }
default_scope { where(source_type: SOURCE_TYPE) } default_scope { where(source_type: SOURCE_TYPE) }
<<<<<<< HEAD after_create :update_two_factor_requirement, unless: :invite?
after_destroy :update_two_factor_requirement, unless: :invite?
scope :with_ldap_dn, -> { joins(user: :identities).where("identities.provider LIKE ?", 'ldap%') } scope :with_ldap_dn, -> { joins(user: :identities).where("identities.provider LIKE ?", 'ldap%') }
scope :with_identity_provider, ->(provider) do scope :with_identity_provider, ->(provider) do
joins(user: :identities).where(identities: { provider: provider }) joins(user: :identities).where(identities: { provider: provider })
end end
=======
after_create :update_two_factor_requirement, unless: :invite?
after_destroy :update_two_factor_requirement, unless: :invite?
>>>>>>> ce/master
def self.access_level_roles def self.access_level_roles
Gitlab::Access.options_with_owner Gitlab::Access.options_with_owner
......
...@@ -987,14 +987,11 @@ class Project < ActiveRecord::Base ...@@ -987,14 +987,11 @@ class Project < ActiveRecord::Base
Gitlab::UrlSanitizer.new("#{web_url}.git", credentials: credentials).full_url Gitlab::UrlSanitizer.new("#{web_url}.git", credentials: credentials).full_url
end end
<<<<<<< HEAD
# No need to have a Kerberos Web url. Kerberos URL will be used only to clone # No need to have a Kerberos Web url. Kerberos URL will be used only to clone
def kerberos_url_to_repo def kerberos_url_to_repo
"#{Gitlab.config.build_gitlab_kerberos_url + Gitlab::Application.routes.url_helpers.namespace_project_path(self.namespace, self)}.git" "#{Gitlab.config.build_gitlab_kerberos_url + Gitlab::Application.routes.url_helpers.namespace_project_path(self.namespace, self)}.git"
end end
=======
>>>>>>> ce/master
def user_can_push_to_empty_repo?(user) def user_can_push_to_empty_repo?(user)
!ProtectedBranch.default_branch_protected? || team.max_member_access(user.id) > Gitlab::Access::DEVELOPER !ProtectedBranch.default_branch_protected? || team.max_member_access(user.id) > Gitlab::Access::DEVELOPER
end end
......
...@@ -7,14 +7,9 @@ module ChatMessage ...@@ -7,14 +7,9 @@ module ChatMessage
attr_reader :title attr_reader :title
def initialize(params) def initialize(params)
<<<<<<< HEAD
@user_name = params[:user][:username]
@project_name = params[:project_name]
@project_url = params[:project_url]
@action = params[:object_attributes][:action]
=======
super super
>>>>>>> ce/master
@action = params[:object_attributes][:action]
obj_attr = params[:object_attributes] obj_attr = params[:object_attributes]
obj_attr = HashWithIndifferentAccess.new(obj_attr) obj_attr = HashWithIndifferentAccess.new(obj_attr)
......
...@@ -11,7 +11,6 @@ class ProtectedBranch < ActiveRecord::Base ...@@ -11,7 +11,6 @@ class ProtectedBranch < ActiveRecord::Base
accepts_nested_attributes_for :push_access_levels, allow_destroy: true accepts_nested_attributes_for :push_access_levels, allow_destroy: true
accepts_nested_attributes_for :merge_access_levels, allow_destroy: true accepts_nested_attributes_for :merge_access_levels, allow_destroy: true
<<<<<<< HEAD
# Returns all merge access levels (for protected branches in scope) that grant merge # Returns all merge access levels (for protected branches in scope) that grant merge
# access to the given user. # access to the given user.
scope :merge_access_by_user, -> (user) { MergeAccessLevel.joins(:protected_branch).where(protected_branch_id: self.ids).merge(MergeAccessLevel.by_user(user)) } scope :merge_access_by_user, -> (user) { MergeAccessLevel.joins(:protected_branch).where(protected_branch_id: self.ids).merge(MergeAccessLevel.by_user(user)) }
...@@ -46,8 +45,6 @@ class ProtectedBranch < ActiveRecord::Base ...@@ -46,8 +45,6 @@ class ProtectedBranch < ActiveRecord::Base
end end
end end
=======
>>>>>>> ce/master
# Check if branch name is marked as protected in the system # Check if branch name is marked as protected in the system
def self.protected?(project, ref_name) def self.protected?(project, ref_name)
return true if project.empty_repo? && default_branch_protected? return true if project.empty_repo? && default_branch_protected?
......
...@@ -90,15 +90,7 @@ class User < ActiveRecord::Base ...@@ -90,15 +90,7 @@ class User < ActiveRecord::Base
has_many :events, dependent: :destroy, foreign_key: :author_id has_many :events, dependent: :destroy, foreign_key: :author_id
has_many :subscriptions, dependent: :destroy has_many :subscriptions, dependent: :destroy
has_many :recent_events, -> { order "id DESC" }, foreign_key: :author_id, class_name: "Event" has_many :recent_events, -> { order "id DESC" }, foreign_key: :author_id, class_name: "Event"
<<<<<<< HEAD
has_many :assigned_issues, dependent: :destroy, foreign_key: :assignee_id, class_name: "Issue"
has_many :assigned_merge_requests, dependent: :destroy, foreign_key: :assignee_id, class_name: "MergeRequest"
has_many :oauth_applications, class_name: 'Doorkeeper::Application', as: :owner, dependent: :destroy has_many :oauth_applications, class_name: 'Doorkeeper::Application', as: :owner, dependent: :destroy
has_many :approvals, dependent: :destroy
has_many :approvers, dependent: :destroy
=======
has_many :oauth_applications, class_name: 'Doorkeeper::Application', as: :owner, dependent: :destroy
>>>>>>> ce/master
has_one :abuse_report, dependent: :destroy, foreign_key: :user_id has_one :abuse_report, dependent: :destroy, foreign_key: :user_id
has_many :reported_abuse_reports, dependent: :destroy, foreign_key: :reporter_id, class_name: "AbuseReport" has_many :reported_abuse_reports, dependent: :destroy, foreign_key: :reporter_id, class_name: "AbuseReport"
has_many :spam_logs, dependent: :destroy has_many :spam_logs, dependent: :destroy
...@@ -109,6 +101,9 @@ class User < ActiveRecord::Base ...@@ -109,6 +101,9 @@ class User < ActiveRecord::Base
has_many :award_emoji, dependent: :destroy has_many :award_emoji, dependent: :destroy
has_many :path_locks, dependent: :destroy has_many :path_locks, dependent: :destroy
has_many :approvals, dependent: :destroy
has_many :approvers, dependent: :destroy
# Protected Branch Access # Protected Branch Access
has_many :protected_branch_merge_access_levels, dependent: :destroy, class_name: ProtectedBranch::MergeAccessLevel has_many :protected_branch_merge_access_levels, dependent: :destroy, class_name: ProtectedBranch::MergeAccessLevel
has_many :protected_branch_push_access_levels, dependent: :destroy, class_name: ProtectedBranch::PushAccessLevel has_many :protected_branch_push_access_levels, dependent: :destroy, class_name: ProtectedBranch::PushAccessLevel
......
...@@ -34,17 +34,6 @@ module Projects ...@@ -34,17 +34,6 @@ module Projects
unless remove_legacy_registry_tags unless remove_legacy_registry_tags
raise_error('Failed to remove some tags in project container registry. Please try again or contact administrator.') raise_error('Failed to remove some tags in project container registry. Please try again or contact administrator.')
<<<<<<< HEAD
=======
end
unless remove_repository(repo_path)
raise_error('Failed to remove project repository. Please try again or contact administrator.')
end
unless remove_repository(wiki_path)
raise_error('Failed to remove wiki repository. Please try again or contact administrator.')
>>>>>>> ce/master
end end
end end
...@@ -79,11 +68,11 @@ module Projects ...@@ -79,11 +68,11 @@ module Projects
def trash_repositories! def trash_repositories!
unless remove_repository(repo_path) unless remove_repository(repo_path)
raise_error('Failed to remove project repository. Please try again or contact administrator') raise_error('Failed to remove project repository. Please try again or contact administrator.')
end end
unless remove_repository(wiki_path) unless remove_repository(wiki_path)
raise_error('Failed to remove wiki repository. Please try again or contact administrator') raise_error('Failed to remove wiki repository. Please try again or contact administrator.')
end end
end end
...@@ -114,15 +103,12 @@ module Projects ...@@ -114,15 +103,12 @@ module Projects
ContainerRepository.build_root_repository(project).tap do |repository| ContainerRepository.build_root_repository(project).tap do |repository|
return repository.has_tags? ? repository.delete_tags! : true return repository.has_tags? ? repository.delete_tags! : true
end end
<<<<<<< HEAD
end end
def remove_tracking_entries! def remove_tracking_entries!
return unless Gitlab::Geo.secondary? return unless Gitlab::Geo.secondary?
Geo::ProjectRegistry.where(project_id: project.id).delete_all Geo::ProjectRegistry.where(project_id: project.id).delete_all
=======
>>>>>>> ce/master
end end
def raise_error(message) def raise_error(message)
......
...@@ -33,12 +33,8 @@ ...@@ -33,12 +33,8 @@
= sort_title_recently_updated = sort_title_recently_updated
= link_to admin_users_path(sort: sort_value_oldest_updated, filter: params[:filter]) do = link_to admin_users_path(sort: sort_value_oldest_updated, filter: params[:filter]) do
= sort_title_oldest_updated = sort_title_oldest_updated
<<<<<<< HEAD
= link_to 'Send email to users', admin_email_path, class: 'btn' = link_to 'Send email to users', admin_email_path, class: 'btn'
= link_to 'New User', new_admin_user_path, class: 'btn btn-new btn-search'
=======
= link_to 'New user', new_admin_user_path, class: 'btn btn-new btn-search' = link_to 'New user', new_admin_user_path, class: 'btn btn-new btn-search'
>>>>>>> ce/master
.nav-block .nav-block
%ul.nav-links.wide.scrolling-tabs.white.scrolling-tabs %ul.nav-links.wide.scrolling-tabs.white.scrolling-tabs
......
...@@ -33,11 +33,8 @@ ...@@ -33,11 +33,8 @@
tree_join(@commit.sha, @path)), class: 'btn btn-sm js-data-file-blob-permalink-url' tree_join(@commit.sha, @path)), class: 'btn btn-sm js-data-file-blob-permalink-url'
.btn-group{ role: "group" }< .btn-group{ role: "group" }<
<<<<<<< HEAD
- if current_user - if current_user
= lock_file_link(html_options: {class: 'btn btn-sm path-lock'}) = lock_file_link(html_options: {class: 'btn btn-sm path-lock'})
=======
>>>>>>> ce/master
= edit_blob_link if blob_text_viewable?(blob) = edit_blob_link if blob_text_viewable?(blob)
- if current_user - if current_user
= replace_blob_link = replace_blob_link
......
...@@ -9,13 +9,8 @@ ...@@ -9,13 +9,8 @@
.accept-action .accept-action
- if @pipeline && @pipeline.active? - if @pipeline && @pipeline.active?
%span.btn-group %span.btn-group
<<<<<<< HEAD
= button_tag class: "btn btn-info js-merge-when-pipeline-succeeds-button merge-when-pipeline-succeeds", disabled: !@merge_request.approved?, ":disabled" => "disableAcceptance" do = button_tag class: "btn btn-info js-merge-when-pipeline-succeeds-button merge-when-pipeline-succeeds", disabled: !@merge_request.approved?, ":disabled" => "disableAcceptance" do
Merge When Pipeline Succeeds
=======
= button_tag class: "btn btn-info js-merge-when-pipeline-succeeds-button merge-when-pipeline-succeeds" do
Merge when pipeline succeeds Merge when pipeline succeeds
>>>>>>> ce/master
- unless @project.only_allow_merge_if_pipeline_succeeds? - unless @project.only_allow_merge_if_pipeline_succeeds?
= button_tag class: "btn btn-info dropdown-toggle", 'data-toggle' => 'dropdown', disabled: !@merge_request.approved?, ":disabled" => "disableAcceptance" do = button_tag class: "btn btn-info dropdown-toggle", 'data-toggle' => 'dropdown', disabled: !@merge_request.approved?, ":disabled" => "disableAcceptance" do
= icon('caret-down') = icon('caret-down')
...@@ -31,13 +26,8 @@ ...@@ -31,13 +26,8 @@
= icon('warning fw') = icon('warning fw')
Merge immediately Merge immediately
- else - else
<<<<<<< HEAD
= f.button class: "btn btn-grouped js-merge-button accept-merge-request", disabled: !@merge_request.approved?, ":disabled" => "disableAcceptance" do = f.button class: "btn btn-grouped js-merge-button accept-merge-request", disabled: !@merge_request.approved?, ":disabled" => "disableAcceptance" do
Accept Merge Request
=======
= f.button class: "btn btn-grouped js-merge-button accept-merge-request" do
Accept merge request Accept merge request
>>>>>>> ce/master
- if @merge_request.force_remove_source_branch? - if @merge_request.force_remove_source_branch?
.accept-control .accept-control
The source branch will be removed. The source branch will be removed.
......
...@@ -22,12 +22,8 @@ ...@@ -22,12 +22,8 @@
= text_field_tag :project_clone, default_url_to_repo(project), class: "js-select-on-focus form-control", readonly: true = text_field_tag :project_clone, default_url_to_repo(project), class: "js-select-on-focus form-control", readonly: true
.input-group-btn .input-group-btn
<<<<<<< HEAD
= clipboard_button(clipboard_target: '#project_clone', title: "Copy URL to clipboard")
= geo_button(modal_target: '#modal-geo-info') if Gitlab::Geo.secondary?
=======
= clipboard_button(target: '#project_clone', title: "Copy URL to clipboard") = clipboard_button(target: '#project_clone', title: "Copy URL to clipboard")
>>>>>>> ce/master = geo_button(modal_target: '#modal-geo-info') if Gitlab::Geo.secondary?
:javascript :javascript
$('ul.clone-options-dropdown a').on('click',function(e){ $('ul.clone-options-dropdown a').on('click',function(e){
......
...@@ -27,19 +27,11 @@ ...@@ -27,19 +27,11 @@
.scroll-container .scroll-container
%ul.tokens-container.list-unstyled %ul.tokens-container.list-unstyled
%li.input-token %li.input-token
<<<<<<< HEAD
%input.form-control.filtered-search{ placeholder: 'Search or filter results...', data: { id: "filtered-search-#{type.to_s}", 'project-id' => @project.id, 'username-params' => @users.to_json(only: [:id, :username]), 'base-endpoint' => namespace_project_path(@project.namespace, @project) } }
= icon('filter')
%button.clear-search.hidden{ type: 'button' }
= icon('times')
#js-dropdown-hint.filtered-search-input-dropdown-menu.filtered-search-input-dropdown-menu.dropdown-menu.hint-dropdown
=======
%input.form-control.filtered-search{ id: "filtered-search-#{type.to_s}", placeholder: 'Search or filter results...', data: { 'project-id' => @project.id, 'username-params' => @users.to_json(only: [:id, :username]), 'base-endpoint' => namespace_project_path(@project.namespace, @project) } } %input.form-control.filtered-search{ id: "filtered-search-#{type.to_s}", placeholder: 'Search or filter results...', data: { 'project-id' => @project.id, 'username-params' => @users.to_json(only: [:id, :username]), 'base-endpoint' => namespace_project_path(@project.namespace, @project) } }
= icon('filter') = icon('filter')
%button.clear-search.hidden{ type: 'button' } %button.clear-search.hidden{ type: 'button' }
= icon('times') = icon('times')
#js-dropdown-hint.filtered-search-input-dropdown-menu.dropdown-menu.hint-dropdown #js-dropdown-hint.filtered-search-input-dropdown-menu.dropdown-menu.hint-dropdown
>>>>>>> ce/master
%ul{ data: { dropdown: true } } %ul{ data: { dropdown: true } }
%li.filter-dropdown-item{ data: { action: 'submit' } } %li.filter-dropdown-item{ data: { action: 'submit' } }
%button.btn.btn-link %button.btn.btn-link
...@@ -81,7 +73,7 @@ ...@@ -81,7 +73,7 @@
{{name}} {{name}}
%span.dropdown-light-content %span.dropdown-light-content
@{{username}} @{{username}}
<<<<<<< HEAD
- unless board && board.milestone_id - unless board && board.milestone_id
#js-dropdown-milestone.filtered-search-input-dropdown-menu.dropdown-menu{ data: { icon: 'clock-o', hint: 'milestone', tag: '%milestone' } } #js-dropdown-milestone.filtered-search-input-dropdown-menu.dropdown-menu{ data: { icon: 'clock-o', hint: 'milestone', tag: '%milestone' } }
%ul{ data: { dropdown: true } } %ul{ data: { dropdown: true } }
...@@ -99,24 +91,7 @@ ...@@ -99,24 +91,7 @@
%li.filter-dropdown-item %li.filter-dropdown-item
%button.btn.btn-link.js-data-value %button.btn.btn-link.js-data-value
{{title}} {{title}}
=======
#js-dropdown-milestone.filtered-search-input-dropdown-menu.dropdown-menu{ data: { icon: 'clock-o', hint: 'milestone', tag: '%milestone' } }
%ul{ data: { dropdown: true } }
%li.filter-dropdown-item{ data: { value: 'none' } }
%button.btn.btn-link
No Milestone
%li.filter-dropdown-item{ data: { value: 'upcoming' } }
%button.btn.btn-link
Upcoming
%li.filter-dropdown-item{ 'data-value' => 'started' }
%button.btn.btn-link
Started
%li.divider
%ul.filter-dropdown{ data: { dynamic: true, dropdown: true } }
%li.filter-dropdown-item
%button.btn.btn-link.js-data-value
{{title}}
>>>>>>> ce/master
#js-dropdown-label.filtered-search-input-dropdown-menu.dropdown-menu{ data: { icon: 'tag', hint: 'label', tag: '~label', type: 'array' } } #js-dropdown-label.filtered-search-input-dropdown-menu.dropdown-menu{ data: { icon: 'tag', hint: 'label', tag: '~label', type: 'array' } }
%ul{ data: { dropdown: true } } %ul{ data: { dropdown: true } }
%li.filter-dropdown-item{ data: { value: 'none' } } %li.filter-dropdown-item{ data: { value: 'none' } }
...@@ -129,7 +104,6 @@ ...@@ -129,7 +104,6 @@
%span.dropdown-label-box{ style: 'background: {{color}}' } %span.dropdown-label-box{ style: 'background: {{color}}' }
%span.label-title.js-data-value %span.label-title.js-data-value
{{title}} {{title}}
<<<<<<< HEAD
- if type == :issues || type == :boards - if type == :issues || type == :boards
#js-dropdown-weight.filtered-search-input-dropdown-menu.dropdown-menu{ data: { icon: 'balance-scale', hint: 'weight', tag: 'weight' } } #js-dropdown-weight.filtered-search-input-dropdown-menu.dropdown-menu{ data: { icon: 'balance-scale', hint: 'weight', tag: 'weight' } }
...@@ -146,8 +120,6 @@ ...@@ -146,8 +120,6 @@
%li.filter-dropdown-item{ 'data-value' => "#{weight}" } %li.filter-dropdown-item{ 'data-value' => "#{weight}" }
%button.btn.btn-link= weight %button.btn.btn-link= weight
=======
>>>>>>> ce/master
.filter-dropdown-container .filter-dropdown-container
- if type == :boards - if type == :boards
- if can?(current_user, :admin_list, @project) - if can?(current_user, :admin_list, @project)
......
...@@ -148,7 +148,6 @@ constraints(ProjectUrlConstrainer.new) do ...@@ -148,7 +148,6 @@ constraints(ProjectUrlConstrainer.new) do
resource :release, only: [:edit, :update] resource :release, only: [:edit, :update]
end end
<<<<<<< HEAD
## EE-specific ## EE-specific
resources :path_locks, only: [:index, :destroy] do resources :path_locks, only: [:index, :destroy] do
collection do collection do
...@@ -167,9 +166,6 @@ constraints(ProjectUrlConstrainer.new) do ...@@ -167,9 +166,6 @@ constraints(ProjectUrlConstrainer.new) do
resources :push_access_levels, only: [:destroy] resources :push_access_levels, only: [:destroy]
end end
end end
=======
resources :protected_branches, only: [:index, :show, :create, :update, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex }
>>>>>>> ce/master
resources :protected_tags, only: [:index, :show, :create, :update, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex } resources :protected_tags, only: [:index, :show, :create, :update, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex }
resources :variables, only: [:index, :show, :update, :create, :destroy] resources :variables, only: [:index, :show, :update, :create, :destroy]
......
...@@ -841,13 +841,10 @@ ActiveRecord::Schema.define(version: 20170406115029) do ...@@ -841,13 +841,10 @@ ActiveRecord::Schema.define(version: 20170406115029) do
t.text "description_html" t.text "description_html"
t.boolean "lfs_enabled" t.boolean "lfs_enabled"
t.integer "parent_id" t.integer "parent_id"
<<<<<<< HEAD
t.integer "shared_runners_minutes_limit"
t.integer "repository_size_limit", limit: 8
=======
t.boolean "require_two_factor_authentication", default: false, null: false t.boolean "require_two_factor_authentication", default: false, null: false
t.integer "two_factor_grace_period", default: 48, null: false t.integer "two_factor_grace_period", default: 48, null: false
>>>>>>> ce/master t.integer "shared_runners_minutes_limit"
t.integer "repository_size_limit", limit: 8
end end
add_index "namespaces", ["created_at"], name: "index_namespaces_on_created_at", using: :btree add_index "namespaces", ["created_at"], name: "index_namespaces_on_created_at", using: :btree
...@@ -1104,12 +1101,9 @@ ActiveRecord::Schema.define(version: 20170406115029) do ...@@ -1104,12 +1101,9 @@ ActiveRecord::Schema.define(version: 20170406115029) do
t.boolean "lfs_enabled" t.boolean "lfs_enabled"
t.text "description_html" t.text "description_html"
t.boolean "only_allow_merge_if_all_discussions_are_resolved" t.boolean "only_allow_merge_if_all_discussions_are_resolved"
<<<<<<< HEAD t.integer "auto_cancel_pending_pipelines", default: 0, null: false
t.integer "repository_size_limit", limit: 8 t.integer "repository_size_limit", limit: 8
t.integer "sync_time", default: 60, null: false t.integer "sync_time", default: 60, null: false
=======
t.integer "auto_cancel_pending_pipelines", default: 0, null: false
>>>>>>> ce/master
t.boolean "printing_merge_request_link_enabled", default: true, null: false t.boolean "printing_merge_request_link_enabled", default: true, null: false
t.string "import_jid" t.string "import_jid"
t.boolean "service_desk_enabled" t.boolean "service_desk_enabled"
...@@ -1188,7 +1182,6 @@ ActiveRecord::Schema.define(version: 20170406115029) do ...@@ -1188,7 +1182,6 @@ ActiveRecord::Schema.define(version: 20170406115029) do
add_index "protected_tags", ["project_id"], name: "index_protected_tags_on_project_id", using: :btree add_index "protected_tags", ["project_id"], name: "index_protected_tags_on_project_id", using: :btree
<<<<<<< HEAD
create_table "push_rules", force: :cascade do |t| create_table "push_rules", force: :cascade do |t|
t.string "force_push_regex" t.string "force_push_regex"
t.string "delete_branch_regex" t.string "delete_branch_regex"
...@@ -1207,8 +1200,6 @@ ActiveRecord::Schema.define(version: 20170406115029) do ...@@ -1207,8 +1200,6 @@ ActiveRecord::Schema.define(version: 20170406115029) do
add_index "push_rules", ["project_id"], name: "index_push_rules_on_project_id", using: :btree add_index "push_rules", ["project_id"], name: "index_push_rules_on_project_id", using: :btree
=======
>>>>>>> ce/master
create_table "releases", force: :cascade do |t| create_table "releases", force: :cascade do |t|
t.string "tag" t.string "tag"
t.text "description" t.text "description"
...@@ -1514,12 +1505,9 @@ ActiveRecord::Schema.define(version: 20170406115029) do ...@@ -1514,12 +1505,9 @@ ActiveRecord::Schema.define(version: 20170406115029) do
t.boolean "auditor", default: false, null: false t.boolean "auditor", default: false, null: false
t.boolean "ghost" t.boolean "ghost"
t.boolean "notified_of_own_activity" t.boolean "notified_of_own_activity"
<<<<<<< HEAD
t.boolean "support_bot"
=======
t.boolean "require_two_factor_authentication_from_group", default: false, null: false t.boolean "require_two_factor_authentication_from_group", default: false, null: false
t.integer "two_factor_grace_period", default: 48, null: false t.integer "two_factor_grace_period", default: 48, null: false
>>>>>>> ce/master t.boolean "support_bot"
end end
add_index "users", ["admin"], name: "index_users_on_admin", using: :btree add_index "users", ["admin"], name: "index_users_on_admin", using: :btree
...@@ -1602,17 +1590,11 @@ ActiveRecord::Schema.define(version: 20170406115029) do ...@@ -1602,17 +1590,11 @@ ActiveRecord::Schema.define(version: 20170406115029) do
add_foreign_key "protected_branch_merge_access_levels", "users" add_foreign_key "protected_branch_merge_access_levels", "users"
add_foreign_key "protected_branch_push_access_levels", "namespaces", column: "group_id" add_foreign_key "protected_branch_push_access_levels", "namespaces", column: "group_id"
add_foreign_key "protected_branch_push_access_levels", "protected_branches" add_foreign_key "protected_branch_push_access_levels", "protected_branches"
<<<<<<< HEAD
add_foreign_key "protected_branch_push_access_levels", "users" add_foreign_key "protected_branch_push_access_levels", "users"
add_foreign_key "protected_tag_create_access_levels", "namespaces", column: "group_id" add_foreign_key "protected_tag_create_access_levels", "namespaces", column: "group_id"
add_foreign_key "protected_tag_create_access_levels", "protected_tags" add_foreign_key "protected_tag_create_access_levels", "protected_tags"
add_foreign_key "protected_tag_create_access_levels", "users" add_foreign_key "protected_tag_create_access_levels", "users"
add_foreign_key "remote_mirrors", "projects" add_foreign_key "remote_mirrors", "projects"
=======
add_foreign_key "protected_tag_create_access_levels", "namespaces", column: "group_id"
add_foreign_key "protected_tag_create_access_levels", "protected_tags"
add_foreign_key "protected_tag_create_access_levels", "users"
>>>>>>> ce/master
add_foreign_key "subscriptions", "projects", on_delete: :cascade add_foreign_key "subscriptions", "projects", on_delete: :cascade
add_foreign_key "system_note_metadata", "notes", name: "fk_d83a918cb1", on_delete: :cascade add_foreign_key "system_note_metadata", "notes", name: "fk_d83a918cb1", on_delete: :cascade
add_foreign_key "timelogs", "issues", name: "fk_timelogs_issues_issue_id", on_delete: :cascade add_foreign_key "timelogs", "issues", name: "fk_timelogs_issues_issue_id", on_delete: :cascade
......
...@@ -25,22 +25,15 @@ All technical content published by GitLab lives in the documentation, including: ...@@ -25,22 +25,15 @@ All technical content published by GitLab lives in the documentation, including:
- [GitLab basics](gitlab-basics/README.md) Find step by step how to start working on your commandline and on GitLab. - [GitLab basics](gitlab-basics/README.md) Find step by step how to start working on your commandline and on GitLab.
- [GitLab Pages](user/project/pages/index.md) Using GitLab Pages. - [GitLab Pages](user/project/pages/index.md) Using GitLab Pages.
- [Importing and exporting projects between instances](user/project/settings/import_export.md). - [Importing and exporting projects between instances](user/project/settings/import_export.md).
<<<<<<< HEAD
- [Koding](user/project/koding.md) Learn how to use Koding, the online IDE.
=======
- [Importing to GitLab](workflow/importing/README.md) Import your projects from GitHub, Bitbucket, GitLab.com, FogBugz and SVN into GitLab. - [Importing to GitLab](workflow/importing/README.md) Import your projects from GitHub, Bitbucket, GitLab.com, FogBugz and SVN into GitLab.
>>>>>>> ce/master
- [Markdown](user/markdown.md) GitLab's advanced formatting system. - [Markdown](user/markdown.md) GitLab's advanced formatting system.
- [Migrating from SVN](workflow/importing/migrating_from_svn.md) Convert a SVN repository to Git and GitLab. - [Migrating from SVN](workflow/importing/migrating_from_svn.md) Convert a SVN repository to Git and GitLab.
- [Permissions](user/permissions.md) Learn what each role in a project (external/guest/reporter/developer/master/owner) can do. - [Permissions](user/permissions.md) Learn what each role in a project (external/guest/reporter/developer/master/owner) can do.
- [Profile Settings](profile/README.md) - [Profile Settings](profile/README.md)
- [Project Services](user/project/integrations/project_services.md) Integrate a project with external services, such as CI and chat. - [Project Services](user/project/integrations/project_services.md) Integrate a project with external services, such as CI and chat.
- [Public access](public_access/public_access.md) Learn how you can allow public and internal access to projects. - [Public access](public_access/public_access.md) Learn how you can allow public and internal access to projects.
<<<<<<< HEAD
- [Analytics](analytics/README.md) - [Analytics](analytics/README.md)
=======
- [Search through GitLab](user/search/index.md): Search for issues, merge requests, projects, groups, todos, and issues in Issue Boards. - [Search through GitLab](user/search/index.md): Search for issues, merge requests, projects, groups, todos, and issues in Issue Boards.
>>>>>>> ce/master
- [Snippets](user/snippets.md) Snippets allow you to create little bits of code. - [Snippets](user/snippets.md) Snippets allow you to create little bits of code.
- [SSH](ssh/README.md) Setup your ssh keys and deploy keys for secure access to your projects. - [SSH](ssh/README.md) Setup your ssh keys and deploy keys for secure access to your projects.
- [Webhooks](user/project/integrations/webhooks.md) Let GitLab notify you when new code has been pushed to your project. - [Webhooks](user/project/integrations/webhooks.md) Let GitLab notify you when new code has been pushed to your project.
...@@ -51,19 +44,11 @@ All technical content published by GitLab lives in the documentation, including: ...@@ -51,19 +44,11 @@ All technical content published by GitLab lives in the documentation, including:
- [Upload your GitLab License](user/admin_area/license.md) Upload the license you purchased for GitLab Enterprise Edition to unlock its features. - [Upload your GitLab License](user/admin_area/license.md) Upload the license you purchased for GitLab Enterprise Edition to unlock its features.
- [Audit Events](administration/audit_events.md) Check how user access changed in projects and groups. - [Audit Events](administration/audit_events.md) Check how user access changed in projects and groups.
- [Access restrictions](user/admin_area/settings/visibility_and_access_controls.md#enabled-git-access-protocols) Define which Git access protocols can be used to talk to GitLab - [Access restrictions](user/admin_area/settings/visibility_and_access_controls.md#enabled-git-access-protocols) Define which Git access protocols can be used to talk to GitLab
<<<<<<< HEAD - [Authentication/Authorization](administration/auth/README.md) Configure external authentication with LDAP, SAML, CAS and additional Omniauth providers.
- [Authentication/Authorization](administration/auth/README.md) Configure
external authentication with LDAP, SAML, CAS and additional Omniauth providers.
- [Changing the appearance of the login page](customization/branded_login_page.md) Make the login page branded for your GitLab instance. - [Changing the appearance of the login page](customization/branded_login_page.md) Make the login page branded for your GitLab instance.
- [Custom git hooks](administration/custom_hooks.md) Custom git hooks (on the filesystem) for when webhooks aren't enough.
- [Email](tools/email.md) Email GitLab users from GitLab - [Email](tools/email.md) Email GitLab users from GitLab
- [Push Rules](push_rules/push_rules.md) Advanced push rules for your project. - [Push Rules](push_rules/push_rules.md) Advanced push rules for your project.
- [Help message](customization/help_message.md) Set information about administrators of your GitLab instance. - [Help message](customization/help_message.md) Set information about administrators of your GitLab instance.
- [Install](install/README.md) Requirements, directory structures and installation from source.
- [Integration](integration/README.md) How to integrate with systems such as JIRA, Redmine, LDAP and Twitter.
- [Restart GitLab](administration/restart_gitlab.md) Learn how to restart GitLab and its components.
=======
- [Authentication/Authorization](administration/auth/README.md) Configure external authentication with LDAP, SAML, CAS and additional Omniauth providers.
- [Container Registry](administration/container_registry.md) Configure Docker Registry with GitLab. - [Container Registry](administration/container_registry.md) Configure Docker Registry with GitLab.
- [Custom Git hooks](administration/custom_hooks.md) Custom Git hooks (on the filesystem) for when webhooks aren't enough. - [Custom Git hooks](administration/custom_hooks.md) Custom Git hooks (on the filesystem) for when webhooks aren't enough.
- [Debugging Tips](administration/troubleshooting/debug.md) Tips to debug problems when things go wrong - [Debugging Tips](administration/troubleshooting/debug.md) Tips to debug problems when things go wrong
...@@ -77,7 +62,6 @@ All technical content published by GitLab lives in the documentation, including: ...@@ -77,7 +62,6 @@ All technical content published by GitLab lives in the documentation, including:
- [Housekeeping](administration/housekeeping.md) Keep your Git repository tidy and fast. - [Housekeeping](administration/housekeeping.md) Keep your Git repository tidy and fast.
- [Install](install/README.md) Requirements, directory structures and installation from source. - [Install](install/README.md) Requirements, directory structures and installation from source.
- [Integration](integration/README.md) How to integrate with systems such as JIRA, Redmine, Twitter. - [Integration](integration/README.md) How to integrate with systems such as JIRA, Redmine, Twitter.
>>>>>>> ce/master
- [Issue closing pattern](administration/issue_closing_pattern.md) Customize how to close an issue from commit messages. - [Issue closing pattern](administration/issue_closing_pattern.md) Customize how to close an issue from commit messages.
- [Koding](administration/integration/koding.md) Set up Koding to use with GitLab. - [Koding](administration/integration/koding.md) Set up Koding to use with GitLab.
- [Libravatar](customization/libravatar.md) Use Libravatar instead of Gravatar for user avatars. - [Libravatar](customization/libravatar.md) Use Libravatar instead of Gravatar for user avatars.
...@@ -97,29 +81,12 @@ All technical content published by GitLab lives in the documentation, including: ...@@ -97,29 +81,12 @@ All technical content published by GitLab lives in the documentation, including:
- [Update](update/README.md) Update guides to upgrade your installation. - [Update](update/README.md) Update guides to upgrade your installation.
- [Web terminals](administration/integration/terminal.md) Provide terminal access to environments from within GitLab. - [Web terminals](administration/integration/terminal.md) Provide terminal access to environments from within GitLab.
- [Welcome message](customization/welcome_message.md) Add a custom welcome message to the sign-in page. - [Welcome message](customization/welcome_message.md) Add a custom welcome message to the sign-in page.
<<<<<<< HEAD
- [Header logo](customization/branded_page_and_email_header.md) Change the logo on the overall page and email header.
- [Reply by email](administration/reply_by_email.md) Allow users to comment on issues and merge requests by replying to notification emails.
- [Migrate GitLab CI to CE/EE](migrate_ci_to_ce/README.md) Follow this guide to migrate your existing GitLab CI data to GitLab CE/EE.
- [Downgrade back to CE](downgrade_ee_to_ce/README.md) Follow this guide if you need to downgrade from EE to CE. - [Downgrade back to CE](downgrade_ee_to_ce/README.md) Follow this guide if you need to downgrade from EE to CE.
- [Git LFS configuration](workflow/lfs/lfs_administration.md)
- [Housekeeping](administration/housekeeping.md) Keep your Git repository tidy and fast.
- [GitLab Pages configuration](administration/pages/index.md) Configure GitLab Pages.
- [Elasticsearch](integration/elasticsearch.md) Enable Elasticsearch. - [Elasticsearch](integration/elasticsearch.md) Enable Elasticsearch.
- [GitLab GEO](gitlab-geo/README.md) Configure GitLab GEO, a secondary read-only GitLab instance. - [GitLab GEO](gitlab-geo/README.md) Configure GitLab GEO, a secondary read-only GitLab instance.
- [GitLab performance monitoring with InfluxDB](administration/monitoring/performance/introduction.md) Configure GitLab and InfluxDB for measuring performance metrics.
- [GitLab performance monitoring with Prometheus](administration/monitoring/prometheus/index.md) Configure GitLab and Prometheus for measuring performance metrics.
- [Request Profiling](administration/monitoring/performance/request_profiling.md) Get a detailed profile on slow requests.
- [Monitoring uptime](user/admin_area/monitoring/health_check.md) Check the server status using the health check endpoint.
- [Debugging Tips](administration/troubleshooting/debug.md) Tips to debug problems when things go wrong
- [Sidekiq Troubleshooting](administration/troubleshooting/sidekiq.md) Debug when Sidekiq appears hung and is not processing jobs.
- [High Availability](administration/high_availability/README.md) Configure multiple servers for scaling or high availability.
- [Container Registry](administration/container_registry.md) Configure Docker Registry with GitLab.
- [Repository restrictions](user/admin_area/settings/account_and_limit_settings.md#repository-size-limit) Define size restrictions for your repositories to limit the space they occupy in your storage device. Includes LFS objects. - [Repository restrictions](user/admin_area/settings/account_and_limit_settings.md#repository-size-limit) Define size restrictions for your repositories to limit the space they occupy in your storage device. Includes LFS objects.
- [Auditor users](administration/auditor_users.md) Create auditor users, with read-only access to the entire system. - [Auditor users](administration/auditor_users.md) Create auditor users, with read-only access to the entire system.
- [Database load balancing](administration/database_load_balancing.md) Distribute database queries amongst multiple database servers. - [Database load balancing](administration/database_load_balancing.md) Distribute database queries amongst multiple database servers.
=======
>>>>>>> ce/master
## Contributor documentation ## Contributor documentation
......
...@@ -333,7 +333,6 @@ Creates a new project issue. ...@@ -333,7 +333,6 @@ Creates a new project issue.
POST /projects/:id/issues POST /projects/:id/issues
``` ```
<<<<<<< HEAD
|-------------------------------------------+---------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------| |-------------------------------------------+---------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------|
| Attribute | Type | Required | Description | | Attribute | Type | Required | Description |
|-------------------------------------------+---------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------| |-------------------------------------------+---------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------|
...@@ -352,21 +351,6 @@ POST /projects/:id/issues ...@@ -352,21 +351,6 @@ POST /projects/:id/issues
| - | - | - | as resolved. Use in combination with `merge_request_to_resolve_discussions_of`. | | - | - | - | as resolved. Use in combination with `merge_request_to_resolve_discussions_of`. |
| `weight` | integer | no | The weight of the issue in range 0 to 9 | | `weight` | integer | no | The weight of the issue in range 0 to 9 |
|-------------------------------------------+---------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------| |-------------------------------------------+---------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------|
=======
| Attribute | Type | Required | Description |
|-------------------------------------------|---------|----------|--------------|
| `id` | integer | yes | The ID of a project |
| `title` | string | yes | The title of an issue |
| `description` | string | no | The description of an issue |
| `confidential` | boolean | no | Set an issue to be confidential. Default is `false`. |
| `assignee_id` | integer | no | The ID of a user to assign issue |
| `milestone_id` | integer | no | The ID of a milestone to assign issue |
| `labels` | string | no | Comma-separated label names for an issue |
| `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. `2016-03-11T03:45:40Z` (requires admin or project owner rights) |
| `due_date` | string | no | Date time string in the format YEAR-MONTH-DAY, e.g. `2016-03-11` |
| `merge_request_to_resolve_discussions_of` | integer | no | The IID of a merge request in which to resolve all issues. This will fill the issue with a default description and mark all discussions as resolved. When passing a description or title, these values will take precedence over the default values.|
| `discussion_to_resolve` | string | no | The ID of a discussion to resolve. This will fill in the issue with a default description and mark the discussion as resolved. Use in combination with `merge_request_to_resolve_discussions_of`. |
>>>>>>> ce/master
```bash ```bash
curl --request POST --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/projects/4/issues?title=Issues%20with%20auth&labels=bug curl --request POST --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/projects/4/issues?title=Issues%20with%20auth&labels=bug
...@@ -428,11 +412,8 @@ PUT /projects/:id/issues/:issue_iid ...@@ -428,11 +412,8 @@ PUT /projects/:id/issues/:issue_iid
| `state_event` | string | no | The state event of an issue. Set `close` to close the issue and `reopen` to reopen it | | `state_event` | string | no | The state event of an issue. Set `close` to close the issue and `reopen` to reopen it |
| `updated_at` | string | no | Date time string, ISO 8601 formatted, e.g. `2016-03-11T03:45:40Z` (requires admin or project owner rights) | | `updated_at` | string | no | Date time string, ISO 8601 formatted, e.g. `2016-03-11T03:45:40Z` (requires admin or project owner rights) |
| `due_date` | string | no | Date time string in the format YEAR-MONTH-DAY, e.g. `2016-03-11` | | `due_date` | string | no | Date time string in the format YEAR-MONTH-DAY, e.g. `2016-03-11` |
<<<<<<< HEAD
| `weight` | integer | no | The weight of the issue in range 0 to 9 | | `weight` | integer | no | The weight of the issue in range 0 to 9 |
|----------------+---------+----------+------------------------------------------------------------------------------------------------------------| |----------------+---------+----------+------------------------------------------------------------------------------------------------------------|
=======
>>>>>>> ce/master
```bash ```bash
curl --request PUT --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/projects/4/issues/85?state_event=close curl --request PUT --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/projects/4/issues/85?state_event=close
......
...@@ -62,7 +62,6 @@ module Gitlab ...@@ -62,7 +62,6 @@ module Gitlab
return if skip_authorization return if skip_authorization
return unless @tag_name return unless @tag_name
<<<<<<< HEAD
if tag_exists? && user_access.cannot_do_action?(:admin_project) if tag_exists? && user_access.cannot_do_action?(:admin_project)
return "You are not allowed to change existing tags on this project." return "You are not allowed to change existing tags on this project."
...@@ -76,21 +75,6 @@ module Gitlab ...@@ -76,21 +75,6 @@ module Gitlab
return "Protected tags cannot be updated." if update? return "Protected tags cannot be updated." if update?
return "Protected tags cannot be deleted." if deletion? return "Protected tags cannot be deleted." if deletion?
=======
if tag_exists? && user_access.cannot_do_action?(:admin_project)
return "You are not allowed to change existing tags on this project."
end
protected_tag_checks
end
def protected_tag_checks
return unless tag_protected?
return "Protected tags cannot be updated." if update?
return "Protected tags cannot be deleted." if deletion?
>>>>>>> ce/master
unless user_access.can_create_tag?(@tag_name) unless user_access.can_create_tag?(@tag_name)
return "You are not allowed to create this tag as it is protected." return "You are not allowed to create this tag as it is protected."
end end
......
...@@ -8,16 +8,10 @@ module Gitlab ...@@ -8,16 +8,10 @@ module Gitlab
module Email module Email
module Handler module Handler
HANDLERS = [ HANDLERS = [
<<<<<<< HEAD
EE::ServiceDeskHandler, EE::ServiceDeskHandler,
UnsubscribeHandler, UnsubscribeHandler,
CreateNoteHandler, CreateNoteHandler,
CreateIssueHandler, CreateIssueHandler,
=======
UnsubscribeHandler,
CreateNoteHandler,
CreateIssueHandler
>>>>>>> ce/master
].freeze ].freeze
def self.for(mail, mail_key) def self.for(mail, mail_key)
......
...@@ -22,11 +22,7 @@ feature 'Editing file blob', feature: true, js: true do ...@@ -22,11 +22,7 @@ feature 'Editing file blob', feature: true, js: true do
wait_for_ajax wait_for_ajax
find('.js-edit-blob').click find('.js-edit-blob').click
execute_script('ace.edit("editor").setValue("class NextFeature\nend\n")') execute_script('ace.edit("editor").setValue("class NextFeature\nend\n")')
<<<<<<< HEAD
click_button 'Commit Changes'
=======
click_button 'Commit changes' click_button 'Commit changes'
>>>>>>> ce/master
end end
context 'from MR diff' do context 'from MR diff' do
......
...@@ -31,11 +31,7 @@ RSpec.shared_examples "protected tags > access control > CE" do ...@@ -31,11 +31,7 @@ RSpec.shared_examples "protected tags > access control > CE" do
within(".protected-tags-list") do within(".protected-tags-list") do
find(".js-allowed-to-create").click find(".js-allowed-to-create").click
<<<<<<< HEAD
=======
>>>>>>> ce/master
within('.js-allowed-to-create-container') do within('.js-allowed-to-create-container') do
expect(first("li")).to have_content("Roles") expect(first("li")).to have_content("Roles")
click_on access_type_name click_on access_type_name
......
...@@ -138,10 +138,7 @@ merge_access_levels: ...@@ -138,10 +138,7 @@ merge_access_levels:
push_access_levels: push_access_levels:
- user - user
- protected_branch - protected_branch
<<<<<<< HEAD
- group - group
=======
>>>>>>> ce/master
create_access_levels: create_access_levels:
- protected_tag - protected_tag
container_repositories: container_repositories:
......
...@@ -358,11 +358,8 @@ ProtectedBranch::PushAccessLevel: ...@@ -358,11 +358,8 @@ ProtectedBranch::PushAccessLevel:
- access_level - access_level
- created_at - created_at
- updated_at - updated_at
<<<<<<< HEAD
- user_id - user_id
- group_id - group_id
=======
>>>>>>> ce/master
ProtectedTag::CreateAccessLevel: ProtectedTag::CreateAccessLevel:
- id - id
- protected_tag_id - protected_tag_id
......
...@@ -50,7 +50,6 @@ describe ChatMessage::MergeMessage, models: true do ...@@ -50,7 +50,6 @@ describe ChatMessage::MergeMessage, models: true do
end end
end end
<<<<<<< HEAD
context 'approval' do context 'approval' do
before do before do
args[:object_attributes][:action] = 'approved' args[:object_attributes][:action] = 'approved'
...@@ -64,10 +63,7 @@ describe ChatMessage::MergeMessage, models: true do ...@@ -64,10 +63,7 @@ describe ChatMessage::MergeMessage, models: true do
end end
end end
context 'close' do
=======
context 'with markdown' do context 'with markdown' do
>>>>>>> ce/master
before do before do
args[:markdown] = true args[:markdown] = true
end end
...@@ -86,13 +82,6 @@ describe ChatMessage::MergeMessage, models: true do ...@@ -86,13 +82,6 @@ describe ChatMessage::MergeMessage, models: true do
end end
end end
<<<<<<< HEAD
it 'returns a message regarding closing of merge requests' do
expect(subject.pretext).to eq(
'test.user closed <http://somewhere.com/merge_requests/100|merge request !100> '\
'in <http://somewhere.com|project_name>: *Issue title*')
expect(subject.attachments).to be_empty
=======
context 'close' do context 'close' do
before do before do
args[:object_attributes][:state] = 'closed' args[:object_attributes][:state] = 'closed'
...@@ -109,7 +98,6 @@ describe ChatMessage::MergeMessage, models: true do ...@@ -109,7 +98,6 @@ describe ChatMessage::MergeMessage, models: true do
image: 'http://someavatar.com' image: 'http://someavatar.com'
}) })
end end
>>>>>>> ce/master
end end
end end
end end
...@@ -2,11 +2,6 @@ require 'spec_helper' ...@@ -2,11 +2,6 @@ require 'spec_helper'
describe ChatMessage::PipelineMessage do describe ChatMessage::PipelineMessage do
subject { described_class.new(args) } subject { described_class.new(args) }
<<<<<<< HEAD
let(:user) { { name: 'hacker' } }
=======
>>>>>>> ce/master
let(:user) { { name: 'hacker' } } let(:user) { { name: 'hacker' } }
let(:args) do let(:args) do
......
...@@ -1497,7 +1497,6 @@ describe Project, models: true do ...@@ -1497,7 +1497,6 @@ describe Project, models: true do
end end
end end
<<<<<<< HEAD
describe 'handling import URL' do describe 'handling import URL' do
context 'when project is a mirror' do context 'when project is a mirror' do
it 'returns the full URL' do it 'returns the full URL' do
...@@ -1520,8 +1519,6 @@ describe Project, models: true do ...@@ -1520,8 +1519,6 @@ describe Project, models: true do
end end
end end
=======
>>>>>>> ce/master
describe '#user_can_push_to_empty_repo?' do describe '#user_can_push_to_empty_repo?' do
let(:project) { create(:empty_project) } let(:project) { create(:empty_project) }
let(:user) { create(:user) } let(:user) { create(:user) }
...@@ -1595,7 +1592,6 @@ describe Project, models: true do ...@@ -1595,7 +1592,6 @@ describe Project, models: true do
context 'when tags are present for multi-level registries' do context 'when tags are present for multi-level registries' do
before do before do
create(:container_repository, project: project, name: 'image') create(:container_repository, project: project, name: 'image')
<<<<<<< HEAD
stub_container_registry_tags(repository: /image/, stub_container_registry_tags(repository: /image/,
tags: %w[latest rc1]) tags: %w[latest rc1])
...@@ -1612,32 +1608,11 @@ describe Project, models: true do ...@@ -1612,32 +1608,11 @@ describe Project, models: true do
tags: %w[latest rc1 pre1]) tags: %w[latest rc1 pre1])
end end
=======
stub_container_registry_tags(repository: /image/,
tags: %w[latest rc1])
end
>>>>>>> ce/master
it 'should have image tags' do
expect(project).to have_container_registry_tags
end
end
<<<<<<< HEAD
=======
context 'when tags are present for root repository' do
before do
stub_container_registry_tags(repository: project.full_path,
tags: %w[latest rc1 pre1])
end
it 'should have image tags' do it 'should have image tags' do
expect(project).to have_container_registry_tags expect(project).to have_container_registry_tags
end end
end end
>>>>>>> ce/master
context 'when there are no tags at all' do context 'when there are no tags at all' do
before do before do
stub_container_registry_tags(repository: :any, tags: []) stub_container_registry_tags(repository: :any, tags: [])
...@@ -1665,7 +1640,6 @@ describe Project, models: true do ...@@ -1665,7 +1640,6 @@ describe Project, models: true do
expect(project).to receive(:container_repositories) expect(project).to receive(:container_repositories)
expect(project).not_to have_container_registry_tags expect(project).not_to have_container_registry_tags
end end
<<<<<<< HEAD
end end
end end
...@@ -1704,8 +1678,6 @@ describe Project, models: true do ...@@ -1704,8 +1678,6 @@ describe Project, models: true do
project.add_import_job project.add_import_job
expect(project.reload.import_status).to eq('finished') expect(project.reload.import_status).to eq('finished')
=======
>>>>>>> ce/master
end end
end end
......
...@@ -116,7 +116,6 @@ describe Projects::DestroyService, services: true do ...@@ -116,7 +116,6 @@ describe Projects::DestroyService, services: true do
tags: ['tag']) tags: ['tag'])
project.container_repositories << container_repository project.container_repositories << container_repository
end end
<<<<<<< HEAD
context 'when image repository deletion succeeds' do context 'when image repository deletion succeeds' do
it 'removes tags' do it 'removes tags' do
...@@ -132,23 +131,6 @@ describe Projects::DestroyService, services: true do ...@@ -132,23 +131,6 @@ describe Projects::DestroyService, services: true do
expect_any_instance_of(ContainerRepository) expect_any_instance_of(ContainerRepository)
.to receive(:delete_tags!).and_return(false) .to receive(:delete_tags!).and_return(false)
=======
context 'when image repository deletion succeeds' do
it 'removes tags' do
expect_any_instance_of(ContainerRepository)
.to receive(:delete_tags!).and_return(true)
destroy_project(project, user)
end
end
context 'when image repository deletion fails' do
it 'raises an exception' do
expect_any_instance_of(ContainerRepository)
.to receive(:delete_tags!).and_return(false)
>>>>>>> ce/master
expect{ destroy_project(project, user) } expect{ destroy_project(project, user) }
.to raise_error(ActiveRecord::RecordNotDestroyed) .to raise_error(ActiveRecord::RecordNotDestroyed)
end end
...@@ -160,23 +142,6 @@ describe Projects::DestroyService, services: true do ...@@ -160,23 +142,6 @@ describe Projects::DestroyService, services: true do
stub_container_registry_tags(repository: project.full_path, stub_container_registry_tags(repository: project.full_path,
tags: ['tag']) tags: ['tag'])
end end
<<<<<<< HEAD
context 'when image repository tags deletion succeeds' do
it 'removes tags' do
expect_any_instance_of(ContainerRepository)
.to receive(:delete_tags!).and_return(true)
destroy_project(project, user)
end
end
context 'when image repository tags deletion fails' do
it 'raises an exception' do
expect_any_instance_of(ContainerRepository)
.to receive(:delete_tags!).and_return(false)
=======
context 'when image repository tags deletion succeeds' do context 'when image repository tags deletion succeeds' do
it 'removes tags' do it 'removes tags' do
...@@ -192,7 +157,6 @@ describe Projects::DestroyService, services: true do ...@@ -192,7 +157,6 @@ describe Projects::DestroyService, services: true do
expect_any_instance_of(ContainerRepository) expect_any_instance_of(ContainerRepository)
.to receive(:delete_tags!).and_return(false) .to receive(:delete_tags!).and_return(false)
>>>>>>> ce/master
expect { destroy_project(project, user) } expect { destroy_project(project, user) }
.to raise_error(Projects::DestroyService::DestroyError) .to raise_error(Projects::DestroyService::DestroyError)
end end
......
...@@ -4035,15 +4035,11 @@ select2@3.5.2-browserify: ...@@ -4035,15 +4035,11 @@ select2@3.5.2-browserify:
version "3.5.2-browserify" version "3.5.2-browserify"
resolved "https://registry.yarnpkg.com/select2/-/select2-3.5.2-browserify.tgz#dc4dafda38d67a734e8a97a46f0d3529ae05391d" resolved "https://registry.yarnpkg.com/select2/-/select2-3.5.2-browserify.tgz#dc4dafda38d67a734e8a97a46f0d3529ae05391d"
<<<<<<< HEAD
select@^1.1.2: select@^1.1.2:
version "1.1.2" version "1.1.2"
resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@~5.3.0:
=======
"semver@2 || 3 || 4 || 5", semver@^5.3.0: "semver@2 || 3 || 4 || 5", semver@^5.3.0:
>>>>>>> ce/master
version "5.3.0" version "5.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
...@@ -4461,19 +4457,13 @@ timers-browserify@^2.0.2: ...@@ -4461,19 +4457,13 @@ timers-browserify@^2.0.2:
dependencies: dependencies:
setimmediate "^1.0.4" setimmediate "^1.0.4"
<<<<<<< HEAD
tiny-emitter@^1.0.0: tiny-emitter@^1.0.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-1.1.0.tgz#ab405a21ffed814a76c19739648093d70654fecb" resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-1.1.0.tgz#ab405a21ffed814a76c19739648093d70654fecb"
tmp@0.0.28, tmp@0.0.x:
version "0.0.28"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120"
=======
tmp@0.0.31, tmp@0.0.x: tmp@0.0.31, tmp@0.0.x:
version "0.0.31" version "0.0.31"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7"
>>>>>>> ce/master
dependencies: dependencies:
os-tmpdir "~1.0.1" os-tmpdir "~1.0.1"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment