Commit 0472a881 authored by Nick Thomas's avatar Nick Thomas

Fix merge conflicts

parent 14bdd022
......@@ -31,7 +31,6 @@ gem 'omniauth-gitlab', '~> 1.0.2'
gem 'omniauth-google-oauth2', '~> 0.4.1'
gem 'omniauth-kerberos', '~> 0.3.0', group: :kerberos
gem 'omniauth-oauth2-generic', '~> 0.2.2'
<<<<<<< HEAD
gem 'omniauth-saml', '~> 1.7.0'
gem 'omniauth-shibboleth', '~> 1.2.0'
gem 'omniauth-twitter', '~> 1.2.0'
......@@ -40,15 +39,6 @@ gem 'gssapi', group: :kerberos
gem 'omniauth-authentiq', '~> 0.3.0'
gem 'rack-oauth2', '~> 1.2.1'
gem 'jwt', '~> 1.5.6'
=======
gem 'omniauth-saml', '~> 1.7.0'
gem 'omniauth-shibboleth', '~> 1.2.0'
gem 'omniauth-twitter', '~> 1.2.0'
gem 'omniauth_crowd', '~> 2.2.0'
gem 'omniauth-authentiq', '~> 0.3.0'
gem 'rack-oauth2', '~> 1.2.1'
gem 'jwt', '~> 1.5.6'
>>>>>>> ce/master
# Spam and anti-bot protection
gem 'recaptcha', '~> 3.0', require: 'recaptcha/rails'
......@@ -256,7 +246,6 @@ gem 'font-awesome-rails', '~> 4.7'
gem 'gemojione', '~> 3.0'
gem 'gon', '~> 6.1.0'
gem 'jquery-atwho-rails', '~> 1.3.2'
<<<<<<< HEAD
gem 'jquery-rails', '~> 4.1.0'
gem 'request_store', '~> 1.3'
gem 'select2-rails', '~> 3.5.9'
......@@ -264,14 +253,6 @@ gem 'virtus', '~> 1.0.1'
gem 'net-ssh', '~> 3.0.1'
gem 'base32', '~> 0.3.0'
gem "gitlab-license", "~> 1.0"
=======
gem 'jquery-rails', '~> 4.1.0'
gem 'request_store', '~> 1.3'
gem 'select2-rails', '~> 3.5.9'
gem 'virtus', '~> 1.0.1'
gem 'net-ssh', '~> 3.0.1'
gem 'base32', '~> 0.3.0'
>>>>>>> ce/master
# Sentry integration
gem 'sentry-raven', '~> 2.0.0'
......
......@@ -34,12 +34,9 @@ import PrometheusGraph from './monitoring/prometheus_graph'; // TODO: Maybe Make
/* global ProjectShow */
/* global Labels */
/* global Shortcuts */
<<<<<<< HEAD
/* global WeightSelect */
/* global AdminEmailSelect */
=======
import Issue from './issue';
>>>>>>> ce/master
import BindInOut from './behaviors/bind_in_out';
import GroupsList from './groups_list';
......@@ -293,7 +290,6 @@ const UserCallout = require('./user_callout');
case 'search:show':
new Search();
break;
<<<<<<< HEAD
case 'projects:mirrors:show':
case 'projects:mirrors:update':
new UsersSelect();
......@@ -301,8 +297,6 @@ const UserCallout = require('./user_callout');
case 'admin:emails:show':
new AdminEmailSelect();
break;
=======
>>>>>>> ce/master
case 'projects:repository:show':
new gl.ProtectedBranchCreate();
new gl.ProtectedBranchEditList();
......
......@@ -80,32 +80,6 @@
}
// Determines the full search query (visual tokens + input)
<<<<<<< HEAD
static getSearchQuery() {
const tokensContainer = document.querySelector('.tokens-container');
const values = [];
[].forEach.call(tokensContainer.querySelectorAll('.js-visual-token'), (token) => {
const name = token.querySelector('.name');
const value = token.querySelector('.value');
const symbol = value && value.dataset.symbol ? value.dataset.symbol : '';
let valueText = '';
if (value && value.innerText) {
valueText = value.innerText;
}
if (token.className.indexOf('filtered-search-token') !== -1) {
values.push(`${name.innerText.toLowerCase()}:${symbol}${valueText}`);
} else {
values.push(name.innerText);
}
});
const input = document.querySelector('.filtered-search');
values.push(input && input.value);
=======
static getSearchQuery(untilInput = false) {
const tokens = [].slice.call(document.querySelectorAll('.tokens-container li'));
const values = [];
......@@ -148,7 +122,6 @@
}
});
>>>>>>> ce/master
return values.join(' ');
}
......
......@@ -8,8 +8,5 @@ require('./filtered_search_manager');
require('./filtered_search_token_keys');
require('./filtered_search_tokenizer');
require('./filtered_search_visual_tokens');
<<<<<<< HEAD
require('./filtered_search_token_keys_with_weights');
=======
>>>>>>> ce/master
......@@ -60,7 +60,6 @@
element: document.querySelector('#js-dropdown-hint'),
},
};
<<<<<<< HEAD
if (this.page === 'issues') {
this.mapping.weight = {
......@@ -80,19 +79,6 @@
if (clicked) {
gl.FilteredSearchVisualTokens.moveInputToTheRight();
}
=======
}
static addWordToInput(tokenName, tokenValue = '', clicked = false) {
const input = document.querySelector('.filtered-search');
gl.FilteredSearchVisualTokens.addFilterVisualToken(tokenName, tokenValue);
input.value = '';
if (clicked) {
gl.FilteredSearchVisualTokens.moveInputToTheRight();
}
>>>>>>> ce/master
}
updateCurrentDropdownOffset() {
......@@ -165,11 +151,7 @@
}
setDropdown() {
<<<<<<< HEAD
const query = gl.DropdownUtils.getSearchQuery();
=======
const query = gl.DropdownUtils.getSearchQuery(true);
>>>>>>> ce/master
const { lastToken, searchToken } = this.tokenizer.processTokens(query);
if (this.currentDropdown) {
......
......@@ -178,10 +178,6 @@
if (e.keyCode === 8 || e.keyCode === 46) {
gl.FilteredSearchVisualTokens.removeSelectedToken();
this.handleInputPlaceholder();
<<<<<<< HEAD
=======
>>>>>>> ce/master
this.toggleClearSearchButton();
}
}
......
......@@ -144,7 +144,6 @@
}
}
<<<<<<< HEAD
/**
* Deploy boards
*/
......@@ -280,8 +279,6 @@
}
}
=======
>>>>>>> ce/master
.prometheus-graph {
text {
fill: $stat-graph-axis-fill;
......
......@@ -8,11 +8,7 @@ module Projects
def index
issues = ::Boards::Issues::ListService.new(project, current_user, filter_params).execute
issues = issues.page(params[:page]).per(params[:per] || 20)
<<<<<<< HEAD
make_sure_position_is_set(issues) unless Gitlab::Geo.secondary?
=======
make_sure_position_is_set(issues)
>>>>>>> ce/master
render json: {
issues: serialize_as_json(issues),
......
......@@ -19,13 +19,9 @@ class Projects::DeployKeysController < Projects::ApplicationController
@key = DeployKey.new(deploy_key_params.merge(user: current_user))
unless @key.valid? && @project.deploy_keys << @key
<<<<<<< HEAD
flash[:alert] = @key.errors.full_messages.join(', ').html_safe
else
log_audit_event(@key.title, action: :create)
=======
flash[:alert] = @key.errors.full_messages.join(', ').html_safe
>>>>>>> ce/master
end
redirect_to_repository_settings(@project)
end
......@@ -50,7 +46,6 @@ class Projects::DeployKeysController < Projects::ApplicationController
def deploy_key_params
params.require(:deploy_key).permit(:key, :title, :can_push)
<<<<<<< HEAD
end
def log_audit_event(key_title, options = {})
......@@ -60,7 +55,5 @@ class Projects::DeployKeysController < Projects::ApplicationController
def load_key
@key ||= current_user.accessible_deploy_keys.find(params[:id])
=======
>>>>>>> ce/master
end
end
......@@ -5,11 +5,7 @@ class Projects::EnvironmentsController < Projects::ApplicationController
before_action :authorize_create_deployment!, only: [:stop]
before_action :authorize_update_environment!, only: [:edit, :update]
before_action :authorize_admin_environment!, only: [:terminal, :terminal_websocket_authorize]
<<<<<<< HEAD
before_action :environment, only: [:show, :edit, :update, :stop, :terminal, :terminal_websocket_authorize, :metrics, :status]
=======
before_action :environment, only: [:show, :edit, :update, :stop, :terminal, :terminal_websocket_authorize, :metrics]
>>>>>>> ce/master
before_action :verify_api_request!, only: :terminal_websocket_authorize
def index
......@@ -126,7 +122,6 @@ class Projects::EnvironmentsController < Projects::ApplicationController
end
end
<<<<<<< HEAD
# The rollout status of an enviroment
def status
unless @environment.deployment_service_ready?
......@@ -144,8 +139,6 @@ class Projects::EnvironmentsController < Projects::ApplicationController
end
end
=======
>>>>>>> ce/master
private
def verify_api_request!
......
......@@ -57,11 +57,8 @@ class Projects::ProtectedBranchesController < Projects::ApplicationController
merge_access_levels_attributes: [:access_level, :id, :user_id, :_destroy, :group_id],
push_access_levels_attributes: [:access_level, :id, :user_id, :_destroy, :group_id])
end
<<<<<<< HEAD
def load_protected_branches
@protected_branches = @project.protected_branches.order(:name).page(params[:page])
end
=======
>>>>>>> ce/master
end
......@@ -2,22 +2,15 @@ module Projects
module Settings
class RepositoryController < Projects::ApplicationController
before_action :authorize_admin_project!
<<<<<<< HEAD
before_action :push_rule, only: [:show]
before_action :remote_mirror, only: [:show]
=======
>>>>>>> ce/master
def show
@deploy_keys = DeployKeysPresenter
.new(@project, current_user: current_user)
define_protected_branches
<<<<<<< HEAD
end
=======
end
>>>>>>> ce/master
private
......@@ -27,7 +20,6 @@ module Projects
load_gon_index
end
<<<<<<< HEAD
def push_rule
@push_rule ||= PushRule.find_or_create_by(is_sample: true)
end
......@@ -36,8 +28,6 @@ module Projects
@remote_mirror = @project.remote_mirrors.first_or_initialize
end
=======
>>>>>>> ce/master
def load_protected_branches
@protected_branches = @project.protected_branches.order(:name).page(params[:page])
end
......@@ -45,18 +35,6 @@ module Projects
def access_levels_options
{
push_access_levels: {
<<<<<<< HEAD
roles: ProtectedBranch::PushAccessLevel.human_access_levels.map { |id, text| { id: id, text: text, before_divider: true } },
},
merge_access_levels: {
roles: ProtectedBranch::MergeAccessLevel.human_access_levels.map { |id, text| { id: id, text: text, before_divider: true } },
},
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 }
}
end
=======
roles: ProtectedBranch::PushAccessLevel.human_access_levels.map do |id, text|
{ id: id, text: text, before_divider: true }
end
......@@ -65,24 +43,21 @@ module Projects
roles: ProtectedBranch::MergeAccessLevel.human_access_levels.map do |id, text|
{ id: id, text: text, before_divider: true }
end
}
},
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 }
}
end
>>>>>>> ce/master
def open_branches
branches = @project.open_branches.map { |br| { text: br.name, id: br.name, title: br.name } }
{ open_branches: branches }
end
def load_gon_index
<<<<<<< HEAD
params = open_branches
params[:current_project_id] = @project.id if @project
gon.push(params.merge(access_levels_options))
=======
gon.push(open_branches.merge(access_levels_options))
>>>>>>> ce/master
end
end
end
......
......@@ -157,14 +157,6 @@ class Environment < ActiveRecord::Base
project.monitoring_service.metrics(self) if has_metrics?
end
def has_metrics?
project.monitoring_service.present? && available? && last_deployment.present?
end
def metrics
project.monitoring_service.metrics(self) if has_metrics?
end
# An environment name is not necessarily suitable for use in URLs, DNS
# or other third-party contexts, so provide a slugified version. A slug has
# the following properties:
......
......@@ -9,14 +9,11 @@ class Issue < ActiveRecord::Base
include Elastic::IssuesSearch
include FasterCacheKeys
include RelativePositioning
<<<<<<< HEAD
WEIGHT_RANGE = 1..9
WEIGHT_ALL = 'Everything'.freeze
WEIGHT_ANY = 'Any Weight'.freeze
WEIGHT_NONE = 'No Weight'.freeze
=======
>>>>>>> ce/master
DueDateStruct = Struct.new(:title, :name).freeze
NoDueDate = DueDateStruct.new('No Due Date', '0').freeze
......
......@@ -115,10 +115,7 @@ class Project < ActiveRecord::Base
has_one :external_wiki_service, dependent: :destroy
has_one :kubernetes_service, dependent: :destroy, inverse_of: :project
has_one :prometheus_service, dependent: :destroy, inverse_of: :project
<<<<<<< HEAD
has_one :index_status, dependent: :destroy
=======
>>>>>>> ce/master
has_one :mock_ci_service, dependent: :destroy
has_one :forked_project_link, dependent: :destroy, foreign_key: "forked_to_project_id"
......
......@@ -103,11 +103,8 @@ class GitPushService < BaseService
UpdateMergeRequestsWorker
.perform_async(@project.id, current_user.id, params[:oldrev], params[:newrev], params[:ref])
<<<<<<< HEAD
mirror_update = @project.mirror? && @project.repository.up_to_date_with_upstream?(branch_name)
=======
SystemHookPushWorker.perform_async(build_push_data.dup, :push_hooks)
>>>>>>> ce/master
EventCreateService.new.push(@project, current_user, build_push_data)
@project.execute_hooks(build_push_data.dup, :push_hooks)
......
- if project_nav_tab? :team
= nav_link(controller: [:members, :teams]) do
= link_to namespace_project_settings_members_path(@project.namespace, @project), title: 'Members', class: 'team-tab tab' do
%span
Members
- if can_edit
= nav_link(controller: :repository) do
= link_to namespace_project_settings_repository_path(@project.namespace, @project), title: 'Repository' do
%span
Repository
= nav_link(controller: :integrations) do
= link_to namespace_project_settings_integrations_path(@project.namespace, @project), title: 'Integrations' do
%span
Integrations
- if @project.feature_available?(:builds, current_user)
= nav_link(controller: :ci_cd) do
= link_to namespace_project_settings_ci_cd_path(@project.namespace, @project), title: 'CI/CD Pipelines' do
%span
CI/CD Pipelines
= nav_link(controller: :pages) do
= link_to namespace_project_pages_path(@project.namespace, @project), title: 'Pages', data: {placement: 'right'} do
%span
Pages
= nav_link(controller: :audit_events) do
= link_to namespace_project_audit_events_path(@project.namespace, @project), title: "Audit Events" do
%span
Audit Events
......@@ -26,11 +26,7 @@
= render partial: 'projects/deploy_keys/deploy_key', collection: @deploy_keys.available_project_keys, as: :deploy_key
- else
.settings-message.text-center
<<<<<<< HEAD
No deploy keys from your projects could be found. Create one with the form above
=======
No deploy keys from your projects could be found. Create one with the form above or add existing one below.
>>>>>>> ce/master
- if @deploy_keys.any_available_public_keys_enabled?
%h5.prepend-top-default
Public deploy keys available to any project (#{@deploy_keys.available_public_keys_size})
......
......@@ -14,11 +14,7 @@
- else
(branch was removed from repository)
<<<<<<< HEAD
= render partial: 'projects/protected_branches/protected_branch_access_summary', locals: { protected_branch: protected_branch }
=======
= render partial: 'projects/protected_branches/update_protected_branch', locals: { protected_branch: protected_branch }
>>>>>>> ce/master
- if can_admin_project
%td
......
- page_title "Repository"
<<<<<<< HEAD
= render "projects/settings/head"
= render @deploy_keys
= render "projects/push_rules/index"
= render "projects/mirrors/show"
=======
= render "projects/settings/head"
= render @deploy_keys
>>>>>>> ce/master
= render "projects/protected_branches/index"
......@@ -22,7 +22,6 @@ Rails.application.routes.draw do
authorizations: 'oauth/authorizations'
end
<<<<<<< HEAD
namespace :oauth do
scope path: 'geo', controller: :geo_auth, as: :geo do
get 'auth'
......@@ -30,9 +29,8 @@ Rails.application.routes.draw do
get 'logout'
end
end
=======
use_doorkeeper_openid_connect
>>>>>>> ce/master
# Autocomplete
get '/autocomplete/users' => 'autocomplete#users'
......
......@@ -197,10 +197,7 @@ constraints(ProjectUrlConstrainer.new) do
post :stop
get :terminal
get :metrics
<<<<<<< HEAD
get :status, constraints: { format: :json }
=======
>>>>>>> ce/master
get '/terminal.ws/authorize', to: 'environments#terminal_websocket_authorize', constraints: { format: nil }
end
......
......@@ -52,7 +52,7 @@
- [cronjob, 1]
- [default, 1]
- [pages, 1]
<<<<<<< HEAD
- [system_hook_push, 1]
# EE specific queues
- [elasticsearch, 1]
- [geo, 1]
......@@ -62,6 +62,3 @@
- [geo_repository_update, 1]
- [elastic_batch_project_indexer, 1]
- [export_csv, 1]
=======
- [system_hook_push, 1]
>>>>>>> ce/master
......@@ -115,22 +115,19 @@ ActiveRecord::Schema.define(version: 20170308015651) do
t.boolean "html_emails_enabled", default: true
t.string "plantuml_url"
t.boolean "plantuml_enabled"
<<<<<<< HEAD
t.integer "shared_runners_minutes", default: 0, null: false
t.integer "repository_size_limit", limit: 8, default: 0
=======
>>>>>>> ce/master
t.integer "terminal_max_session_time", default: 0, null: false
t.integer "minimum_mirror_sync_time", default: 15, null: false
t.string "default_artifacts_expire_in", default: "0", null: false
t.integer "unique_ips_limit_per_user"
t.integer "unique_ips_limit_time_window"
t.boolean "unique_ips_limit_enabled", default: false, null: false
t.string "elasticsearch_url", default: "http://localhost:9200"
t.boolean "elasticsearch_aws", default: false, null: false
t.string "elasticsearch_aws_region", default: "us-east-1"
t.string "elasticsearch_aws_access_key"
t.string "elasticsearch_aws_secret_access_key"
t.integer "unique_ips_limit_per_user"
t.integer "unique_ips_limit_time_window"
t.boolean "unique_ips_limit_enabled", default: false, null: false
t.integer "geo_status_timeout", default: 10
end
......@@ -1587,13 +1584,10 @@ ActiveRecord::Schema.define(version: 20170308015651) do
add_foreign_key "merge_request_metrics", "merge_requests", on_delete: :cascade
add_foreign_key "merge_requests_closing_issues", "issues", on_delete: :cascade
add_foreign_key "merge_requests_closing_issues", "merge_requests", on_delete: :cascade
<<<<<<< HEAD
add_foreign_key "namespace_statistics", "namespaces", on_delete: :cascade
add_foreign_key "oauth_openid_requests", "oauth_access_grants", column: "access_grant_id", name: "fk_oauth_openid_requests_oauth_access_grants_access_grant_id"
add_foreign_key "path_locks", "projects"
add_foreign_key "path_locks", "users"
=======
add_foreign_key "oauth_openid_requests", "oauth_access_grants", column: "access_grant_id", name: "fk_oauth_openid_requests_oauth_access_grants_access_grant_id"
>>>>>>> ce/master
add_foreign_key "personal_access_tokens", "users"
add_foreign_key "project_authorizations", "projects", on_delete: :cascade
add_foreign_key "project_authorizations", "users", on_delete: :cascade
......
......@@ -394,22 +394,6 @@ closed.
PUT /projects/:id/issues/:issue_iid
```
<<<<<<< HEAD
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `id` | integer | yes | The ID of a project |
| `issue_id` | integer | yes | The ID of a project's issue |
| `title` | string | no | The title of an issue |
| `description` | string | no | The description of an issue |
| `confidential` | boolean | no | Updates an issue to be confidential |
| `assignee_id` | integer | no | The ID of a user to assign the issue to |
| `milestone_id` | integer | no | The ID of a milestone to assign the issue to |
| `labels` | string | no | Comma-separated label names for an issue |
| `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) |
| `due_date` | string | no | Date time string in the format YEAR-MONTH-DAY, e.g. `2016-03-11` |
| `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 |
......@@ -423,7 +407,7 @@ 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 |
| `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` |
>>>>>>> ce/master
| `weight` | integer | no | The weight of the issue in range 0 to 9 |
```bash
curl --request PUT --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/projects/4/issues/85?state_event=close
......
......@@ -275,31 +275,6 @@ Creates a new merge request.
POST /projects/:id/merge_requests
```
<<<<<<< HEAD
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `id` | string | yes | The ID of a project |
| `source_branch` | string | yes | The source branch |
| `target_branch` | string | yes | The target branch |
| `title` | string | yes | Title of MR |
| `assignee_id` | integer | no | Assignee user ID |
| `description` | string | no | Description of MR |
| `target_project_id` | integer | no | The target project (numeric id) |
| `labels` | string | no | Labels for MR as a comma-separated list |
| `milestone_id` | integer | no | The ID of a milestone |
| `remove_source_branch` | boolean | no | Flag indicating if a merge request should remove the source branch when merging |
| `approvals_before_merge` | integer| no | Number of approvals required before this can be merged (see below) |
| `squash` | boolean| no | Squash commits into a single commit when merging |
If `approvals_before_merge` is not provided, it inherits the value from the
target project. If it is provided, then the following conditions must hold in
order for it to take effect:
1. The target project's `approvals_before_merge` must be greater than zero. (A
value of zero disables approvals for that project.)
2. The provided value of `approvals_before_merge` must be greater than the
target project's `approvals_before_merge`.
=======
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `id` | string | yes | The ID of a project |
......@@ -312,7 +287,17 @@ order for it to take effect:
| `labels` | string | no | Labels for MR as a comma-separated list |
| `milestone_id` | integer | no | The ID of a milestone |
| `remove_source_branch` | boolean | no | Flag indicating if a merge request should remove the source branch when merging |
>>>>>>> ce/master
| `approvals_before_merge` | integer| no | Number of approvals required before this can be merged (see below) |
| `squash` | boolean| no | Squash commits into a single commit when merging |
If `approvals_before_merge` is not provided, it inherits the value from the
target project. If it is provided, then the following conditions must hold in
order for it to take effect:
1. The target project's `approvals_before_merge` must be greater than zero. (A
value of zero disables approvals for that project.)
2. The provided value of `approvals_before_merge` must be greater than the
target project's `approvals_before_merge`.
```json
{
......@@ -379,23 +364,6 @@ Updates an existing merge request. You can change the target branch, title, or e
PUT /projects/:id/merge_requests/:merge_request_iid
```
<<<<<<< HEAD
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `id` | string | yes | The ID of a project |
| `merge_request_id` | integer | yes | The ID of a merge request |
| `target_branch` | string | no | The target branch |
| `title` | string | no | Title of MR |
| `assignee_id` | integer | no | Assignee user ID |
| `description` | string | no | Description of MR |
| `state_event` | string | no | New state (close/reopen) |
| `labels` | string | no | Labels for MR as a comma-separated list |
| `milestone_id` | integer | no | The ID of a milestone |
| `remove_source_branch` | boolean | no | Flag indicating if a merge request should remove the source branch when merging |
| `squash` | boolean| no | Squash commits into a single commit when merging |
Must include at least one non-required attribute from above.
=======
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `id` | string | yes | The ID of a project |
......@@ -408,7 +376,9 @@ Must include at least one non-required attribute from above.
| `labels` | string | no | Labels for MR as a comma-separated list |
| `milestone_id` | integer | no | The ID of a milestone |
| `remove_source_branch` | boolean | no | Flag indicating if a merge request should remove the source branch when merging |
>>>>>>> ce/master
| `squash` | boolean| no | Squash commits into a single commit when merging |
Must include at least one non-required attribute from above.
Must include at least one non-required attribute from above.
......
......@@ -830,7 +830,6 @@ Example response:
]
```
<<<<<<< HEAD
### Get user activities (admin only)
>**Note:** This API endpoint is only available on 8.15 EE and above.
......@@ -855,7 +854,37 @@ This function takes pagination parameters `page` and `per_page` to restrict the
```
GET /user/activities
=======
```
Parameters:
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `from` | string | no | Date string in the format YEAR-MONTH-DAY, e.g. `2016-03-11`. Defaults to 6 months ago. |
```bash
curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/user/activities
```
Example response:
```json
[
{
"username": "user1",
"last_activity_at": "2015-12-14 01:00:00"
},
{
"username": "user2",
"last_activity_at": "2015-12-15 01:00:00"
},
{
"username": "user3",
"last_activity_at": "2015-12-16 01:00:00"
}
]
```
## Retrieve user impersonation tokens
It retrieves every impersonation token of the user. Note that only administrators can do this.
......@@ -912,39 +941,10 @@ settings page.
```
POST /users/:user_id/impersonation_tokens
>>>>>>> ce/master
```
Parameters:
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
<<<<<<< HEAD
| `from` | string | no | Date string in the format YEAR-MONTH-DAY, e.g. `2016-03-11`. Defaults to 6 months ago. |
```bash
curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/user/activities
```
Example response:
```json
[
{
"username": "user1",
"last_activity_at": "2015-12-14 01:00:00"
},
{
"username": "user2",
"last_activity_at": "2015-12-15 01:00:00"
},
{
"username": "user3",
"last_activity_at": "2015-12-16 01:00:00"
}
]
```
=======
| `user_id` | integer | yes | The ID of the user |
| `name` | string | yes | The name of the impersonation token |
| `expires_at` | date | no | The expiration date of the impersonation token |
......@@ -978,4 +978,3 @@ Parameters:
| --------- | ---- | -------- | ----------- |
| `user_id` | integer | yes | The ID of the user |
| `impersonation_token_id` | integer | yes | The ID of the impersonation token |
>>>>>>> ce/master
......@@ -76,17 +76,14 @@ Below are the changes made between V3 and V4.
- API uses issue `IID`s (internal ID, as in the web UI) rather than `ID`s. This affects the issues, award emoji, todos, and time tracking APIs. [!9530](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9530)
- Change initial page from `0` to `1` on `GET projects/:id/repository/commits` (like on the rest of the API) [!9679] (https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9679)
- Return correct `Link` header data for `GET projects/:id/repository/commits` [!9679] (https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9679)
<<<<<<< HEAD
- Update endpoints for repository files [!9637](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9637)
- Moved `/projects/:id/repository/files?file_path=:file_path` to `/projects/:id/repository/files/:file_path` (`:file_path` should be URL-encoded)
- `/projects/:id/repository/blobs/:sha` now returns JSON attributes for the blob identified by `:sha`, instead of finding the commit identified by `:sha` and returning the raw content of the blob in that commit identified by the required `?filepath=:filepath`
- Moved `/projects/:id/repository/commits/:sha/blob?file_path=:file_path` and `/projects/:id/repository/blobs/:sha?file_path=:file_path` to `/projects/:id/repository/files/:file_path/raw?ref=:sha`
- `/projects/:id/repository/tree` parameter `ref_name` has been renamed to `ref` for consistency
#### EE-specific
- Remove the ProjectGitHook API. Use the ProjectPushRule API instead [!1301](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1301)
- Removed `repository_storage` from `PUT /application/settings` and `GET /application/settings` (use `repository_storages` instead) [!1307](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1307)
- Removed `elasticsearch_host` and `elasticsearch_port` from `PUT /application/settings` (use `elasticsearch_url` instead) [!1305](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1305)
=======
- Update endpoints for repository files [!9637](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9637)
- Moved `/projects/:id/repository/files?file_path=:file_path` to `/projects/:id/repository/files/:file_path` (`:file_path` should be URL-encoded)
- `/projects/:id/repository/blobs/:sha` now returns JSON attributes for the blob identified by `:sha`, instead of finding the commit identified by `:sha` and returning the raw content of the blob in that commit identified by the required `?filepath=:filepath`
- Moved `/projects/:id/repository/commits/:sha/blob?file_path=:file_path` and `/projects/:id/repository/blobs/:sha?file_path=:file_path` to `/projects/:id/repository/files/:file_path/raw?ref=:sha`
- `/projects/:id/repository/tree` parameter `ref_name` has been renamed to `ref` for consistency
>>>>>>> ce/master
......@@ -59,13 +59,8 @@ Feature: Project Active Tab
Scenario: On Project Settings/Repository
Given I visit my project's settings page
And I click the "Repository" tab
<<<<<<< HEAD
Then the active sub nav should be Repository
And no other sub navs should be active
=======
Then the active sub tab should be Repository
And no other sub tabs should be active
>>>>>>> ce/master
And the active main tab should be Settings
Scenario: On Project Settings/Pages
......
......@@ -34,11 +34,7 @@ class Spinach::Features::ProjectActiveTab < Spinach::FeatureSteps
end
step 'I click the "Repository" tab' do
<<<<<<< HEAD
page.within '.layout-nav .controls' do
=======
page.within '.sub-nav' do
>>>>>>> ce/master
click_link('Repository')
end
end
......@@ -63,13 +59,8 @@ class Spinach::Features::ProjectActiveTab < Spinach::FeatureSteps
ensure_active_sub_tab('Integrations')
end
<<<<<<< HEAD
step 'the active sub nav should be Repository' do
ensure_active_sub_nav('Repository')
=======
step 'the active sub tab should be Repository' do
ensure_active_sub_tab('Repository')
>>>>>>> ce/master
end
step 'the active sub tab should be Pages' do
......
......@@ -774,7 +774,6 @@ module API
expose :active?, as: :active
end
<<<<<<< HEAD
class GeoNodeStatus < Grape::Entity
expose :health
expose :repositories_count
......@@ -782,7 +781,8 @@ module API
expose :repositories_failed_count
expose :lfs_objects_total
expose :lfs_objects_synced
=======
end
class PersonalAccessToken < Grape::Entity
expose :id, :name, :revoked, :created_at, :scopes
expose :active?, as: :active
......@@ -875,7 +875,6 @@ module API
expose :credentials, using: Credentials
expose :depends_on_builds, as: :dependencies, using: Dependency
end
>>>>>>> ce/master
end
end
end
......@@ -223,10 +223,6 @@ module API
desc 'Cancel merge if "Merge When Pipeline Succeeds" is enabled' do
success Entities::MergeRequest
end
<<<<<<< HEAD
=======
>>>>>>> ce/master
post ':id/merge_requests/:merge_request_iid/cancel_merge_when_pipeline_succeeds' do
merge_request = find_project_merge_request(params[:merge_request_iid])
......@@ -280,7 +276,6 @@ module API
end
get ':id/merge_requests/:merge_request_iid/closes_issues' do
merge_request = find_merge_request_with_access(params[:merge_request_iid])
<<<<<<< HEAD
issues = ::Kaminari.paginate_array(merge_request.closes_issues(current_user))
present paginate(issues), with: issue_entity(user_project), current_user: current_user
end
......@@ -340,8 +335,6 @@ module API
end
get ':id/merge_requests/:merge_request_id/closes_issues' do
merge_request = find_merge_request_with_access(params[:merge_request_id])
=======
>>>>>>> ce/master
issues = ::Kaminari.paginate_array(merge_request.closes_issues(current_user))
present paginate(issues), with: issue_entity(user_project), current_user: current_user
end
......
......@@ -14,13 +14,10 @@ namespace :gitlab do
rake_version = run_and_match(%w(rake --version), /[\d\.]+/).try(:to_s)
# check redis version
redis_version = run_and_match(%w(redis-cli --version), /redis-cli (\d+\.\d+\.\d+)/).to_a
<<<<<<< HEAD
# check for system defined proxies
proxies = Gitlab::Proxy.detect_proxy.map{|k, v| "#{k}: #{v}"}.join("\n\t\t")
=======
# check Git version
git_version = run_and_match([Gitlab.config.git.bin_path, '--version'], /git version ([\d\.]+)/).to_a
>>>>>>> ce/master
puts ""
puts "System information".color(:yellow)
......
......@@ -187,7 +187,6 @@ describe Projects::EnvironmentsController do
end
end
<<<<<<< HEAD
describe 'GET #status' do
context 'without deployment service' do
it 'returns 404' do
......@@ -226,8 +225,6 @@ describe Projects::EnvironmentsController do
end
end
=======
>>>>>>> ce/master
describe 'GET #metrics' do
before do
allow(controller).to receive(:environment).and_return(environment)
......
require 'rails_helper'
<<<<<<< HEAD
describe 'Dropdown assignee', js: true, feature: true do
=======
describe 'Dropdown assignee', :feature, :js do
>>>>>>> ce/master
include FilteredSearchHelpers
include WaitForAjax
......
require 'rails_helper'
<<<<<<< HEAD
describe 'Dropdown milestone', js: true, feature: true do
include FilteredSearchHelpers
include WaitForAjax
=======
describe 'Dropdown milestone', :feature, :js do
include FilteredSearchHelpers
>>>>>>> ce/master
let!(:project) { create(:empty_project) }
let!(:user) { create(:user) }
......
......@@ -242,8 +242,6 @@ describe 'Visual tokens', js: true, feature: true do
end
end
<<<<<<< HEAD
=======
describe 'editing a search term while editing another filter token' do
before do
input_filtered_search('author assignee:', submit: false)
......@@ -261,7 +259,6 @@ describe 'Visual tokens', js: true, feature: true do
end
end
>>>>>>> ce/master
describe 'add new token after editing existing token' do
before do
input_filtered_search('author:@root assignee:none', submit: false)
......@@ -339,8 +336,6 @@ describe 'Visual tokens', js: true, feature: true do
expect(token.find('.name').text).to eq('Author')
end
end
<<<<<<< HEAD
=======
describe 'search using incomplete visual tokens' do
before do
......@@ -354,5 +349,4 @@ describe 'Visual tokens', js: true, feature: true do
])
end
end
>>>>>>> ce/master
end
......@@ -120,10 +120,7 @@ describe "Internal Project Access", feature: true do
subject { namespace_project_settings_repository_path(project.namespace, project) }
it { is_expected.to be_allowed_for(:admin) }
<<<<<<< HEAD
it { is_expected.to be_denied_for(:auditor) }
=======
>>>>>>> ce/master
it { is_expected.to be_allowed_for(:owner).of(project) }
it { is_expected.to be_allowed_for(:master).of(project) }
it { is_expected.to be_denied_for(:developer).of(project) }
......
......@@ -126,7 +126,6 @@ describe "Private Project Access", feature: true do
it { is_expected.to be_denied_for(:reporter).of(project) }
it { is_expected.to be_denied_for(:guest).of(project) }
it { is_expected.to be_denied_for(:user) }
<<<<<<< HEAD
it { is_expected.to be_denied_for(:visitor) }
it { is_expected.to be_denied_for(:external) }
end
......@@ -141,8 +140,6 @@ describe "Private Project Access", feature: true do
it { is_expected.to be_denied_for(:reporter).of(project) }
it { is_expected.to be_denied_for(:guest).of(project) }
it { is_expected.to be_denied_for(:user) }
=======
>>>>>>> ce/master
it { is_expected.to be_denied_for(:external) }
it { is_expected.to be_denied_for(:visitor) }
end
......
......@@ -117,11 +117,7 @@ describe "Public Project Access", feature: true do
end
describe "GET /:project_path/settings/repository" do
<<<<<<< HEAD
subject { namespace_project_settings_ci_cd_path(project.namespace, project) }
=======
subject { namespace_project_settings_repository_path(project.namespace, project) }
>>>>>>> ce/master
it { is_expected.to be_allowed_for(:admin) }
it { is_expected.to be_allowed_for(:owner).of(project) }
......
......@@ -286,11 +286,7 @@ describe Environment, models: true do
context 'when the environment has terminals' do
before do
<<<<<<< HEAD
allow(environment).to receive(:deployment_service_ready?).and_return(true)
=======
allow(environment).to receive(:has_terminals?).and_return(true)
>>>>>>> ce/master
end
it 'returns the terminals from the deployment service' do
......@@ -304,18 +300,13 @@ describe Environment, models: true do
context 'when the environment does not have terminals' do
before do
<<<<<<< HEAD
allow(environment).to receive(:deployment_service_ready?).and_return(false)
=======
allow(environment).to receive(:has_terminals?).and_return(false)
>>>>>>> ce/master
end
it { is_expected.to be_nil }
end
end
<<<<<<< HEAD
describe '#rollout_status' do
let(:project) { create(:kubernetes_project) }
subject { environment.rollout_status }
......@@ -335,7 +326,9 @@ describe Environment, models: true do
context 'when the environment does not have rollout status' do
before { allow(environment).to receive(:deployment_service_ready?).and_return(false) }
it { is_expected.to eq(nil) }
=======
end
end
describe '#has_metrics?' do
subject { environment.has_metrics? }
......@@ -393,7 +386,6 @@ describe Environment, models: true do
end
it { is_expected.to be_nil }
>>>>>>> ce/master
end
end
......
......@@ -1242,7 +1242,6 @@ describe API::Issues, api: true do
end
end
<<<<<<< HEAD
describe 'PUT /projects/:id/issues/:issue_id to update weight' do
it 'updates an issue with no weight' do
put api("/projects/#{project.id}/issues/#{issue.iid}", user), weight: 5
......@@ -1275,8 +1274,6 @@ describe API::Issues, api: true do
end
end
=======
>>>>>>> ce/master
describe "DELETE /projects/:id/issues/:issue_iid" do
it "rejects a non member from deleting an issue" do
delete api("/projects/#{project.id}/issues/#{issue.iid}", non_member)
......
......@@ -575,7 +575,6 @@ describe API::MergeRequests, api: true do
it "succeeds if the SHA parameter matches" do
put api("/projects/#{project.id}/merge_requests/#{merge_request.iid}/merge", user), sha: merge_request.diff_head_sha
<<<<<<< HEAD
expect(response).to have_http_status(200)
end
......@@ -584,8 +583,6 @@ describe API::MergeRequests, api: true do
expect do
put api("/projects/#{project.id}/merge_requests/#{merge_request.iid}/merge", user), squash: true
end.to change { merge_request.reload.squash }
=======
>>>>>>> ce/master
expect(response).to have_http_status(200)
end
......
......@@ -1170,7 +1170,6 @@ describe API::Users, api: true do
end
end
<<<<<<< HEAD
context "user activities", :redis do
context 'last activity as normal user' do
it 'has no permission' do
......@@ -1239,7 +1238,9 @@ describe API::Users, api: true do
expect(json_response.map { |activity| activity['username'] }).to eq(%w[3 4])
end
=======
end
end
describe 'GET /users/:user_id/impersonation_tokens' do
let!(:active_personal_access_token) { create(:personal_access_token, user: user) }
let!(:revoked_personal_access_token) { create(:personal_access_token, :revoked, user: user) }
......@@ -1420,7 +1421,6 @@ describe API::Users, api: true do
expect(response).to have_http_status(204)
expect(impersonation_token.revoked).to be_falsey
expect(impersonation_token.reload.revoked).to be_truthy
>>>>>>> ce/master
end
end
end
......@@ -45,10 +45,7 @@ describe API::V3::MergeRequestDiffs, 'MergeRequestDiffs', api: true do
it 'returns a 404 when merge_request_id not found' do
get v3_api("/projects/#{project.id}/merge_requests/#{merge_request.id}/versions/999", user)
<<<<<<< HEAD
=======
>>>>>>> ce/master
expect(response).to have_http_status(404)
end
end
......
......@@ -75,12 +75,9 @@ describe MergeRequests::RefreshService, services: true do
expect(@fork_merge_request.notes).to be_empty
expect(@build_failed_todo).to be_done
expect(@fork_build_failed_todo).to be_done
<<<<<<< HEAD
# EE-only
expect(@merge_request.approvals).to be_empty
expect(@fork_merge_request.approvals).not_to be_empty
=======
>>>>>>> ce/master
end
end
......@@ -97,12 +94,9 @@ describe MergeRequests::RefreshService, services: true do
expect(@fork_merge_request.notes.last.note).to include('merged')
expect(@build_failed_todo).to be_done
expect(@fork_build_failed_todo).to be_done
<<<<<<< HEAD
# EE-only
expect(@merge_request.approvals).not_to be_empty
expect(@fork_merge_request.approvals).not_to be_empty
=======
>>>>>>> ce/master
end
end
......@@ -148,12 +142,9 @@ describe MergeRequests::RefreshService, services: true do
expect(@fork_merge_request).to be_open
expect(@build_failed_todo).to be_pending
expect(@fork_build_failed_todo).to be_pending
<<<<<<< HEAD
# EE-only
expect(@merge_request.approvals).not_to be_empty
expect(@fork_merge_request.approvals).to be_empty
=======
>>>>>>> ce/master
end
end
......@@ -176,12 +167,9 @@ describe MergeRequests::RefreshService, services: true do
expect(@fork_merge_request).to be_closed
expect(@build_failed_todo).to be_pending
expect(@fork_build_failed_todo).to be_pending
<<<<<<< HEAD
# EE-only
expect(@merge_request.approvals).not_to be_empty
expect(@fork_merge_request.approvals).to be_empty
=======
>>>>>>> ce/master
end
end
end
......@@ -200,12 +188,9 @@ describe MergeRequests::RefreshService, services: true do
expect(@fork_merge_request).to be_open
expect(@build_failed_todo).to be_pending
expect(@fork_build_failed_todo).to be_pending
<<<<<<< HEAD
# EE-only
expect(@merge_request.approvals).not_to be_empty
expect(@fork_merge_request.approvals).not_to be_empty
=======
>>>>>>> ce/master
end
end
......@@ -232,7 +217,6 @@ describe MergeRequests::RefreshService, services: true do
expect(@fork_merge_request.notes).to be_empty
expect(@build_failed_todo).to be_done
expect(@fork_build_failed_todo).to be_done
<<<<<<< HEAD
# EE-only
expect(@merge_request.approvals).not_to be_empty
expect(@fork_merge_request.approvals).not_to be_empty
......@@ -309,8 +293,6 @@ describe MergeRequests::RefreshService, services: true do
expect(@merge_request.approvals).to be_empty
end
end
=======
>>>>>>> ce/master
end
end
......
......@@ -4,11 +4,6 @@ module FilteredSearchHelpers
end
# Enables input to be set (similar to copy and paste)
<<<<<<< HEAD
def input_filtered_search(search_term, submit: true)
# Add an extra space to engage visual tokens
filtered_search.set("#{search_term} ")
=======
def input_filtered_search(search_term, submit: true, extra_space: true)
search = search_term
if extra_space
......@@ -17,7 +12,6 @@ module FilteredSearchHelpers
end
filtered_search.set(search)
>>>>>>> ce/master
if submit
filtered_search.send_keys(:enter)
......
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