Skip to content
Snippets Groups Projects
Commit 6024697c authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Merge branch 'master' into 'dz-rename-reserved-project-names'

# Conflicts:
#   db/schema.rb
parents 123bc1d5 f264ec6e
No related branches found
No related tags found
No related merge requests found
Showing
with 57 additions and 59 deletions
Loading
@@ -425,7 +425,7 @@ notify:slack:
Loading
@@ -425,7 +425,7 @@ notify:slack:
SETUP_DB: "false" SETUP_DB: "false"
USE_BUNDLE_INSTALL: "false" USE_BUNDLE_INSTALL: "false"
script: script:
- ./scripts/notify_slack.sh "#development" "Build on \`$CI_BUILD_REF_NAME\` failed! Commit \`$(git log -1 --oneline)\` See <https://gitlab.com/gitlab-org/$(basename "$PWD")/commit/"$CI_BUILD_REF"/builds>" - ./scripts/notify_slack.sh "#development" "Build on \`$CI_BUILD_REF_NAME\` failed! Commit \`$(git log -1 --oneline)\` See <https://gitlab.com/gitlab-org/$(basename "$PWD")/commit/"$CI_BUILD_REF"/pipelines>"
when: on_failure when: on_failure
only: only:
- master@gitlab-org/gitlab-ce - master@gitlab-org/gitlab-ce
Loading
Loading
Loading
@@ -217,8 +217,8 @@ We welcome merge requests with fixes and improvements to GitLab code, tests,
Loading
@@ -217,8 +217,8 @@ We welcome merge requests with fixes and improvements to GitLab code, tests,
and/or documentation. The features we would really like a merge request for are and/or documentation. The features we would really like a merge request for are
listed with the label [`Accepting Merge Requests` on our issue tracker for CE][accepting-mrs-ce] listed with the label [`Accepting Merge Requests` on our issue tracker for CE][accepting-mrs-ce]
and [EE][accepting-mrs-ee] but other improvements are also welcome. Please note and [EE][accepting-mrs-ee] but other improvements are also welcome. Please note
that if an issue is marked for the current milestone either before or while you that if an issue is marked for the current milestone either before or while you
are working on it, a team member may take over the merge request in order to are working on it, a team member may take over the merge request in order to
ensure the work is finished before the release date. ensure the work is finished before the release date.
   
If you want to add a new feature that is not labeled it is best to first create If you want to add a new feature that is not labeled it is best to first create
Loading
@@ -300,6 +300,7 @@ you start with a very simple UI? Can you do part of the refactor? The increased
Loading
@@ -300,6 +300,7 @@ you start with a very simple UI? Can you do part of the refactor? The increased
reviewability of small MRs that leads to higher code quality is more important reviewability of small MRs that leads to higher code quality is more important
to us than having a minimal commit log. The smaller an MR is the more likely it to us than having a minimal commit log. The smaller an MR is the more likely it
is it will be merged (quickly). After that you can send more MRs to enhance it. is it will be merged (quickly). After that you can send more MRs to enhance it.
The ['How to get faster PR reviews' document of Kubernetes](https://github.com/kubernetes/community/blob/master/contributors/devel/faster_reviews.md) also has some great points regarding this.
   
For examples of feedback on merge requests please look at already For examples of feedback on merge requests please look at already
[closed merge requests][closed-merge-requests]. If you would like quick feedback [closed merge requests][closed-merge-requests]. If you would like quick feedback
Loading
Loading
Loading
@@ -332,7 +332,7 @@ gem 'octokit', '~> 4.3.0'
Loading
@@ -332,7 +332,7 @@ gem 'octokit', '~> 4.3.0'
   
gem 'mail_room', '~> 0.9.0' gem 'mail_room', '~> 0.9.0'
   
gem 'email_reply_parser', '~> 0.5.8' gem 'email_reply_trimmer', '~> 0.1'
gem 'html2text' gem 'html2text'
   
gem 'ruby-prof', '~> 0.16.2' gem 'ruby-prof', '~> 0.16.2'
Loading
Loading
Loading
@@ -167,7 +167,7 @@ GEM
Loading
@@ -167,7 +167,7 @@ GEM
railties (>= 4.2) railties (>= 4.2)
dropzonejs-rails (0.7.2) dropzonejs-rails (0.7.2)
rails (> 3.1) rails (> 3.1)
email_reply_parser (0.5.8) email_reply_trimmer (0.1.6)
email_spec (1.6.0) email_spec (1.6.0)
launchy (~> 2.1) launchy (~> 2.1)
mail (~> 2.2) mail (~> 2.2)
Loading
@@ -839,7 +839,7 @@ DEPENDENCIES
Loading
@@ -839,7 +839,7 @@ DEPENDENCIES
diffy (~> 3.1.0) diffy (~> 3.1.0)
doorkeeper (~> 4.2.0) doorkeeper (~> 4.2.0)
dropzonejs-rails (~> 0.7.1) dropzonejs-rails (~> 0.7.1)
email_reply_parser (~> 0.5.8) email_reply_trimmer (~> 0.1)
email_spec (~> 1.6.0) email_spec (~> 1.6.0)
factory_girl_rails (~> 4.7.0) factory_girl_rails (~> 4.7.0)
ffaker (~> 2.0.0) ffaker (~> 2.0.0)
Loading
Loading
Loading
@@ -15,10 +15,10 @@ To see how GitLab looks please see the [features page on our website](https://ab
Loading
@@ -15,10 +15,10 @@ To see how GitLab looks please see the [features page on our website](https://ab
   
- Manage Git repositories with fine grained access controls that keep your code secure - Manage Git repositories with fine grained access controls that keep your code secure
- Perform code reviews and enhance collaboration with merge requests - Perform code reviews and enhance collaboration with merge requests
- Each project can also have an issue tracker and a wiki - Complete continuous integration (CI) and CD pipelines to builds, test, and deploy your applications
- Each project can also have an issue tracker, issue board, and a wiki
- Used by more than 100,000 organizations, GitLab is the most popular solution to manage Git repositories on-premises - Used by more than 100,000 organizations, GitLab is the most popular solution to manage Git repositories on-premises
- Completely free and open source (MIT Expat license) - Completely free and open source (MIT Expat license)
- Powered by [Ruby on Rails](https://github.com/rails/rails)
   
## Hiring ## Hiring
   
Loading
@@ -74,11 +74,11 @@ Instructions on how to start GitLab and how to run the tests can be found in the
Loading
@@ -74,11 +74,11 @@ Instructions on how to start GitLab and how to run the tests can be found in the
   
GitLab is a Ruby on Rails application that runs on the following software: GitLab is a Ruby on Rails application that runs on the following software:
   
- Ubuntu/Debian/CentOS/RHEL - Ubuntu/Debian/CentOS/RHEL/OpenSUSE
- Ruby (MRI) 2.3 - Ruby (MRI) 2.3
- Git 2.8.4+ - Git 2.8.4+
- Redis 2.8+ - Redis 2.8+
- MySQL or PostgreSQL - PostgreSQL (preferred) or MySQL
   
For more information please see the [architecture documentation](https://docs.gitlab.com/ce/development/architecture.html). For more information please see the [architecture documentation](https://docs.gitlab.com/ce/development/architecture.html).
   
Loading
Loading
Loading
@@ -92,8 +92,8 @@
Loading
@@ -92,8 +92,8 @@
success: function(buildData) { success: function(buildData) {
$('.js-build-output').html(buildData.trace_html); $('.js-build-output').html(buildData.trace_html);
if (removeRefreshStatuses.indexOf(buildData.status) >= 0) { if (removeRefreshStatuses.indexOf(buildData.status) >= 0) {
this.initScrollMonitor(); this.$buildRefreshAnimation.remove();
return this.$buildRefreshAnimation.remove(); return this.initScrollMonitor();
} }
}.bind(this) }.bind(this)
}); });
Loading
Loading
Loading
@@ -367,7 +367,7 @@
Loading
@@ -367,7 +367,7 @@
return $input.trigger('keyup'); return $input.trigger('keyup');
}, },
isLoading(data) { isLoading(data) {
if (!data) return false; if (!data || !data.length) return false;
if (Array.isArray(data)) data = data[0]; if (Array.isArray(data)) data = data[0];
return data === this.defaultLoadingData[0] || data.name === this.defaultLoadingData[0]; return data === this.defaultLoadingData[0] || data.name === this.defaultLoadingData[0];
}, },
Loading
Loading
Loading
@@ -139,15 +139,12 @@
Loading
@@ -139,15 +139,12 @@
return; return;
} }
return $.getJSON($container.data('path')).error(function() { return $.getJSON($container.data('path')).error(function() {
$container.find('.checking').hide();
$container.find('.unavailable').show(); $container.find('.unavailable').show();
return new Flash('Failed to check if a new branch can be created.', 'alert'); return new Flash('Failed to check if a new branch can be created.', 'alert');
}).success(function(data) { }).success(function(data) {
if (data.can_create_branch) { if (data.can_create_branch) {
$container.find('.checking').hide();
$container.find('.available').show(); $container.find('.available').show();
} else { } else {
$container.find('.checking').hide();
return $container.find('.unavailable').show(); return $container.find('.unavailable').show();
} }
}); });
Loading
Loading
Loading
@@ -239,7 +239,6 @@ ul.content-list {
Loading
@@ -239,7 +239,6 @@ ul.content-list {
} }
   
ul.controls { ul.controls {
padding-top: 1px;
float: right; float: right;
list-style: none; list-style: none;
   
Loading
Loading
.deploy-keys-list {
width: 100%;
overflow: auto;
table {
border: 1px solid $table-border-color;
}
}
.deploy-keys-title {
padding-bottom: 2px;
line-height: 2;
}
Loading
@@ -109,7 +109,7 @@
Loading
@@ -109,7 +109,7 @@
margin: auto; margin: auto;
margin-top: 0; margin-top: 0;
text-align: center; text-align: center;
font-size: 13px; font-size: 12px;
   
@media (max-width: $screen-sm-max) { @media (max-width: $screen-sm-max) {
// On smaller devices the warning becomes the fourth item in the list, // On smaller devices the warning becomes the fourth item in the list,
Loading
Loading
Loading
@@ -557,18 +557,14 @@ ul.notes {
Loading
@@ -557,18 +557,14 @@ ul.notes {
&.is-active { &.is-active {
color: $gl-text-green; color: $gl-text-green;
   
svg path { svg {
fill: $gl-text-green; fill: $gl-text-green;
} }
} }
   
svg { svg {
position: relative; position: relative;
color: $gray-darkest; fill: $gray-darkest;
path {
fill: $gray-darkest;
}
} }
} }
   
Loading
Loading
Loading
@@ -335,7 +335,6 @@
Loading
@@ -335,7 +335,6 @@
width: 100%; width: 100%;
background-color: $gray-light; background-color: $gray-light;
padding: $gl-padding; padding: $gl-padding;
overflow: auto;
white-space: nowrap; white-space: nowrap;
transition: max-height 0.3s, padding 0.3s; transition: max-height 0.3s, padding 0.3s;
   
Loading
@@ -621,14 +620,14 @@
Loading
@@ -621,14 +620,14 @@
} }
   
.dropdown-counter-badge { .dropdown-counter-badge {
float: right;
color: $border-color; color: $border-color;
font-weight: 100; font-weight: 100;
font-size: 15px; font-size: 15px;
margin-right: 2px; position: absolute;
right: 5px;
top: 8px;
} }
   
.grouped-pipeline-dropdown { .grouped-pipeline-dropdown {
padding: 0; padding: 0;
width: 191px; width: 191px;
Loading
Loading
Loading
@@ -10,7 +10,7 @@ class Admin::DeployKeysController < Admin::ApplicationController
Loading
@@ -10,7 +10,7 @@ class Admin::DeployKeysController < Admin::ApplicationController
end end
   
def create def create
@deploy_key = deploy_keys.new(deploy_key_params) @deploy_key = deploy_keys.new(deploy_key_params.merge(user: current_user))
   
if @deploy_key.save if @deploy_key.save
redirect_to admin_deploy_keys_path redirect_to admin_deploy_keys_path
Loading
@@ -39,6 +39,6 @@ class Admin::DeployKeysController < Admin::ApplicationController
Loading
@@ -39,6 +39,6 @@ class Admin::DeployKeysController < Admin::ApplicationController
end end
   
def deploy_key_params def deploy_key_params
params.require(:deploy_key).permit(:key, :title) params.require(:deploy_key).permit(:key, :title, :can_push)
end end
end end
class Admin::GroupsController < Admin::ApplicationController class Admin::GroupsController < Admin::ApplicationController
before_action :group, only: [:edit, :show, :update, :destroy, :project_update, :members_update] before_action :group, only: [:edit, :update, :destroy, :project_update, :members_update]
   
def index def index
@groups = Group.all @groups = Group.with_statistics
@groups = @groups.sort(@sort = params[:sort]) @groups = @groups.sort(@sort = params[:sort])
@groups = @groups.search(params[:name]) if params[:name].present? @groups = @groups.search(params[:name]) if params[:name].present?
@groups = @groups.page(params[:page]) @groups = @groups.page(params[:page])
end end
   
def show def show
@group = Group.with_statistics.find_by_full_path(params[:id])
@members = @group.members.order("access_level DESC").page(params[:members_page]) @members = @group.members.order("access_level DESC").page(params[:members_page])
@requesters = AccessRequestsFinder.new(@group).execute(current_user) @requesters = AccessRequestsFinder.new(@group).execute(current_user)
@projects = @group.projects.page(params[:projects_page]) @projects = @group.projects.with_statistics.page(params[:projects_page])
end end
   
def new def new
Loading
Loading
Loading
@@ -3,7 +3,7 @@ class Admin::ProjectsController < Admin::ApplicationController
Loading
@@ -3,7 +3,7 @@ class Admin::ProjectsController < Admin::ApplicationController
before_action :group, only: [:show, :transfer] before_action :group, only: [:show, :transfer]
   
def index def index
@projects = Project.all @projects = Project.with_statistics
@projects = @projects.in_namespace(params[:namespace_id]) if params[:namespace_id].present? @projects = @projects.in_namespace(params[:namespace_id]) if params[:namespace_id].present?
@projects = @projects.where(visibility_level: params[:visibility_level]) if params[:visibility_level].present? @projects = @projects.where(visibility_level: params[:visibility_level]) if params[:visibility_level].present?
@projects = @projects.with_push if params[:with_push].present? @projects = @projects.with_push if params[:with_push].present?
Loading
Loading
Loading
@@ -75,7 +75,7 @@ class GroupsController < Groups::ApplicationController
Loading
@@ -75,7 +75,7 @@ class GroupsController < Groups::ApplicationController
end end
   
def projects def projects
@projects = @group.projects.page(params[:page]) @projects = @group.projects.with_statistics.page(params[:page])
end end
   
def update def update
Loading
Loading
Loading
@@ -16,7 +16,7 @@ class Projects::DeployKeysController < Projects::ApplicationController
Loading
@@ -16,7 +16,7 @@ class Projects::DeployKeysController < Projects::ApplicationController
end end
   
def create def create
@key = DeployKey.new(deploy_key_params) @key = DeployKey.new(deploy_key_params.merge(user: current_user))
set_index_vars set_index_vars
   
if @key.valid? && @project.deploy_keys << @key if @key.valid? && @project.deploy_keys << @key
Loading
@@ -53,6 +53,6 @@ class Projects::DeployKeysController < Projects::ApplicationController
Loading
@@ -53,6 +53,6 @@ class Projects::DeployKeysController < Projects::ApplicationController
end end
   
def deploy_key_params def deploy_key_params
params.require(:deploy_key).permit(:key, :title) params.require(:deploy_key).permit(:key, :title, :can_push)
end end
end end
Loading
@@ -90,10 +90,12 @@ module ProjectsHelper
Loading
@@ -90,10 +90,12 @@ module ProjectsHelper
end end
   
def project_for_deploy_key(deploy_key) def project_for_deploy_key(deploy_key)
if deploy_key.projects.include?(@project) if deploy_key.has_access_to?(@project)
@project @project
else else
deploy_key.projects.find { |project| can?(current_user, :read_project, project) } deploy_key.projects.find do |project|
can?(current_user, :read_project, project)
end
end end
end end
   
Loading
@@ -246,11 +248,6 @@ module ProjectsHelper
Loading
@@ -246,11 +248,6 @@ module ProjectsHelper
end end
end end
   
def repository_size(project = @project)
size_in_bytes = project.repository_size * 1.megabyte
number_to_human_size(size_in_bytes, delimiter: ',', precision: 2)
end
def default_url_to_repo(project = @project) def default_url_to_repo(project = @project)
case default_clone_protocol case default_clone_protocol
when 'ssh' when 'ssh'
Loading
@@ -398,20 +395,6 @@ module ProjectsHelper
Loading
@@ -398,20 +395,6 @@ module ProjectsHelper
[@project.path_with_namespace, sha, "readme"].join('-') [@project.path_with_namespace, sha, "readme"].join('-')
end end
   
def round_commit_count(project)
count = project.commit_count
if count > 10000
'10000+'
elsif count > 5000
'5000+'
elsif count > 1000
'1000+'
else
count
end
end
def current_ref def current_ref
@ref || @repository.try(:root_ref) @ref || @repository.try(:root_ref)
end end
Loading
Loading
Loading
@@ -11,6 +11,7 @@ module SortingHelper
Loading
@@ -11,6 +11,7 @@ module SortingHelper
sort_value_due_date_soon => sort_title_due_date_soon, sort_value_due_date_soon => sort_title_due_date_soon,
sort_value_due_date_later => sort_title_due_date_later, sort_value_due_date_later => sort_title_due_date_later,
sort_value_largest_repo => sort_title_largest_repo, sort_value_largest_repo => sort_title_largest_repo,
sort_value_largest_group => sort_title_largest_group,
sort_value_recently_signin => sort_title_recently_signin, sort_value_recently_signin => sort_title_recently_signin,
sort_value_oldest_signin => sort_title_oldest_signin, sort_value_oldest_signin => sort_title_oldest_signin,
sort_value_downvotes => sort_title_downvotes, sort_value_downvotes => sort_title_downvotes,
Loading
@@ -92,6 +93,10 @@ module SortingHelper
Loading
@@ -92,6 +93,10 @@ module SortingHelper
'Largest repository' 'Largest repository'
end end
   
def sort_title_largest_group
'Largest group'
end
def sort_title_recently_signin def sort_title_recently_signin
'Recent sign in' 'Recent sign in'
end end
Loading
@@ -193,7 +198,11 @@ module SortingHelper
Loading
@@ -193,7 +198,11 @@ module SortingHelper
end end
   
def sort_value_largest_repo def sort_value_largest_repo
'repository_size_desc' 'storage_size_desc'
end
def sort_value_largest_group
'storage_size_desc'
end end
   
def sort_value_recently_signin def sort_value_recently_signin
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment