From 5f66bfe7edbdae24008a9ebeaadca9441b011184 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Fri, 22 Apr 2016 21:23:55 +0100 Subject: [PATCH 01/83] Added due date calendar to new issue form Closes #15516 --- .../javascripts/issuable_form.js.coffee | 9 ++ app/assets/stylesheets/framework/forms.scss | 8 +- app/views/shared/issuable/_form.html.haml | 82 ++++++++++--------- 3 files changed, 58 insertions(+), 41 deletions(-) diff --git a/app/assets/javascripts/issuable_form.js.coffee b/app/assets/javascripts/issuable_form.js.coffee index 7a788f761b..72ae3bde81 100644 --- a/app/assets/javascripts/issuable_form.js.coffee +++ b/app/assets/javascripts/issuable_form.js.coffee @@ -20,6 +20,15 @@ class @IssuableForm @initWip() + $issuableDueDate = $('#issuable-due-date') + + if $issuableDueDate.length + $('.datepicker').datepicker( + dateFormat: 'yy-mm-dd', + onSelect: (dateText, inst) -> + $issuableDueDate.val dateText + ).datepicker 'setDate', $.datepicker.parseDate('yy-mm-dd', $issuableDueDate.val()) + initAutosave: -> new Autosave @titleField, [ document.location.pathname, diff --git a/app/assets/stylesheets/framework/forms.scss b/app/assets/stylesheets/framework/forms.scss index 558b133f59..46acc3b772 100644 --- a/app/assets/stylesheets/framework/forms.scss +++ b/app/assets/stylesheets/framework/forms.scss @@ -28,10 +28,6 @@ input[type='text'].danger { } label { - &.control-label { - @extend .col-sm-2; - } - &.inline-label { margin: 0; } @@ -41,6 +37,10 @@ label { } } +.control-label { + @extend .col-sm-2; +} + .inline-input-group { width: 250px; } diff --git a/app/views/shared/issuable/_form.html.haml b/app/views/shared/issuable/_form.html.haml index 5c52cc6d1d..9ac5c0d9e4 100644 --- a/app/views/shared/issuable/_form.html.haml +++ b/app/views/shared/issuable/_form.html.haml @@ -44,45 +44,53 @@ This issue is confidential and should only be visible to team members - if can?(current_user, :"admin_#{issuable.to_ability_name}", issuable.project) + - has_due_date = issuable.has_attribute?(:due_date) %hr - .form-group - .issue-assignee - = f.label :assignee_id, "Assignee", class: 'control-label' - .col-sm-10 - .issuable-form-select-holder - = users_select_tag("#{issuable.class.model_name.param_key}[assignee_id]", - placeholder: 'Select assignee', class: 'custom-form-control', null_user: true, - selected: issuable.assignee_id, project: @target_project || @project, - first_user: true, current_user: true, include_blank: true) -   - = link_to 'Assign to me', '#', class: 'btn assign-to-me-link' - .form-group - .issue-milestone - = f.label :milestone_id, "Milestone", class: 'control-label' - .col-sm-10 - - if milestone_options(issuable).present? + .row + %div{ class: (has_due_date ? "col-lg-6" : "col-sm-12") } + .form-group.issue-assignee + = f.label :assignee_id, "Assignee", class: "control-label #{"col-lg-4" if has_due_date}" + .col-sm-10{ class: ("col-lg-8" if has_due_date) } .issuable-form-select-holder - = f.select(:milestone_id, milestone_options(issuable), - { include_blank: true }, { class: 'select2', data: { placeholder: 'Select milestone' } }) - - else - .prepend-top-10 - %span.light No open milestones available. -   - - if can? current_user, :admin_milestone, issuable.project - = link_to 'Create new milestone', new_namespace_project_milestone_path(issuable.project.namespace, issuable.project), target: :blank - .form-group - - has_labels = issuable.project.labels.any? - = f.label :label_ids, "Labels", class: 'control-label' - .col-sm-10{ class: ('issuable-form-padding-top' if !has_labels) } - - if has_labels - .issuable-form-select-holder - = f.collection_select :label_ids, issuable.project.labels.all, :id, :name, - { selected: issuable.label_ids }, multiple: true, class: 'select2', data: { placeholder: "Select labels" } - - else - %span.light No labels yet. -   - - if can? current_user, :admin_label, issuable.project - = link_to 'Create new label', new_namespace_project_label_path(issuable.project.namespace, issuable.project), target: :blank + = users_select_tag("#{issuable.class.model_name.param_key}[assignee_id]", + placeholder: 'Select assignee', class: 'custom-form-control', null_user: true, + selected: issuable.assignee_id, project: @target_project || @project, + first_user: true, current_user: true, include_blank: true) + %br + = link_to 'Assign to me', '#', class: 'assign-to-me-link prepend-top-5 inline' + .form-group.issue-milestone + = f.label :milestone_id, "Milestone", class: "control-label #{"col-lg-4" if has_due_date}" + .col-sm-10{ class: ("col-lg-8" if has_due_date) } + - if milestone_options(issuable).present? + .issuable-form-select-holder + = f.select(:milestone_id, milestone_options(issuable), + { include_blank: true }, { class: 'select2', data: { placeholder: 'Select milestone' } }) + - else + .prepend-top-10 + %span.light No open milestones available. + - if can? current_user, :admin_milestone, issuable.project + %br + = link_to 'Create new milestone', new_namespace_project_milestone_path(issuable.project.namespace, issuable.project), target: :blank, class: "prepend-top-5 inline" + .form-group + - has_labels = issuable.project.labels.any? + = f.label :label_ids, "Labels", class: "control-label #{"col-lg-4" if has_due_date}" + .col-sm-10{ class: "#{"col-lg-8" if has_due_date} #{'issuable-form-padding-top' if !has_labels}" } + - if has_labels + .issuable-form-select-holder + = f.collection_select :label_ids, issuable.project.labels.all, :id, :name, + { selected: issuable.label_ids }, multiple: true, class: 'select2', data: { placeholder: "Select labels" } + - else + %span.light No labels yet. + - if can? current_user, :admin_label, issuable.project + %br + = link_to 'Create new label', new_namespace_project_label_path(issuable.project.namespace, issuable.project), target: :blank, class: "prepend-top-5 inline" + - if issuable.has_attribute?(:due_date) + .col-lg-6 + .form-group + = f.label :due_date, "Due date", class: "control-label" + = f.hidden_field :due_date, id: "issuable-due-date" + .col-sm-10 + .datepicker - if issuable.can_move?(current_user) %hr From 82ea43555773f9acb5c02dd659ab47cec3d2ebb0 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Fri, 22 Apr 2016 21:48:45 +0100 Subject: [PATCH 02/83] Added tests --- spec/features/issues_spec.rb | 60 +++++++++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/spec/features/issues_spec.rb b/spec/features/issues_spec.rb index d5755c293c..93c1fc0d03 100644 --- a/spec/features/issues_spec.rb +++ b/spec/features/issues_spec.rb @@ -64,6 +64,64 @@ describe 'Issues', feature: true do end end + describe 'due date', js: true do + context 'on new form' do + before do + visit new_namespace_project_issue_path(project.namespace, project) + end + + it 'should save with due date' do + date = Date.today.at_beginning_of_month + + fill_in 'issue_title', with: 'bug 345' + fill_in 'issue_description', with: 'bug description' + + page.within '.datepicker' do + click_link date.day + end + + expect(find('#issuable-due-date', :visible => false).value).to eq date.to_s + + click_button 'Submit issue' + + page.within '.issuable-sidebar' do + expect(page).to have_content date.to_s(:medium) + end + end + end + + context 'on edit form' do + let(:issue) { create(:issue, author: @user,project: project, due_date: Date.today.at_beginning_of_month.to_s) } + + before do + visit edit_namespace_project_issue_path(project.namespace, project, issue) + end + + it 'should save with due date' do + date = Date.today.at_beginning_of_month + + expect(find('#issuable-due-date', :visible => false).value).to eq date.to_s + + date = date.tomorrow + + fill_in 'issue_title', with: 'bug 345' + fill_in 'issue_description', with: 'bug description' + + page.within '.datepicker' do + click_link date.day + end + + expect(find('#issuable-due-date', :visible => false).value).to eq date.to_s + + click_button 'Save changes' + + page.within '.issuable-sidebar' do + expect(page).to have_content date.to_s(:medium) + end + end + end + end + describe 'Issue info' do it 'excludes award_emoji from comment count' do issue = create(:issue, author: @user, assignee: @user, project: project, title: 'foobar') @@ -331,7 +389,7 @@ describe 'Issues', feature: true do page.within '.assignee' do click_link 'Edit' end - + page.within '.dropdown-menu-user' do click_link @user.name end From f6d321ae9cd9f751952e0ff2eda9718eecdc4bf1 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Fri, 22 Apr 2016 22:42:22 +0100 Subject: [PATCH 03/83] Fixed rubocop issues --- spec/features/issues_spec.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spec/features/issues_spec.rb b/spec/features/issues_spec.rb index 93c1fc0d03..dd114db7e8 100644 --- a/spec/features/issues_spec.rb +++ b/spec/features/issues_spec.rb @@ -80,7 +80,7 @@ describe 'Issues', feature: true do click_link date.day end - expect(find('#issuable-due-date', :visible => false).value).to eq date.to_s + expect(find('#issuable-due-date', visible: false).value).to eq date.to_s click_button 'Submit issue' @@ -100,7 +100,7 @@ describe 'Issues', feature: true do it 'should save with due date' do date = Date.today.at_beginning_of_month - expect(find('#issuable-due-date', :visible => false).value).to eq date.to_s + expect(find('#issuable-due-date', visible: false).value).to eq date.to_s date = date.tomorrow @@ -111,7 +111,7 @@ describe 'Issues', feature: true do click_link date.day end - expect(find('#issuable-due-date', :visible => false).value).to eq date.to_s + expect(find('#issuable-due-date', visible: false).value).to eq date.to_s click_button 'Save changes' From d4777cd86b79e5db7b1e351444c26b72cdaad3db Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Mon, 25 Apr 2016 08:04:37 +0100 Subject: [PATCH 04/83] Updated if statement --- app/views/shared/issuable/_form.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/shared/issuable/_form.html.haml b/app/views/shared/issuable/_form.html.haml index 9ac5c0d9e4..d06a287281 100644 --- a/app/views/shared/issuable/_form.html.haml +++ b/app/views/shared/issuable/_form.html.haml @@ -84,7 +84,7 @@ - if can? current_user, :admin_label, issuable.project %br = link_to 'Create new label', new_namespace_project_label_path(issuable.project.namespace, issuable.project), target: :blank, class: "prepend-top-5 inline" - - if issuable.has_attribute?(:due_date) + - if has_due_date .col-lg-6 .form-group = f.label :due_date, "Due date", class: "control-label" From 29211b48d785d18c3af59a11e07abaf820086701 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Mon, 16 May 2016 12:21:12 -0500 Subject: [PATCH 05/83] Implement new horizontal navigation to project pages Signed-off-by: Dmitriy Zaporozhets --- app/assets/stylesheets/framework/nav.scss | 6 +- app/helpers/tab_helper.rb | 4 +- app/views/layouts/nav/_dashboard.html.haml | 2 +- app/views/layouts/nav/_project.html.haml | 63 +++++------ .../layouts/nav/_project_settings.html.haml | 102 ++++++++---------- app/views/layouts/project.html.haml | 2 +- app/views/layouts/project_settings.html.haml | 3 +- app/views/projects/_home_panel.html.haml | 22 ---- 8 files changed, 77 insertions(+), 127 deletions(-) diff --git a/app/assets/stylesheets/framework/nav.scss b/app/assets/stylesheets/framework/nav.scss index a81fcb1c6b..2e1aa884d9 100644 --- a/app/assets/stylesheets/framework/nav.scss +++ b/app/assets/stylesheets/framework/nav.scss @@ -196,7 +196,7 @@ position: fixed; top: $header-height; width: 100%; - z-index: 1; + z-index: 3; background: $background-color; border-bottom: 1px solid $border-color; transition-duration: .3s; @@ -238,6 +238,10 @@ @media (max-width: $screen-xs-min) { margin-left: 0; } + + li.active { + font-weight: bold; + } } } diff --git a/app/helpers/tab_helper.rb b/app/helpers/tab_helper.rb index 96a8367100..9f639d3461 100644 --- a/app/helpers/tab_helper.rb +++ b/app/helpers/tab_helper.rb @@ -95,7 +95,9 @@ module TabHelper end def project_tab_class - return "active" if current_page?(controller: "/projects", action: :edit, id: @project) + if controller.controller_path =~ /\Aprojects/ + return 'active' + end if ['services', 'hooks', 'deploy_keys', 'protected_branches'].include? controller.controller_name "active" diff --git a/app/views/layouts/nav/_dashboard.html.haml b/app/views/layouts/nav/_dashboard.html.haml index fad4224e94..c82c2f1bfa 100644 --- a/app/views/layouts/nav/_dashboard.html.haml +++ b/app/views/layouts/nav/_dashboard.html.haml @@ -1,5 +1,5 @@ %ul.nav.nav-sidebar - = nav_link(path: ['root#index', 'projects#trending', 'projects#starred', 'dashboard/projects#index'], html_options: {class: 'home'}) do + = nav_link(path: ['root#index', 'projects#trending', 'projects#starred', 'dashboard/projects#index'], html_options: {class: "#{project_tab_class} home"}) do = link_to dashboard_projects_path, title: 'Projects' do = icon('bookmark fw') %span diff --git a/app/views/layouts/nav/_project.html.haml b/app/views/layouts/nav/_project.html.haml index 479bde3371..b60c419fb3 100644 --- a/app/views/layouts/nav/_project.html.haml +++ b/app/views/layouts/nav/_project.html.haml @@ -1,19 +1,25 @@ -%ul.nav.nav-sidebar - - if @project.group - = nav_link do - = link_to group_path(@project.group), title: 'Go to group', class: 'back-link' do - = icon('caret-square-o-left fw') - %span - Go to group - - else - = nav_link do - = link_to root_path, title: 'Go to dashboard', class: 'back-link' do - = icon('caret-square-o-left fw') - %span - Go to dashboard - - %li.separate-item +- if current_user + .controls + - access = user_max_access_in_project(current_user.id, @project) + - can_edit = can?(current_user, :admin_project, @project) + %span.dropdown.project-settings-dropdown + %a.dropdown-new.btn.btn-default#project-settings-button{href: '#', 'data-toggle' => 'dropdown'} + = icon('cog') + = icon('caret-down') + %ul.dropdown-menu.dropdown-menu-align-right + = render 'layouts/nav/project_settings' + %li.divider + - if can_edit + %li + = link_to edit_project_path(@project) do + Edit Project + - if access + %li + = link_to leave_namespace_project_project_members_path(@project.namespace, @project), + data: { confirm: leave_project_message(@project) }, method: :delete, title: 'Leave project' do + Leave Project +%ul.nav-links = nav_link(path: 'projects#show', html_options: {class: 'home'}) do = link_to project_path(@project), title: 'Project', class: 'shortcuts-project' do = icon('bookmark fw') @@ -44,7 +50,7 @@ = icon('cubes fw') %span Builds - %span.count.builds_counter= number_with_delimiter(@project.builds.running_or_pending.count(:all)) + %span.badge.count.builds_counter= number_with_delimiter(@project.builds.running_or_pending.count(:all)) - if project_nav_tab? :graphs = nav_link(controller: %w(graphs)) do @@ -67,7 +73,7 @@ %span Issues - if @project.default_issues_tracker? - %span.count.issue_counter= number_with_delimiter(@project.issues.visible_to_user(current_user).opened.count) + %span.badge.count.issue_counter= number_with_delimiter(@project.issues.visible_to_user(current_user).opened.count) - if project_nav_tab? :merge_requests = nav_link(controller: :merge_requests) do @@ -75,14 +81,7 @@ = icon('tasks fw') %span Merge Requests - %span.count.merge_counter= number_with_delimiter(@project.merge_requests.opened.count) - - - if project_nav_tab? :team - = nav_link(controller: [:project_members, :teams]) do - = link_to namespace_project_project_members_path(@project.namespace, @project), title: 'Members', class: 'team-tab tab' do - = icon('users fw') - %span - Members + %span.badge.count.merge_counter= number_with_delimiter(@project.merge_requests.opened.count) - if project_nav_tab? :labels = nav_link(controller: :labels) do @@ -98,13 +97,6 @@ %span Wiki - - if project_nav_tab? :forks - = nav_link(controller: :forks, action: :index) do - = link_to namespace_project_forks_path(@project.namespace, @project), title: 'Forks' do - = icon('code-fork fw') - %span - Forks - - if project_nav_tab? :snippets = nav_link(controller: :snippets) do = link_to namespace_project_snippets_path(@project.namespace, @project), title: 'Snippets', class: 'shortcuts-snippets' do @@ -112,13 +104,6 @@ %span Snippets - - if project_nav_tab? :settings - = nav_link(html_options: {class: "#{project_tab_class} separate-item"}) do - = link_to edit_project_path(@project), title: 'Settings' do - = icon('cogs fw') - %span - Settings - -# Global shortcut to network page for compatibility - if project_nav_tab? :network %li.hidden diff --git a/app/views/layouts/nav/_project_settings.html.haml b/app/views/layouts/nav/_project_settings.html.haml index d429a92846..885e78d38c 100644 --- a/app/views/layouts/nav/_project_settings.html.haml +++ b/app/views/layouts/nav/_project_settings.html.haml @@ -1,63 +1,45 @@ -%ul.nav.nav-sidebar - = nav_link do - = link_to project_path(@project), title: 'Go to project', class: 'back-link' do - = icon('caret-square-o-left fw') +- if project_nav_tab? :team + = nav_link(controller: [:project_members, :teams]) do + = link_to namespace_project_project_members_path(@project.namespace, @project), title: 'Members', class: 'team-tab tab' do %span - Go to project + Members - %li.separate-item +- if @project.allowed_to_share_with_group? + = nav_link(controller: :group_links) do + = link_to namespace_project_group_links_path(@project.namespace, @project), title: "Groups" do + %span + Groups += nav_link(controller: :deploy_keys) do + = link_to namespace_project_deploy_keys_path(@project.namespace, @project), title: 'Deploy Keys' do + %span + Deploy Keys += nav_link(controller: :hooks) do + = link_to namespace_project_hooks_path(@project.namespace, @project), title: 'Webhooks' do + %span + Webhooks += nav_link(controller: :services) do + = link_to namespace_project_services_path(@project.namespace, @project), title: 'Services' do + %span + Services += nav_link(controller: :protected_branches) do + = link_to namespace_project_protected_branches_path(@project.namespace, @project), title: 'Protected Branches' do + %span + Protected Branches - %ul.sidebar-subnav - = nav_link(path: 'projects#edit') do - = link_to edit_project_path(@project), title: 'Project Settings' do - = icon('pencil-square-o fw') - %span - Project Settings - - if @project.allowed_to_share_with_group? - = nav_link(controller: :group_links) do - = link_to namespace_project_group_links_path(@project.namespace, @project), title: "Groups" do - = icon('share-square-o fw') - %span - Groups - = nav_link(controller: :deploy_keys) do - = link_to namespace_project_deploy_keys_path(@project.namespace, @project), title: 'Deploy Keys' do - = icon('key fw') - %span - Deploy Keys - = nav_link(controller: :hooks) do - = link_to namespace_project_hooks_path(@project.namespace, @project), title: 'Webhooks' do - = icon('link fw') - %span - Webhooks - = nav_link(controller: :services) do - = link_to namespace_project_services_path(@project.namespace, @project), title: 'Services' do - = icon('cogs fw') - %span - Services - = nav_link(controller: :protected_branches) do - = link_to namespace_project_protected_branches_path(@project.namespace, @project), title: 'Protected Branches' do - = icon('lock fw') - %span - Protected Branches - - - if @project.builds_enabled? - = nav_link(controller: :runners) do - = link_to namespace_project_runners_path(@project.namespace, @project), title: 'Runners' do - = icon('cog fw') - %span - Runners - = nav_link(controller: :variables) do - = link_to namespace_project_variables_path(@project.namespace, @project), title: 'Variables' do - = icon('code fw') - %span - Variables - = nav_link(controller: :triggers) do - = link_to namespace_project_triggers_path(@project.namespace, @project), title: 'Triggers' do - = icon('retweet fw') - %span - Triggers - = nav_link(controller: :badges) do - = link_to namespace_project_badges_path(@project.namespace, @project), title: 'Badges' do - = icon('star-half-empty fw') - %span - Badges +- if @project.builds_enabled? + = nav_link(controller: :runners) do + = link_to namespace_project_runners_path(@project.namespace, @project), title: 'Runners' do + %span + Runners + = nav_link(controller: :variables) do + = link_to namespace_project_variables_path(@project.namespace, @project), title: 'Variables' do + %span + Variables + = nav_link(controller: :triggers) do + = link_to namespace_project_triggers_path(@project.namespace, @project), title: 'Triggers' do + %span + Triggers + = nav_link(controller: :badges) do + = link_to namespace_project_badges_path(@project.namespace, @project), title: 'Badges' do + %span + Badges diff --git a/app/views/layouts/project.html.haml b/app/views/layouts/project.html.haml index 6dfe7fbdae..20d6cdf724 100644 --- a/app/views/layouts/project.html.haml +++ b/app/views/layouts/project.html.haml @@ -1,7 +1,7 @@ - page_title @project.name_with_namespace - page_description @project.description unless page_description - header_title project_title(@project) unless header_title -- sidebar "project" unless sidebar +- nav "project" - content_for :scripts_body_top do - project = @target_project || @project diff --git a/app/views/layouts/project_settings.html.haml b/app/views/layouts/project_settings.html.haml index 59ce38f67b..4bc94bd132 100644 --- a/app/views/layouts/project_settings.html.haml +++ b/app/views/layouts/project_settings.html.haml @@ -1,5 +1,4 @@ - page_title "Settings" -- header_title project_title(@project, "Settings", edit_project_path(@project)) -- sidebar "project_settings" +- nav "project" = render template: "layouts/project" diff --git a/app/views/projects/_home_panel.html.haml b/app/views/projects/_home_panel.html.haml index 9b5de17dd3..cdb8d2b5e3 100644 --- a/app/views/projects/_home_panel.html.haml +++ b/app/views/projects/_home_panel.html.haml @@ -18,28 +18,6 @@ = link_to project_path(forked_from_project) do = forked_from_project.namespace.try(:name) - .cover-controls - - if current_user - = link_to namespace_project_path(@project.namespace, @project, format: :atom, private_token: current_user.private_token), class: 'btn btn-gray' do - = icon('rss') - - access = user_max_access_in_project(current_user.id, @project) - - can_edit = can?(current_user, :admin_project, @project) - - if access || can_edit - %span.dropdown.project-settings-dropdown - %a.dropdown-new.btn.btn-gray#project-settings-button{href: '#', 'data-toggle' => 'dropdown'} - = icon('cog') - = icon('angle-down') - %ul.dropdown-menu.dropdown-menu-right - - if can_edit - %li - = link_to edit_project_path(@project) do - Edit Project - - if access - %li - = link_to leave_namespace_project_project_members_path(@project.namespace, @project), - data: { confirm: leave_project_message(@project) }, method: :delete, title: 'Leave project' do - Leave Project - .project-repo-buttons .split-one.count-buttons = render 'projects/buttons/star' From 7365ac60f116d0e0a89a3bd8ebcf558b477c4bc3 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Mon, 16 May 2016 12:25:37 -0500 Subject: [PATCH 06/83] Fix spec for new project navigation Signed-off-by: Dmitriy Zaporozhets --- spec/features/projects/badges/list_spec.rb | 5 +---- spec/features/tags/master_updates_tag_spec.rb | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/spec/features/projects/badges/list_spec.rb b/spec/features/projects/badges/list_spec.rb index 13c9b95b31..51be81d634 100644 --- a/spec/features/projects/badges/list_spec.rb +++ b/spec/features/projects/badges/list_spec.rb @@ -8,12 +8,10 @@ feature 'list of badges' do project = create(:project) project.team << [user, :master] login_as(user) - visit edit_namespace_project_path(project.namespace, project) + visit namespace_project_badges_path(project.namespace, project) end scenario 'user displays list of badges' do - click_link 'Badges' - expect(page).to have_content 'build status' expect(page).to have_content 'Markdown' expect(page).to have_content 'HTML' @@ -26,7 +24,6 @@ feature 'list of badges' do end scenario 'user changes current ref on badges list page', js: true do - click_link 'Badges' select2('improve/awesome', from: '#ref') expect(page).to have_content 'badges/improve/awesome/build.svg' diff --git a/spec/features/tags/master_updates_tag_spec.rb b/spec/features/tags/master_updates_tag_spec.rb index c926e9841f..6b5b3122f7 100644 --- a/spec/features/tags/master_updates_tag_spec.rb +++ b/spec/features/tags/master_updates_tag_spec.rb @@ -12,7 +12,7 @@ feature 'Master updates tag', feature: true do context 'from the tags list page' do scenario 'updates the release notes' do - page.within(first('.controls')) do + page.within(first('.content-list .controls')) do click_link 'Edit release notes' end From 79b9ff60768644287daace5a8f640d1790816353 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Mon, 16 May 2016 12:36:27 -0500 Subject: [PATCH 07/83] Modify tests to match new navigation behaviour for project pages Signed-off-by: Dmitriy Zaporozhets --- features/project/active_tab.feature | 18 ++++------- features/project/project.feature | 9 ------ features/steps/admin/active_tab.rb | 10 +++++- features/steps/dashboard/active_tab.rb | 6 +--- features/steps/dashboard/shortcuts.rb | 2 +- features/steps/profile/active_tab.rb | 4 --- features/steps/project/active_tab.rb | 28 ++++++++++------- features/steps/project/fork.rb | 2 +- features/steps/project/project.rb | 12 ++----- features/steps/project/project_milestone.rb | 2 +- features/steps/shared/active_tab.rb | 28 +++-------------- features/steps/shared/issuable.rb | 8 ++--- features/steps/shared/project_tab.rb | 4 +-- features/steps/shared/sidebar_active_tab.rb | 35 +++++++++++++++++++++ 14 files changed, 82 insertions(+), 86 deletions(-) create mode 100644 features/steps/shared/sidebar_active_tab.rb diff --git a/features/project/active_tab.feature b/features/project/active_tab.feature index 2fd097d100..5125a3e577 100644 --- a/features/project/active_tab.feature +++ b/features/project/active_tab.feature @@ -30,11 +30,6 @@ Feature: Project Active Tab Then the active main tab should be Merge Requests And no other main tabs should be active - Scenario: On Project Members - Given I visit my project's members page - Then the active main tab should be Members - And no other main tabs should be active - Scenario: On Project Wiki Given I visit my project's wiki page Then the active main tab should be Wiki @@ -49,13 +44,6 @@ Feature: Project Active Tab # Sub Tabs: Settings - Scenario: On Project Settings/Edit - Given I visit my project's settings page - And I click the "Edit" tab - Then the active sub nav should be Edit - And no other sub navs should be active - And the active main tab should be Settings - Scenario: On Project Settings/Hooks Given I visit my project's settings page And I click the "Hooks" tab @@ -70,6 +58,12 @@ Feature: Project Active Tab And no other sub navs should be active And the active main tab should be Settings + Scenario: On Project Members + Given I visit my project's members page + Then the active sub nav should be Members + And no other sub navs should be active + And the active main tab should be Settings + # Sub Tabs: Commits Scenario: On Project Commits/Commits diff --git a/features/project/project.feature b/features/project/project.feature index f1f3ed2606..aa22401c88 100644 --- a/features/project/project.feature +++ b/features/project/project.feature @@ -18,15 +18,6 @@ Feature: Project Then I should see the default project avatar And I should not see the "Remove avatar" button - Scenario: I should have back to group button - And project "Shop" belongs to group - And I visit project "Shop" page - Then I should see back to group button - - Scenario: I should have back to group button - And I visit project "Shop" page - Then I should see back to dashboard button - Scenario: I should have readme on page And I visit project "Shop" page Then I should see project "Shop" README diff --git a/features/steps/admin/active_tab.rb b/features/steps/admin/active_tab.rb index 90d13abdb1..f2db180138 100644 --- a/features/steps/admin/active_tab.rb +++ b/features/steps/admin/active_tab.rb @@ -1,7 +1,7 @@ class Spinach::Features::AdminActiveTab < Spinach::FeatureSteps include SharedAuthentication include SharedPaths - include SharedActiveTab + include SharedSidebarActiveTab step 'the active main tab should be Home' do ensure_active_main_tab('Overview') @@ -34,4 +34,12 @@ class Spinach::Features::AdminActiveTab < Spinach::FeatureSteps step 'the active main tab should be Messages' do ensure_active_main_tab('Messages') end + + step 'no other main tabs should be active' do + expect(page).to have_selector('.nav-sidebar > li.active', count: 1) + end + + def ensure_active_main_tab(content) + expect(find('.nav-sidebar > li.active')).to have_content(content) + end end diff --git a/features/steps/dashboard/active_tab.rb b/features/steps/dashboard/active_tab.rb index 0e2c04fb29..04fe96cef2 100644 --- a/features/steps/dashboard/active_tab.rb +++ b/features/steps/dashboard/active_tab.rb @@ -1,9 +1,5 @@ class Spinach::Features::DashboardActiveTab < Spinach::FeatureSteps include SharedAuthentication include SharedPaths - include SharedActiveTab - - step 'the active main tab should be Help' do - ensure_active_main_tab('Help') - end + include SharedSidebarActiveTab end diff --git a/features/steps/dashboard/shortcuts.rb b/features/steps/dashboard/shortcuts.rb index a9083850b5..512dc5f18d 100644 --- a/features/steps/dashboard/shortcuts.rb +++ b/features/steps/dashboard/shortcuts.rb @@ -2,5 +2,5 @@ class Spinach::Features::DashboardShortcuts < Spinach::FeatureSteps include SharedAuthentication include SharedPaths include SharedProject - include SharedActiveTab + include SharedSidebarActiveTab end diff --git a/features/steps/profile/active_tab.rb b/features/steps/profile/active_tab.rb index 3b59089a09..4724a32627 100644 --- a/features/steps/profile/active_tab.rb +++ b/features/steps/profile/active_tab.rb @@ -22,8 +22,4 @@ class Spinach::Features::ProfileActiveTab < Spinach::FeatureSteps step 'the active main tab should be Audit Log' do ensure_active_main_tab('Audit Log') end - - def ensure_active_main_tab(content) - expect(find('.layout-nav li.active')).to have_content(content) - end end diff --git a/features/steps/project/active_tab.rb b/features/steps/project/active_tab.rb index 19d81453d8..4a5a71e7e6 100644 --- a/features/steps/project/active_tab.rb +++ b/features/steps/project/active_tab.rb @@ -16,12 +16,14 @@ class Spinach::Features::ProjectActiveTab < Spinach::FeatureSteps end step 'I click the "Snippets" tab' do - click_link('Snippets') + page.within('.layout-nav') do + click_link('Snippets') + end end - step 'I click the "Edit" tab' do - page.within '.sidebar-subnav' do - click_link('Project Settings') + step 'I click the "Edit Project"' do + page.within '.layout-nav .controls' do + click_link('Edit Project') end end @@ -33,14 +35,10 @@ class Spinach::Features::ProjectActiveTab < Spinach::FeatureSteps click_link('Deploy Keys') end - step 'the active sub nav should be Team' do + step 'the active sub nav should be Members' do ensure_active_sub_nav('Members') end - step 'the active sub nav should be Edit' do - ensure_active_sub_nav('Project') - end - step 'the active sub nav should be Hooks' do ensure_active_sub_nav('Webhooks') end @@ -56,7 +54,9 @@ class Spinach::Features::ProjectActiveTab < Spinach::FeatureSteps end step 'I click the "Branches" tab' do - click_link('Branches') + page.within '.content' do + click_link('Branches') + end end step 'I click the "Tags" tab' do @@ -82,11 +82,15 @@ class Spinach::Features::ProjectActiveTab < Spinach::FeatureSteps # Sub Tabs: Issues step 'I click the "Milestones" tab' do - click_link('Milestones') + page.within('.layout-nav') do + click_link('Milestones') + end end step 'I click the "Labels" tab' do - click_link('Labels') + page.within('.layout-nav') do + click_link('Labels') + end end step 'the active sub tab should be Issues' do diff --git a/features/steps/project/fork.rb b/features/steps/project/fork.rb index 527f7853da..8abeb5ee24 100644 --- a/features/steps/project/fork.rb +++ b/features/steps/project/fork.rb @@ -36,7 +36,7 @@ class Spinach::Features::ProjectFork < Spinach::FeatureSteps end step 'I goto the Merge Requests page' do - page.within '.page-sidebar-expanded' do + page.within '.layout-nav' do click_link "Merge Requests" end end diff --git a/features/steps/project/project.rb b/features/steps/project/project.rb index ef185861e0..a1785311c2 100644 --- a/features/steps/project/project.rb +++ b/features/steps/project/project.rb @@ -114,7 +114,9 @@ class Spinach::Features::Project < Spinach::FeatureSteps end step 'I should not see "Snippets" button' do - expect(page).not_to have_link 'Snippets' + page.within '.content' do + expect(page).not_to have_link 'Snippets' + end end step 'project "Shop" belongs to group' do @@ -123,14 +125,6 @@ class Spinach::Features::Project < Spinach::FeatureSteps @project.save! end - step 'I should see back to dashboard button' do - expect(page).to have_content 'Go to dashboard' - end - - step 'I should see back to group button' do - expect(page).to have_content 'Go to group' - end - step 'I click notifications drop down button' do click_link 'notifications-button' end diff --git a/features/steps/project/project_milestone.rb b/features/steps/project/project_milestone.rb index 2508c09e36..1864b3a2b5 100644 --- a/features/steps/project/project_milestone.rb +++ b/features/steps/project/project_milestone.rb @@ -52,7 +52,7 @@ class Spinach::Features::ProjectMilestone < Spinach::FeatureSteps end step 'I click link "Labels"' do - page.within('.nav-links') do + page.within('.layout-nav .nav-links') do page.find(:xpath, "//a[@href='#tab-labels']").click end end diff --git a/features/steps/shared/active_tab.rb b/features/steps/shared/active_tab.rb index 0bee91d758..ace717b990 100644 --- a/features/steps/shared/active_tab.rb +++ b/features/steps/shared/active_tab.rb @@ -2,7 +2,7 @@ module SharedActiveTab include Spinach::DSL def ensure_active_main_tab(content) - expect(find('.nav-sidebar > li.active')).to have_content(content) + expect(find('.layout-nav li.active')).to have_content(content) end def ensure_active_sub_tab(content) @@ -10,11 +10,11 @@ module SharedActiveTab end def ensure_active_sub_nav(content) - expect(find('.sidebar-subnav > li.active')).to have_content(content) + expect(find('.layout-nav .controls li.active')).to have_content(content) end step 'no other main tabs should be active' do - expect(page).to have_selector('.nav-sidebar > li.active', count: 1) + expect(page).to have_selector('.layout-nav .nav-links > li.active', count: 1) end step 'no other sub tabs should be active' do @@ -22,26 +22,6 @@ module SharedActiveTab end step 'no other sub navs should be active' do - expect(page).to have_selector('.sidebar-subnav > li.active', count: 1) - end - - step 'the active main tab should be Home' do - ensure_active_main_tab('Projects') - end - - step 'the active main tab should be Projects' do - ensure_active_main_tab('Projects') - end - - step 'the active main tab should be Issues' do - ensure_active_main_tab('Issues') - end - - step 'the active main tab should be Merge Requests' do - ensure_active_main_tab('Merge Requests') - end - - step 'the active main tab should be Help' do - ensure_active_main_tab('Help') + expect(page).to have_selector('.layout-nav .controls li.active', count: 1) end end diff --git a/features/steps/shared/issuable.rb b/features/steps/shared/issuable.rb index a58b3cb7e1..733e80b727 100644 --- a/features/steps/shared/issuable.rb +++ b/features/steps/shared/issuable.rb @@ -111,7 +111,7 @@ module SharedIssuable step 'I sort the list by "Oldest updated"' do find('button.dropdown-toggle.btn').click - page.within('ul.dropdown-menu.dropdown-menu-align-right li') do + page.within('.content ul.dropdown-menu.dropdown-menu-align-right li') do click_link "Oldest updated" end end @@ -119,7 +119,7 @@ module SharedIssuable step 'I sort the list by "Least popular"' do find('button.dropdown-toggle.btn').click - page.within('ul.dropdown-menu.dropdown-menu-align-right li') do + page.within('.content ul.dropdown-menu.dropdown-menu-align-right li') do click_link 'Least popular' end end @@ -127,13 +127,13 @@ module SharedIssuable step 'I sort the list by "Most popular"' do find('button.dropdown-toggle.btn').click - page.within('ul.dropdown-menu.dropdown-menu-align-right li') do + page.within('.content ul.dropdown-menu.dropdown-menu-align-right li') do click_link 'Most popular' end end step 'The list should be sorted by "Oldest updated"' do - page.within('div.dropdown.inline.prepend-left-10') do + page.within('.content div.dropdown.inline.prepend-left-10') do expect(page.find('button.dropdown-toggle.btn')).to have_content('Oldest updated') end end diff --git a/features/steps/shared/project_tab.rb b/features/steps/shared/project_tab.rb index 4fc2ece79f..b209020c5a 100644 --- a/features/steps/shared/project_tab.rb +++ b/features/steps/shared/project_tab.rb @@ -41,9 +41,7 @@ module SharedProjectTab end step 'the active main tab should be Settings' do - page.within '.nav-sidebar' do - expect(page).to have_content('Go to project') - end + expect(page).to have_selector('.layout-nav .nav-links > li.active', count: 0) end step 'the active main tab should be Activity' do diff --git a/features/steps/shared/sidebar_active_tab.rb b/features/steps/shared/sidebar_active_tab.rb new file mode 100644 index 0000000000..5c47238777 --- /dev/null +++ b/features/steps/shared/sidebar_active_tab.rb @@ -0,0 +1,35 @@ +module SharedSidebarActiveTab + include Spinach::DSL + + step 'the active main tab should be Help' do + ensure_active_main_tab('Help') + end + + step 'no other main tabs should be active' do + expect(page).to have_selector('.nav-sidebar > li.active', count: 1) + end + + def ensure_active_main_tab(content) + expect(find('.nav-sidebar li.active')).to have_content(content) + end + + step 'the active main tab should be Home' do + ensure_active_main_tab('Projects') + end + + step 'the active main tab should be Projects' do + ensure_active_main_tab('Projects') + end + + step 'the active main tab should be Issues' do + ensure_active_main_tab('Issues') + end + + step 'the active main tab should be Merge Requests' do + ensure_active_main_tab('Merge Requests') + end + + step 'the active main tab should be Help' do + ensure_active_main_tab('Help') + end +end From ff5109e19cc6a34c8919da1be4aa6f7b53afdef9 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Mon, 16 May 2016 17:36:06 -0500 Subject: [PATCH 08/83] Fix shortcuts tests Signed-off-by: Dmitriy Zaporozhets --- features/steps/dashboard/shortcuts.rb | 1 + features/steps/project/project_shortcuts.rb | 1 + features/steps/shared/shortcuts.rb | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/features/steps/dashboard/shortcuts.rb b/features/steps/dashboard/shortcuts.rb index 512dc5f18d..118d27888d 100644 --- a/features/steps/dashboard/shortcuts.rb +++ b/features/steps/dashboard/shortcuts.rb @@ -3,4 +3,5 @@ class Spinach::Features::DashboardShortcuts < Spinach::FeatureSteps include SharedPaths include SharedProject include SharedSidebarActiveTab + include SharedShortcuts end diff --git a/features/steps/project/project_shortcuts.rb b/features/steps/project/project_shortcuts.rb index 49e9c5520b..8143b01ca4 100644 --- a/features/steps/project/project_shortcuts.rb +++ b/features/steps/project/project_shortcuts.rb @@ -3,6 +3,7 @@ class Spinach::Features::ProjectShortcuts < Spinach::FeatureSteps include SharedPaths include SharedProject include SharedProjectTab + include SharedShortcuts step 'I press "g" and "f"' do find('body').native.send_key('g') diff --git a/features/steps/shared/shortcuts.rb b/features/steps/shared/shortcuts.rb index bbb7afec0a..a75a8474d2 100644 --- a/features/steps/shared/shortcuts.rb +++ b/features/steps/shared/shortcuts.rb @@ -1,4 +1,4 @@ -module SharedActiveTab +module SharedShortcuts include Spinach::DSL step 'I press "g" and "p"' do From 442083e0fcc2d7ee9a3b202a1ebfdeaa659bb6ad Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Mon, 16 May 2016 17:56:39 -0500 Subject: [PATCH 09/83] Fix file browsing test Signed-off-by: Dmitriy Zaporozhets --- features/steps/project/source/browse_files.rb | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/features/steps/project/source/browse_files.rb b/features/steps/project/source/browse_files.rb index c26d7a1521..2c0498de3b 100644 --- a/features/steps/project/source/browse_files.rb +++ b/features/steps/project/source/browse_files.rb @@ -337,13 +337,15 @@ class Spinach::Features::ProjectSourceBrowseFiles < Spinach::FeatureSteps end step 'I should see buttons for allowed commands' do - expect(page).to have_content 'Raw' - expect(page).to have_content 'History' - expect(page).to have_content 'Permalink' - expect(page).not_to have_content 'Edit' - expect(page).not_to have_content 'Blame' - expect(page).to have_content 'Delete' - expect(page).to have_content 'Replace' + page.within '.content' do + expect(page).to have_content 'Raw' + expect(page).to have_content 'History' + expect(page).to have_content 'Permalink' + expect(page).not_to have_content 'Edit' + expect(page).not_to have_content 'Blame' + expect(page).to have_content 'Delete' + expect(page).to have_content 'Replace' + end end step 'I should see a notice about a new fork having been created' do From 5ba52693830bfa2d5c70a343b8c2ceace0f20ccd Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Tue, 17 May 2016 00:35:16 -0500 Subject: [PATCH 10/83] Fix dashboard shortcuts Signed-off-by: Dmitriy Zaporozhets --- app/assets/javascripts/dispatcher.js.coffee | 2 +- .../javascripts/shortcuts_dashboard_navigation.js.coffee | 8 ++++---- app/views/layouts/nav/_dashboard.html.haml | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/assets/javascripts/dispatcher.js.coffee b/app/assets/javascripts/dispatcher.js.coffee index f91aa3c5ad..12c143fdf7 100644 --- a/app/assets/javascripts/dispatcher.js.coffee +++ b/app/assets/javascripts/dispatcher.js.coffee @@ -119,7 +119,7 @@ class Dispatcher new UsersSelect() when 'projects' new NamespaceSelect() - when 'dashboard' + when 'dashboard', 'root' shortcut_handler = new ShortcutsDashboardNavigation() when 'profiles' new Profile() diff --git a/app/assets/javascripts/shortcuts_dashboard_navigation.js.coffee b/app/assets/javascripts/shortcuts_dashboard_navigation.js.coffee index 4a05bdccdb..cca2b8a1fc 100644 --- a/app/assets/javascripts/shortcuts_dashboard_navigation.js.coffee +++ b/app/assets/javascripts/shortcuts_dashboard_navigation.js.coffee @@ -3,10 +3,10 @@ class @ShortcutsDashboardNavigation extends Shortcuts constructor: -> super() - Mousetrap.bind('g a', -> ShortcutsDashboardNavigation.findAndFollowLink('.shortcuts-activity')) - Mousetrap.bind('g i', -> ShortcutsDashboardNavigation.findAndFollowLink('.shortcuts-issues')) - Mousetrap.bind('g m', -> ShortcutsDashboardNavigation.findAndFollowLink('.shortcuts-merge_requests')) - Mousetrap.bind('g p', -> ShortcutsDashboardNavigation.findAndFollowLink('.shortcuts-projects')) + Mousetrap.bind('g a', -> ShortcutsDashboardNavigation.findAndFollowLink('.dashboard-shortcuts-activity')) + Mousetrap.bind('g i', -> ShortcutsDashboardNavigation.findAndFollowLink('.dashboard-shortcuts-issues')) + Mousetrap.bind('g m', -> ShortcutsDashboardNavigation.findAndFollowLink('.dashboard-shortcuts-merge_requests')) + Mousetrap.bind('g p', -> ShortcutsDashboardNavigation.findAndFollowLink('.dashboard-shortcuts-projects')) @findAndFollowLink: (selector) -> link = $(selector).attr('href') diff --git a/app/views/layouts/nav/_dashboard.html.haml b/app/views/layouts/nav/_dashboard.html.haml index c82c2f1bfa..43532b0c15 100644 --- a/app/views/layouts/nav/_dashboard.html.haml +++ b/app/views/layouts/nav/_dashboard.html.haml @@ -1,6 +1,6 @@ %ul.nav.nav-sidebar = nav_link(path: ['root#index', 'projects#trending', 'projects#starred', 'dashboard/projects#index'], html_options: {class: "#{project_tab_class} home"}) do - = link_to dashboard_projects_path, title: 'Projects' do + = link_to dashboard_projects_path, title: 'Projects', class: 'dashboard-shortcuts-projects' do = icon('bookmark fw') %span Projects @@ -11,7 +11,7 @@ Todos %span.count.todos-pending-count= number_with_delimiter(todos_pending_count) = nav_link(path: 'dashboard#activity') do - = link_to activity_dashboard_path, class: 'shortcuts-activity', title: 'Activity' do + = link_to activity_dashboard_path, class: 'dashboard-shortcuts-activity', title: 'Activity' do = icon('dashboard fw') %span Activity @@ -26,13 +26,13 @@ %span Milestones = nav_link(path: 'dashboard#issues') do - = link_to assigned_issues_dashboard_path, title: 'Issues', class: 'shortcuts-issues' do + = link_to assigned_issues_dashboard_path, title: 'Issues', class: 'dashboard-shortcuts-issues' do = icon('exclamation-circle fw') %span Issues %span.count= number_with_delimiter(current_user.assigned_issues.opened.count) = nav_link(path: 'dashboard#merge_requests') do - = link_to assigned_mrs_dashboard_path, title: 'Merge Requests', class: 'shortcuts-merge_requests' do + = link_to assigned_mrs_dashboard_path, title: 'Merge Requests', class: 'dashboard-shortcuts-merge_requests' do = icon('tasks fw') %span Merge Requests From b5552bc4e57f73a80e990ee4182fb48fa4851ad3 Mon Sep 17 00:00:00 2001 From: DJ Mountney Date: Wed, 18 May 2016 08:48:48 -0700 Subject: [PATCH 11/83] Add health check feature documentation --- doc/README.md | 1 + doc/monitoring/health_check.md | 57 ++++++++++++++++++++++ doc/monitoring/img/health_check_token.png | Bin 0 -> 10884 bytes 3 files changed, 58 insertions(+) create mode 100644 doc/monitoring/health_check.md create mode 100644 doc/monitoring/img/health_check_token.png diff --git a/doc/README.md b/doc/README.md index e358da1c42..8aed060d24 100644 --- a/doc/README.md +++ b/doc/README.md @@ -41,6 +41,7 @@ - [Git LFS configuration](workflow/lfs/lfs_administration.md) - [Housekeeping](administration/housekeeping.md) Keep your Git repository tidy and fast. - [GitLab Performance Monitoring](monitoring/performance/introduction.md) Configure GitLab and InfluxDB for measuring performance metrics +- [Monitoring uptime](monitoring/health_check.md) Check the server status using the health check endpoint - [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 diff --git a/doc/monitoring/health_check.md b/doc/monitoring/health_check.md new file mode 100644 index 0000000000..bbfb63dd84 --- /dev/null +++ b/doc/monitoring/health_check.md @@ -0,0 +1,57 @@ +# Health Check +_**Note:** This feature was [introduced][ce-3888] in GitLab 8.8_ + +GitLab provides a health check endpoint for uptime monitoring on the `health_check` web +endpoint. The health check reports on the overall system status based on the status of +the database connection, the state of the database migrations, and the ability to write +and access the cache. This endpoint can be provided to uptime monitoring services like +[Pingdom][pindom], [Nagios][nagios-health], and [NewRelic][newrelic-health]. + +## Access Token + +A access token needs to be provided while accessing the health check endpoint. The current +accepted token can be found on the `admin/heath_check` page of your GitLab instance. + +![access token](img/health_check_token.png) + +The access token can be passed as a url parameter: + +`https://gitlab.example.com/health_check.json?token=ACCESS_TOKEN` + +or as a http header: + +```bash +curl -H "TOKEN: ACCESS_TOKEN" https://gitlab.example.com/health_check.json +``` + +## Using the Endpoint + +Once you have the access token, health information can be retrieved as plain text, JSON, +or XML using the `health_check` endpoint: + +- `https://gitlab.example.com/health_check?token=ACCESS_TOKEN` +- `https://gitlab.example.com/health_check.json?token=ACCESS_TOKEN` +- `https://gitlab.example.com/health_check.xml?token=ACCESS_TOKEN` + +You can also ask for the status of specific services: + +- `https://gitlab.example.com/health_check/cache.json?token=ACCESS_TOKEN` +- `https://gitlab.example.com/health_check/database.json?token=ACCESS_TOKEN` +- `https://gitlab.example.com/health_check/migrations.json?token=ACCESS_TOKEN` + +Example output: +```bash +curl -H "TOKEN: ACCESS_TOKEN" https://gitlab.example.com/health_check.json +{"healthy":true,"message":"success"} +``` + +## Status + +On failure the endpoint will return a `500` http status code. On success the endpoint +will return a valid successful http status code, and a `success` message. Ideally your +uptime monitoring should look for the success message. + +[ce-3888]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3888 +[pingdom]: https://www.pingdom.com +[nagios-health]: https://nagios-plugins.org/doc/man/check_http.html +[newrelic-health]: https://docs.newrelic.com/docs/alerts/alert-policies/downtime-alerts/availability-monitoring diff --git a/doc/monitoring/img/health_check_token.png b/doc/monitoring/img/health_check_token.png new file mode 100644 index 0000000000000000000000000000000000000000..2daf8606b009aedda120af03baa13c36a195f07d GIT binary patch literal 10884 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 literal 0 HcmV?d00001 From 35430f9ef72664218a3cdc0f7c06852a5d6e90ab Mon Sep 17 00:00:00 2001 From: DJ Mountney Date: Wed, 18 May 2016 12:00:26 -0700 Subject: [PATCH 12/83] Fix broken pingdom link in the health_check docs --- doc/monitoring/health_check.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/monitoring/health_check.md b/doc/monitoring/health_check.md index bbfb63dd84..22c53a9aec 100644 --- a/doc/monitoring/health_check.md +++ b/doc/monitoring/health_check.md @@ -5,7 +5,7 @@ GitLab provides a health check endpoint for uptime monitoring on the `health_che endpoint. The health check reports on the overall system status based on the status of the database connection, the state of the database migrations, and the ability to write and access the cache. This endpoint can be provided to uptime monitoring services like -[Pingdom][pindom], [Nagios][nagios-health], and [NewRelic][newrelic-health]. +[Pingdom][pingdom], [Nagios][nagios-health], and [NewRelic][newrelic-health]. ## Access Token From 0d9c351b47dedd973620531ff3412d6da6190b2f Mon Sep 17 00:00:00 2001 From: Karlo Soriano Date: Fri, 13 May 2016 13:42:07 +0800 Subject: [PATCH 13/83] Wrap "No groups found" message with a .nothing-here-block --- app/views/shared/groups/_list.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/shared/groups/_list.html.haml b/app/views/shared/groups/_list.html.haml index 1aa7ed1f2e..427595c47a 100644 --- a/app/views/shared/groups/_list.html.haml +++ b/app/views/shared/groups/_list.html.haml @@ -3,4 +3,4 @@ - groups.each_with_index do |group, i| = render "shared/groups/group", group: group - else - %h3 No groups found + .nothing-here-block No groups found From 5bb7fa1bd93f697a6023c738b7a1f9411fbecac9 Mon Sep 17 00:00:00 2001 From: Annabel Dunstone Date: Thu, 19 May 2016 10:11:54 -0500 Subject: [PATCH 14/83] Redesign project page header --- app/assets/stylesheets/framework/avatar.scss | 1 + app/assets/stylesheets/framework/blocks.scss | 11 +- app/assets/stylesheets/framework/mobile.scss | 4 - app/assets/stylesheets/framework/nav.scss | 9 + .../stylesheets/framework/variables.scss | 4 +- app/assets/stylesheets/pages/projects.scss | 163 +++++++++++++----- app/views/layouts/nav/_project.html.haml | 2 +- app/views/projects/_home_panel.html.haml | 54 +++--- .../projects/buttons/_dropdown.html.haml | 2 +- .../projects/buttons/_notifications.html.haml | 6 +- app/views/projects/show.html.haml | 77 +++++---- app/views/shared/_clone_panel.html.haml | 2 +- 12 files changed, 212 insertions(+), 123 deletions(-) diff --git a/app/assets/stylesheets/framework/avatar.scss b/app/assets/stylesheets/framework/avatar.scss index f5ce70b606..bb8d71fbae 100644 --- a/app/assets/stylesheets/framework/avatar.scss +++ b/app/assets/stylesheets/framework/avatar.scss @@ -45,6 +45,7 @@ &.s32 { font-size: 20px; line-height: 32px; } &.s40 { font-size: 16px; line-height: 40px; } &.s60 { font-size: 32px; line-height: 60px; } + &.s70 { font-size: 34px; line-height: 70px; } &.s90 { font-size: 36px; line-height: 90px; } &.s110 { font-size: 40px; line-height: 112px; font-weight: 300; } &.s140 { font-size: 72px; line-height: 140px; } diff --git a/app/assets/stylesheets/framework/blocks.scss b/app/assets/stylesheets/framework/blocks.scss index 434a26d57c..6981f834d3 100644 --- a/app/assets/stylesheets/framework/blocks.scss +++ b/app/assets/stylesheets/framework/blocks.scss @@ -24,8 +24,8 @@ background-color: $background-color; padding: $gl-padding; margin-bottom: 0; - border-top: 1px solid $border-color; - border-bottom: 1px solid $border-color; + border-top: 1px solid $white-dark; + border-bottom: 1px solid $white-dark; color: $gl-gray; &.oneline-block { @@ -110,9 +110,9 @@ .cover-title { color: $gl-header-color; margin: 0; - font-size: 23px; + font-size: 24px; font-weight: normal; - margin: 16px 0 5px; + margin-bottom: 5px; color: #4c4e54; font-size: 23px; line-height: 1.1; @@ -137,7 +137,6 @@ } .cover-desc { - padding: 0 $gl-padding 3px; color: $gl-text-color; &.username:last-child { @@ -205,7 +204,7 @@ .content-block { padding: $gl-padding 0; - border-bottom: 1px solid $border-color; + border-bottom: 1px solid $white-dark; &.oneline-block { line-height: 36px; diff --git a/app/assets/stylesheets/framework/mobile.scss b/app/assets/stylesheets/framework/mobile.scss index 33cbee8598..bd531f8376 100644 --- a/app/assets/stylesheets/framework/mobile.scss +++ b/app/assets/stylesheets/framework/mobile.scss @@ -48,10 +48,6 @@ display: block; } - .project-home-desc { - font-size: 21px; - } - .project-repo-buttons, .git-clone-holder { display: none; diff --git a/app/assets/stylesheets/framework/nav.scss b/app/assets/stylesheets/framework/nav.scss index 2e1aa884d9..4e4a1d71a4 100644 --- a/app/assets/stylesheets/framework/nav.scss +++ b/app/assets/stylesheets/framework/nav.scss @@ -250,6 +250,11 @@ height: 51px; white-space: nowrap; overflow-x: auto; + overflow-y: hidden; + -webkit-overflow-scrolling: touch; + &::-webkit-scrollbar { + display: none; + } li { @@ -283,4 +288,8 @@ margin-top: 96px; } } + + .right-sidebar { + top: 102px; + } } diff --git a/app/assets/stylesheets/framework/variables.scss b/app/assets/stylesheets/framework/variables.scss index 5fa4c26660..a769077bc8 100644 --- a/app/assets/stylesheets/framework/variables.scss +++ b/app/assets/stylesheets/framework/variables.scss @@ -119,8 +119,8 @@ $border-white-light: #f1f2f4; $border-white-normal: #d6dae2; $border-white-dark: #c6cacf; -$border-gray-light: rgba(0, 0, 0, 0.06); -$border-gray-normal: rgba(0, 0, 0, 0.10);; +$border-gray-light: rgba(209, 209, 209, 0.70); +$border-gray-normal: rgba(0, 0, 0, 0.10); $border-gray-dark: #c6cacf; $border-green-light: #2faa60; diff --git a/app/assets/stylesheets/pages/projects.scss b/app/assets/stylesheets/pages/projects.scss index c20f04653f..faf3c84ba2 100644 --- a/app/assets/stylesheets/pages/projects.scss +++ b/app/assets/stylesheets/pages/projects.scss @@ -26,8 +26,13 @@ } .project-home-panel { - padding-bottom: 40px; - border-bottom: 1px solid $border-color; + background: $white-light; + text-align: left; + padding: 24px 0; + + .container-fluid { + position: relative; + } .cover-controls { .project-settings-dropdown { @@ -43,21 +48,50 @@ } } - .project-identicon-holder { - margin-bottom: 16px; + .project-image-container { + @include make-sm-column(1); + max-width: 86px; + min-width: 86px; + padding-right: 0; - .avatar, .identicon { - margin: 0 auto; - float: none; - } + @media (max-width: $screen-md-max) { + padding-left: 0; + margin-bottom: 10px; + max-width: none; + min-width: none; - .identicon { - @include border-radius(50%); + .avatar.s70 { + margin: auto; + } } } + .project-info { + @include make-sm-column(10); + + h1 { + font-size: 24px; + font-weight: normal; + margin: 0; + } + + .project-home-desc { + p { + margin: 0; + } + } + } + + .identicon { + float: left; + @include border-radius(50%); + } + + .avatar { + float: none; + } + .notifications-btn { - margin-top: -28px; .fa-bell { margin-right: 6px; @@ -69,28 +103,45 @@ } .project-repo-buttons { - margin-top: 20px; - margin-bottom: 0; - - .count-buttons { - display: block; - margin-bottom: 20px; - } - - .clone-row { - .split-repo-buttons, - .project-clone-holder { - display: inline-block; - } - - .split-repo-buttons { - margin: 0 12px; - } - } + font-size: 0; .btn { @include btn-gray; + padding: 3px 10px; text-transform: none; + background-color: $background-color; + + .fa { + color: $layout-link-gray; + } + + .fa-caret-down { + margin-left: 3px; + } + } + + .btn-group:not(:first-child):not(:last-child) > .btn { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + } + + form { + margin-left: 10px; + } + + .count-buttons { + display: inline-block; + vertical-align: top; + margin-top: 16px; + } + + .project-clone-holder { + display: inline-block; + margin-top: 16px; + + input { + height: 29px; + } } .count-with-arrow { @@ -140,14 +191,14 @@ line-height: 13px; padding: $gl-vert-padding $gl-padding; letter-spacing: .4px; - padding: 10px 14px; + padding: 7px 14px; text-align: center; vertical-align: middle; touch-action: manipulation; cursor: pointer; background-image: none; white-space: nowrap; - margin: 0 11px 0 4px; + margin: 0 10px 0 4px; &:hover { background: #fff; @@ -155,6 +206,30 @@ } } } + + .project-right-buttons { + position: absolute; + right: 16px; + bottom: 0; + + .btn { + padding: 3px 10px; + background-color: $background-color; + } + + @media (max-width: 1304px) { + top: -6px; + } + } + + @media (max-width: $screen-md-max) { + text-align: center; + + .project-info, + .project-image-container { + width: 100%; + } + } } .split-one { @@ -285,11 +360,11 @@ a.deploy-project-label { } .project-stats { - text-align: center; margin-top: $gl-padding; margin-bottom: 0; - padding-top: 10px; - padding-bottom: 4px; + padding: 16px 0; + background-color: $white-light; + font-size: 0; ul.nav { display: inline-block; @@ -300,12 +375,11 @@ a.deploy-project-label { } .nav > li > a { - @include btn-default; - @include btn-gray; - background-color: transparent; - border: 1px solid #f7f8fa; - margin-left: 12px; + margin-right: 12px; + padding: 0 10px; + font-size: 15px; + color: $notes-light-color; } li { @@ -325,6 +399,10 @@ a.deploy-project-label { background-color: #f0f2f5; } } + + &.row-content-block.second-block { + margin-top: 0; + } } pre.light-well { @@ -442,9 +520,14 @@ pre.light-well { border-top: 0; .edit-project-readme { - z-index: 100; + z-index: 2; position: relative; } + + .wiki h1 { + border-bottom: none; + padding: 0; + } } .git-clone-holder { diff --git a/app/views/layouts/nav/_project.html.haml b/app/views/layouts/nav/_project.html.haml index b60c419fb3..ac692686bb 100644 --- a/app/views/layouts/nav/_project.html.haml +++ b/app/views/layouts/nav/_project.html.haml @@ -2,7 +2,7 @@ .controls - access = user_max_access_in_project(current_user.id, @project) - can_edit = can?(current_user, :admin_project, @project) - %span.dropdown.project-settings-dropdown + .dropdown.project-settings-dropdown %a.dropdown-new.btn.btn-default#project-settings-button{href: '#', 'data-toggle' => 'dropdown'} = icon('cog') = icon('caret-down') diff --git a/app/views/projects/_home_panel.html.haml b/app/views/projects/_home_panel.html.haml index cdb8d2b5e3..57c3d1b0a6 100644 --- a/app/views/projects/_home_panel.html.haml +++ b/app/views/projects/_home_panel.html.haml @@ -1,37 +1,37 @@ - empty_repo = @project.empty_repo? .project-home-panel.cover-block.clearfix{:class => ("empty-project" if empty_repo)} - .project-identicon-holder - = project_icon(@project, alt: '', class: 'project-avatar avatar s90') - .cover-title.project-home-desc - %h1 - = @project.name - %span.visibility-icon.has-tooltip{data: { container: 'body' }, title: visibility_icon_description(@project)} - = visibility_level_icon(@project.visibility_level, fw: false) + .container-fluid.container-limited + .row + .project-image-container + = project_icon(@project, alt: '', class: 'project-avatar avatar s70') + .project-info + .cover-title.project-home-desc + %h1 + = @project.name + %span.visibility-icon.has-tooltip{data: { container: 'body' }, title: visibility_icon_description(@project)} + = visibility_level_icon(@project.visibility_level, fw: false) - - if @project.description.present? - .cover-desc.project-home-desc - = markdown(@project.description, pipeline: :description) + - if @project.description.present? + .cover-desc.project-home-desc + = markdown(@project.description, pipeline: :description) - - if forked_from_project = @project.forked_from_project - .cover-desc - Forked from - = link_to project_path(forked_from_project) do - = forked_from_project.namespace.try(:name) + - if forked_from_project = @project.forked_from_project + .cover-desc + Forked from + = link_to project_path(forked_from_project) do + = forked_from_project.namespace.try(:name) - .project-repo-buttons - .split-one.count-buttons - = render 'projects/buttons/star' - = render 'projects/buttons/fork' + .project-repo-buttons + .count-buttons + = render 'projects/buttons/star' + = render 'projects/buttons/fork' - .clone-row - .project-clone-holder - = render "shared/clone_panel" - - .split-repo-buttons - .btn-group.pull-left - = render "projects/buttons/download" - = render 'projects/buttons/dropdown' + .project-clone-holder + = render "shared/clone_panel" + .project-repo-buttons.btn-group.project-right-buttons + = render "projects/buttons/download" + = render 'projects/buttons/dropdown' = render 'projects/buttons/notifications' :javascript diff --git a/app/views/projects/buttons/_dropdown.html.haml b/app/views/projects/buttons/_dropdown.html.haml index 1e4c46fca2..16b8e1cca9 100644 --- a/app/views/projects/buttons/_dropdown.html.haml +++ b/app/views/projects/buttons/_dropdown.html.haml @@ -2,7 +2,7 @@ .btn-group %a.btn.dropdown-toggle{href: '#', "data-toggle" => "dropdown"} = icon('plus') - %ul.dropdown-menu.dropdown-menu-right.project-home-dropdown + %ul.dropdown-menu.dropdown-menu-align-right.project-home-dropdown - can_create_issue = can?(current_user, :create_issue, @project) - merge_project = can?(current_user, :create_merge_request, @project) ? @project : (current_user && current_user.fork_of(@project)) - can_create_snippet = can?(current_user, :create_snippet, @project) diff --git a/app/views/projects/buttons/_notifications.html.haml b/app/views/projects/buttons/_notifications.html.haml index c1e3e5b73a..1d05da5058 100644 --- a/app/views/projects/buttons/_notifications.html.haml +++ b/app/views/projects/buttons/_notifications.html.haml @@ -1,11 +1,11 @@ - if @notification_setting = form_for @notification_setting, url: namespace_project_notification_setting_path(@project.namespace.becomes(Namespace), @project), method: :patch, remote: true, html: { class: 'inline', id: 'notification-form' } do |f| = f.hidden_field :level - %span.dropdown + .dropdown %a.dropdown-new.btn.notifications-btn#notifications-button{href: '#', "data-toggle" => "dropdown"} = icon('bell') = notification_title(@notification_setting.level) - = icon('angle-down') - %ul.dropdown-menu.dropdown-menu-right.project-home-dropdown + = icon('caret-down') + %ul.dropdown-menu.dropdown-menu-align-right.project-home-dropdown - NotificationSetting.levels.each do |level| = notification_list_item(level.first, @notification_setting) diff --git a/app/views/projects/show.html.haml b/app/views/projects/show.html.haml index 74feb9e328..61f739ad1d 100644 --- a/app/views/projects/show.html.haml +++ b/app/views/projects/show.html.haml @@ -13,50 +13,51 @@ = render "home_panel" .project-stats.row-content-block.second-block - %ul.nav - %li - = link_to namespace_project_commits_path(@project.namespace, @project, current_ref) do - = pluralize(number_with_delimiter(@project.commit_count), 'commit') - %li - = link_to namespace_project_branches_path(@project.namespace, @project) do - = pluralize(number_with_delimiter(@repository.branch_names.count), 'branch') - %li - = link_to namespace_project_tags_path(@project.namespace, @project) do - = pluralize(number_with_delimiter(@repository.tag_names.count), 'tag') - - %li - = link_to project_files_path(@project) do - = repository_size - - - if default_project_view != 'readme' && @repository.readme + .container-fluid.container-limited + %ul.nav %li - = link_to 'Readme', readme_path(@project) - - - if @repository.changelog + = link_to namespace_project_commits_path(@project.namespace, @project, current_ref) do + = pluralize(number_with_delimiter(@project.commit_count), 'commit') %li - = link_to 'Changelog', changelog_path(@project) - - - if @repository.license_blob + = link_to namespace_project_branches_path(@project.namespace, @project) do + = pluralize(number_with_delimiter(@repository.branch_names.count), 'branch') %li - = link_to license_short_name(@project), license_path(@project) + = link_to namespace_project_tags_path(@project.namespace, @project) do + = pluralize(number_with_delimiter(@repository.tag_names.count), 'tag') - - if @repository.contribution_guide %li - = link_to 'Contribution guide', contribution_guide_path(@project) + = link_to project_files_path(@project) do + = repository_size - - if current_user && can_push_branch?(@project, @project.default_branch) - - unless @repository.changelog - %li.missing - = link_to add_special_file_path(@project, file_name: 'CHANGELOG') do - Add Changelog - - unless @repository.license_blob - %li.missing - = link_to add_special_file_path(@project, file_name: 'LICENSE') do - Add License - - unless @repository.contribution_guide - %li.missing - = link_to add_special_file_path(@project, file_name: 'CONTRIBUTING.md', commit_message: 'Add contribution guide') do - Add Contribution guide + - if default_project_view != 'readme' && @repository.readme + %li + = link_to 'Readme', readme_path(@project) + + - if @repository.changelog + %li + = link_to 'Changelog', changelog_path(@project) + + - if @repository.license_blob + %li + = link_to license_short_name(@project), license_path(@project) + + - if @repository.contribution_guide + %li + = link_to 'Contribution guide', contribution_guide_path(@project) + + - if current_user && can_push_branch?(@project, @project.default_branch) + - unless @repository.changelog + %li.missing + = link_to add_special_file_path(@project, file_name: 'CHANGELOG') do + Add Changelog + - unless @repository.license_blob + %li.missing + = link_to add_special_file_path(@project, file_name: 'LICENSE') do + Add License + - unless @repository.contribution_guide + %li.missing + = link_to add_special_file_path(@project, file_name: 'CONTRIBUTING.md', commit_message: 'Add contribution guide') do + Add Contribution guide - if @repository.commit .content-block.second-block.white diff --git a/app/views/shared/_clone_panel.html.haml b/app/views/shared/_clone_panel.html.haml index 974751d997..84b3f44c0a 100644 --- a/app/views/shared/_clone_panel.html.haml +++ b/app/views/shared/_clone_panel.html.haml @@ -5,7 +5,7 @@ %a#clone-dropdown.clone-dropdown-btn.btn{href: '#', 'data-toggle' => 'dropdown'} %span = default_clone_protocol.upcase - = icon('angle-down') + = icon('caret-down') %ul.dropdown-menu.dropdown-menu-right.clone-options-dropdown %li = ssh_clone_button(project) From 5436bfa82230f7ba4532a2b09d035cfc733e8657 Mon Sep 17 00:00:00 2001 From: Annabel Dunstone Date: Thu, 19 May 2016 13:31:19 -0500 Subject: [PATCH 15/83] Fix alignment of repo buttons --- app/assets/stylesheets/pages/projects.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/pages/projects.scss b/app/assets/stylesheets/pages/projects.scss index faf3c84ba2..46981fd0d2 100644 --- a/app/assets/stylesheets/pages/projects.scss +++ b/app/assets/stylesheets/pages/projects.scss @@ -218,7 +218,7 @@ } @media (max-width: 1304px) { - top: -6px; + top: 0; } } From 3c8d209e16c606c5122d5aee455d051e65c6dab0 Mon Sep 17 00:00:00 2001 From: Annabel Dunstone Date: Thu, 19 May 2016 15:56:29 -0500 Subject: [PATCH 16/83] Redesign sublevel nav links; vertically align project image; fix spacing --- app/assets/stylesheets/pages/projects.scss | 7 ++++++- app/views/projects/show.html.haml | 9 ++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/assets/stylesheets/pages/projects.scss b/app/assets/stylesheets/pages/projects.scss index 46981fd0d2..cb9bef7214 100644 --- a/app/assets/stylesheets/pages/projects.scss +++ b/app/assets/stylesheets/pages/projects.scss @@ -48,15 +48,20 @@ } } + .cover-title { + margin-bottom: 0; + } + .project-image-container { @include make-sm-column(1); max-width: 86px; min-width: 86px; padding-right: 0; + margin: 11px 0; @media (max-width: $screen-md-max) { padding-left: 0; - margin-bottom: 10px; + margin: 0 0 10px; max-width: none; min-width: none; diff --git a/app/views/projects/show.html.haml b/app/views/projects/show.html.haml index 61f739ad1d..59a9519ca1 100644 --- a/app/views/projects/show.html.haml +++ b/app/views/projects/show.html.haml @@ -17,17 +17,16 @@ %ul.nav %li = link_to namespace_project_commits_path(@project.namespace, @project, current_ref) do - = pluralize(number_with_delimiter(@project.commit_count), 'commit') + #{'Commit'.pluralize(@project.commit_count)} (#{number_with_delimiter(@project.commit_count)}) %li = link_to namespace_project_branches_path(@project.namespace, @project) do - = pluralize(number_with_delimiter(@repository.branch_names.count), 'branch') + #{'Branch'.pluralize(@repository.branch_names.count)} (#{number_with_delimiter(@repository.branch_names.count)}) %li = link_to namespace_project_tags_path(@project.namespace, @project) do - = pluralize(number_with_delimiter(@repository.tag_names.count), 'tag') - + #{'Tag'.pluralize(@repository.tag_names.count)} (#{number_with_delimiter(@repository.tag_names.count)}) %li = link_to project_files_path(@project) do - = repository_size + Files (#{repository_size}) - if default_project_view != 'readme' && @repository.readme %li From a5954080e95318f29790ac1baf6588c6c95184eb Mon Sep 17 00:00:00 2001 From: Connor Shea Date: Thu, 19 May 2016 21:08:07 -0500 Subject: [PATCH 17/83] Upgrade activerecord-sessionstore from 0.1.2 to 1.0.0. Changelog: https://github.com/rails/activerecord-session_store/releases/tag/v1.0.0 Includes Rails 5 support. --- Gemfile | 2 +- Gemfile.lock | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 91ad1706a0..832c5a3ca8 100644 --- a/Gemfile +++ b/Gemfile @@ -325,7 +325,7 @@ gem "mail_room", "~> 0.7" gem 'email_reply_parser', '~> 0.5.8' ## CI -gem 'activerecord-session_store', '~> 0.1.0' +gem 'activerecord-session_store', '~> 1.0.0' gem "nested_form", '~> 0.3.2' # OAuth diff --git a/Gemfile.lock b/Gemfile.lock index b55764504c..e1c5b9630d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -33,10 +33,12 @@ GEM activemodel (= 4.2.6) activesupport (= 4.2.6) arel (~> 6.0) - activerecord-session_store (0.1.2) - actionpack (>= 4.0.0, < 5) - activerecord (>= 4.0.0, < 5) - railties (>= 4.0.0, < 5) + activerecord-session_store (1.0.0) + actionpack (>= 4.0, < 5.1) + activerecord (>= 4.0, < 5.1) + multi_json (~> 1.11, >= 1.11.2) + rack (>= 1.5.2, < 3) + railties (>= 4.0, < 5.1) activesupport (4.2.6) i18n (~> 0.7) json (~> 1.7, >= 1.7.7) @@ -883,7 +885,7 @@ PLATFORMS DEPENDENCIES RedCloth (~> 4.2.9) ace-rails-ap (~> 4.0.2) - activerecord-session_store (~> 0.1.0) + activerecord-session_store (~> 1.0.0) acts-as-taggable-on (~> 3.4) addressable (~> 2.3.8) after_commit_queue From a768c04ba511b5f98071d45c31d5c017dd7e4282 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Thu, 19 May 2016 22:09:51 -0500 Subject: [PATCH 18/83] Fix fork counter ui bug for safari Signed-off-by: Dmitriy Zaporozhets --- app/assets/stylesheets/pages/projects.scss | 6 +++++- app/views/projects/buttons/_fork.html.haml | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/assets/stylesheets/pages/projects.scss b/app/assets/stylesheets/pages/projects.scss index a3690e40e2..b4702b3118 100644 --- a/app/assets/stylesheets/pages/projects.scss +++ b/app/assets/stylesheets/pages/projects.scss @@ -149,6 +149,10 @@ white-space: nowrap; margin: 0 11px 0 4px; + a { + color: inherit; + } + &:hover { background: #fff; } @@ -161,7 +165,7 @@ display: inline-table; margin-right: 12px; - a { + > a { margin: -1px; } } diff --git a/app/views/projects/buttons/_fork.html.haml b/app/views/projects/buttons/_fork.html.haml index 5fb5fe5af2..34ad9fe2c4 100644 --- a/app/views/projects/buttons/_fork.html.haml +++ b/app/views/projects/buttons/_fork.html.haml @@ -12,7 +12,8 @@ = link_to new_namespace_project_fork_path(@project.namespace, @project), title: "Fork project", class: 'btn has-tooltip' do = icon('code-fork fw') Fork - = link_to namespace_project_forks_path(@project.namespace, @project), class: 'count-with-arrow' do + %div.count-with-arrow %span.arrow %span.count - = @project.forks_count + = link_to namespace_project_forks_path(@project.namespace, @project) do + = @project.forks_count From ce8dd3bd660e18c1a143c24539418c8697fe29b9 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Thu, 19 May 2016 12:51:15 +0100 Subject: [PATCH 19/83] Fixed issue with merge button color Closes #17644 --- app/assets/javascripts/merge_request_widget.js.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/merge_request_widget.js.coffee b/app/assets/javascripts/merge_request_widget.js.coffee index f58647988a..b6d590f681 100644 --- a/app/assets/javascripts/merge_request_widget.js.coffee +++ b/app/assets/javascripts/merge_request_widget.js.coffee @@ -113,7 +113,7 @@ class @MergeRequestWidget switch state when "failed", "canceled", "not_found" @setMergeButtonClass('btn-danger') - when "running", "pending" + when "running" @setMergeButtonClass('btn-warning') when "success" @setMergeButtonClass('btn-create') @@ -126,6 +126,6 @@ class @MergeRequestWidget $('.ci_widget:visible .ci-coverage').text(text) setMergeButtonClass: (css_class) -> - $('.accept_merge_request') + $('.js-merge-button') .removeClass('btn-danger btn-warning btn-create') .addClass(css_class) From 9f60a2eda24c9017c8b23ae8885ca31d59fbc659 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Thu, 19 May 2016 12:33:08 +0100 Subject: [PATCH 20/83] Fixed issue with enter key selecting wrong option in dropdown If you search for a label and press enter the dropdown will select the last element rather than the first. This is because the currentIndex is -1 rather than 0 Closes #17630 --- app/assets/javascripts/gl_dropdown.js.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/gl_dropdown.js.coffee b/app/assets/javascripts/gl_dropdown.js.coffee index 1d1bfeb2e7..fd97471cdc 100644 --- a/app/assets/javascripts/gl_dropdown.js.coffee +++ b/app/assets/javascripts/gl_dropdown.js.coffee @@ -460,7 +460,7 @@ class GitLabDropdown return false if currentKeyCode is 13 - @selectRowAtIndex currentIndex + @selectRowAtIndex if currentIndex < 0 then 0 else currentIndex removeArrayKeyEvent: -> $('body').off 'keydown' From f307ff34134caa376b50e00f8e285c355b4af701 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Fri, 20 May 2016 09:11:28 +0100 Subject: [PATCH 21/83] Replaced line breaks --- app/views/shared/issuable/_form.html.haml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/views/shared/issuable/_form.html.haml b/app/views/shared/issuable/_form.html.haml index d06a287281..6990863bd3 100644 --- a/app/views/shared/issuable/_form.html.haml +++ b/app/views/shared/issuable/_form.html.haml @@ -56,8 +56,8 @@ placeholder: 'Select assignee', class: 'custom-form-control', null_user: true, selected: issuable.assignee_id, project: @target_project || @project, first_user: true, current_user: true, include_blank: true) - %br - = link_to 'Assign to me', '#', class: 'assign-to-me-link prepend-top-5 inline' + %div + = link_to 'Assign to me', '#', class: 'assign-to-me-link prepend-top-5 inline' .form-group.issue-milestone = f.label :milestone_id, "Milestone", class: "control-label #{"col-lg-4" if has_due_date}" .col-sm-10{ class: ("col-lg-8" if has_due_date) } @@ -69,8 +69,8 @@ .prepend-top-10 %span.light No open milestones available. - if can? current_user, :admin_milestone, issuable.project - %br - = link_to 'Create new milestone', new_namespace_project_milestone_path(issuable.project.namespace, issuable.project), target: :blank, class: "prepend-top-5 inline" + %div + = link_to 'Create new milestone', new_namespace_project_milestone_path(issuable.project.namespace, issuable.project), target: :blank, class: "prepend-top-5 inline" .form-group - has_labels = issuable.project.labels.any? = f.label :label_ids, "Labels", class: "control-label #{"col-lg-4" if has_due_date}" @@ -82,8 +82,8 @@ - else %span.light No labels yet. - if can? current_user, :admin_label, issuable.project - %br - = link_to 'Create new label', new_namespace_project_label_path(issuable.project.namespace, issuable.project), target: :blank, class: "prepend-top-5 inline" + %div + = link_to 'Create new label', new_namespace_project_label_path(issuable.project.namespace, issuable.project), target: :blank, class: "prepend-top-5 inline" - if has_due_date .col-lg-6 .form-group From 1a98dcacc527f684bc68eb6c7d7f94371e329fee Mon Sep 17 00:00:00 2001 From: DJ Mountney Date: Fri, 20 May 2016 17:24:06 +0000 Subject: [PATCH 22/83] Fix grammar in health_check.md A access token -> An access token --- doc/monitoring/health_check.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/monitoring/health_check.md b/doc/monitoring/health_check.md index 22c53a9aec..5157cf686a 100644 --- a/doc/monitoring/health_check.md +++ b/doc/monitoring/health_check.md @@ -9,7 +9,7 @@ and access the cache. This endpoint can be provided to uptime monitoring service ## Access Token -A access token needs to be provided while accessing the health check endpoint. The current +An access token needs to be provided while accessing the health check endpoint. The current accepted token can be found on the `admin/heath_check` page of your GitLab instance. ![access token](img/health_check_token.png) From 4474eab4f6a17861a6ed494034bc68acb0724e3c Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Fri, 20 May 2016 18:43:11 -0500 Subject: [PATCH 23/83] Fix container deletion permission issue --- .../container_registry_authentication_service.rb | 2 +- .../projects/container_registry/index.html.haml | 2 +- ...ontainer_registry_authentication_service_spec.rb | 13 ++++++++++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/services/auth/container_registry_authentication_service.rb b/app/services/auth/container_registry_authentication_service.rb index 3144e96ba3..f807b8ec09 100644 --- a/app/services/auth/container_registry_authentication_service.rb +++ b/app/services/auth/container_registry_authentication_service.rb @@ -20,7 +20,7 @@ module Auth token.issuer = registry.issuer token.audience = AUDIENCE token[:access] = names.map do |name| - { type: 'repository', name: name, actions: %w(pull push) } + { type: 'repository', name: name, actions: %w(*) } end token.encoded end diff --git a/app/views/projects/container_registry/index.html.haml b/app/views/projects/container_registry/index.html.haml index 40957993b2..e1e762410f 100644 --- a/app/views/projects/container_registry/index.html.haml +++ b/app/views/projects/container_registry/index.html.haml @@ -4,7 +4,7 @@ %hr %ul.content-list - .light.prepend-top-default + %li.light.prepend-top-default %p A 'container image' is a snapshot of a container. You can host your container images with GitLab. diff --git a/spec/services/auth/container_registry_authentication_service_spec.rb b/spec/services/auth/container_registry_authentication_service_spec.rb index 6c9f56a4fb..73b8c3f048 100644 --- a/spec/services/auth/container_registry_authentication_service_spec.rb +++ b/spec/services/auth/container_registry_authentication_service_spec.rb @@ -10,7 +10,7 @@ describe Auth::ContainerRegistryAuthenticationService, services: true do subject { described_class.new(current_project, current_user, current_params).execute } before do - stub_container_registry_config(enabled: true, issuer: 'rspec', key: nil) + allow(Gitlab.config.registry).to receive_messages(enabled: true, issuer: 'rspec', key: nil) allow_any_instance_of(JSONWebToken::RSAToken).to receive(:key).and_return(rsa_key) end @@ -60,6 +60,17 @@ describe Auth::ContainerRegistryAuthenticationService, services: true do it { is_expected.to_not include(:token) } end + describe '#full_access_token' do + let(:project) { create(:empty_project) } + let(:token) { described_class.full_access_token(project.path_with_namespace) } + + subject { { token: token } } + + it_behaves_like 'a accessible' do + let(:actions) { ['*'] } + end + end + context 'user authorization' do let(:project) { create(:project) } let(:current_user) { create(:user) } From 446059889634bf5682fca1f76fef17c6c8c31aa9 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Fri, 20 May 2016 20:50:13 -0500 Subject: [PATCH 24/83] Add README for updating .gitignore templates --- vendor/gitignore/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 vendor/gitignore/README.md diff --git a/vendor/gitignore/README.md b/vendor/gitignore/README.md new file mode 100644 index 0000000000..43131e815c --- /dev/null +++ b/vendor/gitignore/README.md @@ -0,0 +1,14 @@ +# .gitignore templates + +This directory contains language-specific .gitignore templates that are used by GitLab. + +These files were automatically pulled from [this repository](https://github.com/github/gitignore). +Please submit pull requests to that repository. There is no need to edit the files in this directory. + +## Bulk Update + +To update this directory with the latest changes in the repository, run: + +```sh +bundle exec rake gitlab:update_gitignore +``` From ad13d357e739216b4617848ce43d2c9f3557ef75 Mon Sep 17 00:00:00 2001 From: Tony Chu Date: Thu, 19 May 2016 06:13:46 +0000 Subject: [PATCH 25/83] fix user.name length in milestones participants tab --- app/views/shared/milestones/_participants_tab.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/shared/milestones/_participants_tab.html.haml b/app/views/shared/milestones/_participants_tab.html.haml index 67ae85ac27..549d2e2f61 100644 --- a/app/views/shared/milestones/_participants_tab.html.haml +++ b/app/views/shared/milestones/_participants_tab.html.haml @@ -3,6 +3,6 @@ %li = link_to user, title: user.name, class: "darken" do = image_tag avatar_icon(user, 32), class: "avatar s32" - %strong= truncate(user.name, lenght: 40) + %strong= truncate(user.name, length: 40) %br %small.cgray= user.username From c6411a785b0c49d17b831a9b4bc05ef4bb68b87f Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 21 May 2016 01:18:10 -0500 Subject: [PATCH 26/83] Update CHANGELOG --- CHANGELOG | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG b/CHANGELOG index 67fca2c6f6..01585ede58 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -13,6 +13,7 @@ v 8.8.0 (unreleased) - Added inline diff styling for `change_title` system notes. (Adam Butler) - Project#open_branches has been cleaned up and no longer loads entire records into memory. - Escape HTML in commit titles in system note messages + - Fix scope used when accessing container registry - Fix creation of Ci::Commit object which can lead to pending, failed in some scenarios - Improve multiple branch push performance by memoizing permission checking - Log to application.log when an admin starts and stops impersonating a user From 69a07cf4d4771b9e754ce783b7973b7898480719 Mon Sep 17 00:00:00 2001 From: Sanster Date: Sat, 21 May 2016 22:33:54 +0800 Subject: [PATCH 27/83] fix group members api doc: remove emial --- doc/api/groups.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/doc/api/groups.md b/doc/api/groups.md index 2821bc21b8..1ccb9715e9 100644 --- a/doc/api/groups.md +++ b/doc/api/groups.md @@ -265,7 +265,6 @@ GET /groups/:id/members { "id": 1, "username": "raymond_smith", - "email": "ray@smith.org", "name": "Raymond Smith", "state": "active", "created_at": "2012-10-22T14:13:35Z", @@ -274,7 +273,6 @@ GET /groups/:id/members { "id": 2, "username": "john_doe", - "email": "joh@doe.org", "name": "John Doe", "state": "active", "created_at": "2012-10-22T14:13:35Z", From 2264bb136b78a07b3dde3aaacbae7ba3918775e0 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Sun, 22 May 2016 00:41:20 -0500 Subject: [PATCH 28/83] Copyedit health check docs --- doc/monitoring/health_check.md | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/doc/monitoring/health_check.md b/doc/monitoring/health_check.md index 5157cf686a..defbf37ac1 100644 --- a/doc/monitoring/health_check.md +++ b/doc/monitoring/health_check.md @@ -1,5 +1,6 @@ # Health Check -_**Note:** This feature was [introduced][ce-3888] in GitLab 8.8_ + +>**Note:** This feature was [introduced][ce-3888] in GitLab 8.8. GitLab provides a health check endpoint for uptime monitoring on the `health_check` web endpoint. The health check reports on the overall system status based on the status of @@ -14,11 +15,13 @@ accepted token can be found on the `admin/heath_check` page of your GitLab insta ![access token](img/health_check_token.png) -The access token can be passed as a url parameter: +The access token can be passed as a URL parameter: -`https://gitlab.example.com/health_check.json?token=ACCESS_TOKEN` +``` +https://gitlab.example.com/health_check.json?token=ACCESS_TOKEN +``` -or as a http header: +or as an HTTP header: ```bash curl -H "TOKEN: ACCESS_TOKEN" https://gitlab.example.com/health_check.json @@ -39,16 +42,22 @@ You can also ask for the status of specific services: - `https://gitlab.example.com/health_check/database.json?token=ACCESS_TOKEN` - `https://gitlab.example.com/health_check/migrations.json?token=ACCESS_TOKEN` -Example output: +For example, the JSON output of the following health check: + ```bash curl -H "TOKEN: ACCESS_TOKEN" https://gitlab.example.com/health_check.json +``` + +would be like: + +``` {"healthy":true,"message":"success"} ``` ## Status -On failure the endpoint will return a `500` http status code. On success the endpoint -will return a valid successful http status code, and a `success` message. Ideally your +On failure, the endpoint will return a `500` HTTP status code. On success, the endpoint +will return a valid successful HTTP status code, and a `success` message. Ideally your uptime monitoring should look for the success message. [ce-3888]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3888 From 18dddc0c84f2f88e9b37883f1a745dbbeb74b6f3 Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Fri, 13 May 2016 11:44:48 -0400 Subject: [PATCH 29/83] Initial docker container registry configuration docs. --- doc/administration/container_registry.md | 127 +++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 doc/administration/container_registry.md diff --git a/doc/administration/container_registry.md b/doc/administration/container_registry.md new file mode 100644 index 0000000000..d89cfd1d43 --- /dev/null +++ b/doc/administration/container_registry.md @@ -0,0 +1,127 @@ +# GitLab Container Registry Administration + +Documentation on how to use Container Registry are under [TODO](TODO.md). + +## Configuration + +Containers can be large in size and they are stored on the server GitLab is +installed on. + +The Container Registry works under HTTPS by default. +This means that the Container Registry requires a SSL certificate. +There are two options on how this can be configured: + +1. Use its own domain - needs a SSL certificate for that specific domain +(eg. registry.example.com) or a wildcard certificate if hosted under a subdomain +(eg. registry.gitlab.example.com) +1. Use existing GitLab domain and expose the registry on a port - can reuse +existing GitLab SSL certificate + +Note that using HTTP is possible, +[see insecure Registry document.](https://github.com/docker/distribution/blob/master/docs/insecure.md) + +Please take this into consideration before configuring Container Registry for +the first time. + +## Container Registry under its own domain + +Lets assume that you want the Container Registry to be accessible at +`https://registry.gitlab.example.com`. + +### Omnibus GitLab packages + +Place your SSL certificate and key in +`/etc/gitlab/ssl/registry.gitlab.example.com.crt` +and +`/etc/gitlab/ssl/registry.gitlab.example.com.key` and make sure they have +correct permissions: + +```bash +chmod 600 /etc/gitlab/ssl/registry.gitlab.example.com.* +``` + +Once the SSL certificate is in place, edit `/etc/gitlab/gitlab.rb` with: + +```ruby +registry_external_url 'https://registry.gitlab.example.com' +``` + +Save the file and [reconfigure GitLab][] for the changes to take effect. + +Users should now be able to login to the Container Registry using: + +```bash +docker login registry.gitlab.example.com +``` + +with their GitLab credentials. + +If you have a [wildcard certificate][], you need to specify the path to the +certificate in addition to the URL, in this case `/etc/gitlab/gitlab.rb` will +look like: + +```ruby +registry_external_url 'https://registry.gitlab.example.com' +registry_nginx['ssl_certificate'] = "/etc/gitlab/ssl/certificate.pem" +registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/certificate.key" +``` + +## Container Registry under existing GitLab domain + +Lets assume that your GitLab instance is accessible at +`https://gitlab.example.com`. You can expose the Container Registry under +a separate port. + +Lets assume that you've exposed port `4567` in your network firewall. + +### Omnibus GitLab packages + +Your `/etc/gitlab/gitlab.rb` should contain the Container Registry URL as +well as the path to the existing SSL certificate and key used by GitLab. + +```ruby +registry_external_url 'https://gitlab.example.com:4567' + +## If your SSL certificate is not in /etc/gitlab/ssl/gitlab.example.com.crt +## and key not in /etc/gitlab/ssl/gitlab.example.com.key uncomment the lines +## below + +# registry_nginx['ssl_certificate'] = "/path/to/certificate.pem" +# registry_nginx['ssl_certificate_key'] = "/path/to/certificate.key" +``` + +Save the file and [reconfigure GitLab][] for the changes to take effect. + +Users should now be able to login to the Container Registry using: + +```bash +docker login gitlab.example.com:4567 +``` + +with their GitLab credentials. + +## Container Registry storage path + +It is possible to change path where containers will be stored by the Container +Registry. + +### Omnibus GitLab packages + +By default, the path Container Registry is using to store the containers is in +`/var/opt/gitlab/gitlab-rails/shared/registry`. +This path is accessible to the user running the Container Registry daemon, +user running GitLab and to the user running Nginx web server. + +In `/etc/gitlab/gitlab.rb`: + +```ruby +gitlab_rails['registry_path'] = "/path/to/registry/storage" +``` + +Save the file and [reconfigure GitLab][] for the changes to take effect. + +**NOTE** You should confirm that the GitLab, registry and the web server user +have access to this directory. + +[reconfigure gitlab]: ../../administration/restart_gitlab.md "How to restart GitLab documentation" +[wildcard certificate]: "https://en.wikipedia.org/wiki/Wildcard_certificate" From 63c1792eface9ae8345d2dfe814b83ab8a401ea4 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Sun, 15 May 2016 10:02:20 -0500 Subject: [PATCH 30/83] Rearrange headings --- doc/administration/container_registry.md | 42 +++++++++++++++++------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/doc/administration/container_registry.md b/doc/administration/container_registry.md index d89cfd1d43..2b7e143f68 100644 --- a/doc/administration/container_registry.md +++ b/doc/administration/container_registry.md @@ -1,6 +1,18 @@ # GitLab Container Registry Administration -Documentation on how to use Container Registry are under [TODO](TODO.md). +> **Note:** +This feature was [introduced][ce-4040] in GitLab 8.8. + + + +**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* + +- [Configuration](#configuration) + - [Container Registry under its own domain](#container-registry-under-its-own-domain) + - [Container Registry under existing GitLab domain](#container-registry-under-existing-gitlab-domain) +- [Container Registry storage path](#container-registry-storage-path) + + ## Configuration @@ -12,23 +24,25 @@ This means that the Container Registry requires a SSL certificate. There are two options on how this can be configured: 1. Use its own domain - needs a SSL certificate for that specific domain -(eg. registry.example.com) or a wildcard certificate if hosted under a subdomain -(eg. registry.gitlab.example.com) + (eg. registry.example.com) or a wildcard certificate if hosted under a subdomain + (eg. registry.gitlab.example.com) 1. Use existing GitLab domain and expose the registry on a port - can reuse -existing GitLab SSL certificate + existing GitLab SSL certificate -Note that using HTTP is possible, -[see insecure Registry document.](https://github.com/docker/distribution/blob/master/docs/insecure.md) +Note that using HTTP is possible but not recommended, +[see insecure Registry document][docker-insecure]. Please take this into consideration before configuring Container Registry for the first time. -## Container Registry under its own domain +### Container Registry under its own domain Lets assume that you want the Container Registry to be accessible at `https://registry.gitlab.example.com`. -### Omnibus GitLab packages +--- + +**Omnibus GitLab packages** Place your SSL certificate and key in `/etc/gitlab/ssl/registry.gitlab.example.com.crt` @@ -66,7 +80,7 @@ registry_nginx['ssl_certificate'] = "/etc/gitlab/ssl/certificate.pem" registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/certificate.key" ``` -## Container Registry under existing GitLab domain +### Container Registry under existing GitLab domain Lets assume that your GitLab instance is accessible at `https://gitlab.example.com`. You can expose the Container Registry under @@ -74,7 +88,9 @@ a separate port. Lets assume that you've exposed port `4567` in your network firewall. -### Omnibus GitLab packages +**Omnibus GitLab packages** + +--- Your `/etc/gitlab/gitlab.rb` should contain the Container Registry URL as well as the path to the existing SSL certificate and key used by GitLab. @@ -105,7 +121,9 @@ with their GitLab credentials. It is possible to change path where containers will be stored by the Container Registry. -### Omnibus GitLab packages +**Omnibus GitLab packages** + +--- By default, the path Container Registry is using to store the containers is in `/var/opt/gitlab/gitlab-rails/shared/registry`. @@ -125,3 +143,5 @@ have access to this directory. [reconfigure gitlab]: ../../administration/restart_gitlab.md "How to restart GitLab documentation" [wildcard certificate]: "https://en.wikipedia.org/wiki/Wildcard_certificate" +[ce-4040]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4040 +[docker-insecure]: https://github.com/docker/distribution/blob/master/docs/insecure.md From 04d231ef8743db55784f5c1a1f50438445ed908d Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Mon, 16 May 2016 19:21:06 -0500 Subject: [PATCH 31/83] Rearrange configuration parts --- doc/administration/container_registry.md | 76 ++++++++++++------------ 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/doc/administration/container_registry.md b/doc/administration/container_registry.md index 2b7e143f68..1791c95df6 100644 --- a/doc/administration/container_registry.md +++ b/doc/administration/container_registry.md @@ -8,8 +8,8 @@ This feature was [introduced][ce-4040] in GitLab 8.8. **Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - [Configuration](#configuration) - - [Container Registry under its own domain](#container-registry-under-its-own-domain) - [Container Registry under existing GitLab domain](#container-registry-under-existing-gitlab-domain) + - [Container Registry under its own domain](#container-registry-under-its-own-domain) - [Container Registry storage path](#container-registry-storage-path) @@ -26,7 +26,7 @@ There are two options on how this can be configured: 1. Use its own domain - needs a SSL certificate for that specific domain (eg. registry.example.com) or a wildcard certificate if hosted under a subdomain (eg. registry.gitlab.example.com) -1. Use existing GitLab domain and expose the registry on a port - can reuse +1. Use the existing GitLab domain and expose the registry on a port - can reuse existing GitLab SSL certificate Note that using HTTP is possible but not recommended, @@ -35,6 +35,42 @@ Note that using HTTP is possible but not recommended, Please take this into consideration before configuring Container Registry for the first time. +### Container Registry under existing GitLab domain + +Lets assume that your GitLab instance is accessible at +`https://gitlab.example.com`. You can expose the Container Registry under +a separate port. + +Lets assume that you've exposed port `4567` in your network firewall. + +**Omnibus GitLab packages** + +--- + +Your `/etc/gitlab/gitlab.rb` should contain the Container Registry URL as +well as the path to the existing SSL certificate and key used by GitLab. + +```ruby +registry_external_url 'https://gitlab.example.com:4567' + +## If your SSL certificate is not in /etc/gitlab/ssl/gitlab.example.com.crt +## and key not in /etc/gitlab/ssl/gitlab.example.com.key uncomment the lines +## below + +# registry_nginx['ssl_certificate'] = "/path/to/certificate.pem" +# registry_nginx['ssl_certificate_key'] = "/path/to/certificate.key" +``` + +Save the file and [reconfigure GitLab][] for the changes to take effect. + +Users should now be able to login to the Container Registry using: + +```bash +docker login gitlab.example.com:4567 +``` + +with their GitLab credentials. + ### Container Registry under its own domain Lets assume that you want the Container Registry to be accessible at @@ -80,42 +116,6 @@ registry_nginx['ssl_certificate'] = "/etc/gitlab/ssl/certificate.pem" registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/certificate.key" ``` -### Container Registry under existing GitLab domain - -Lets assume that your GitLab instance is accessible at -`https://gitlab.example.com`. You can expose the Container Registry under -a separate port. - -Lets assume that you've exposed port `4567` in your network firewall. - -**Omnibus GitLab packages** - ---- - -Your `/etc/gitlab/gitlab.rb` should contain the Container Registry URL as -well as the path to the existing SSL certificate and key used by GitLab. - -```ruby -registry_external_url 'https://gitlab.example.com:4567' - -## If your SSL certificate is not in /etc/gitlab/ssl/gitlab.example.com.crt -## and key not in /etc/gitlab/ssl/gitlab.example.com.key uncomment the lines -## below - -# registry_nginx['ssl_certificate'] = "/path/to/certificate.pem" -# registry_nginx['ssl_certificate_key'] = "/path/to/certificate.key" -``` - -Save the file and [reconfigure GitLab][] for the changes to take effect. - -Users should now be able to login to the Container Registry using: - -```bash -docker login gitlab.example.com:4567 -``` - -with their GitLab credentials. - ## Container Registry storage path It is possible to change path where containers will be stored by the Container From 0695cdee178ac995f7dec81dcd734eef7e28e36e Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Wed, 18 May 2016 12:03:57 -0500 Subject: [PATCH 32/83] Add assumptions section and refactor domain configuration --- doc/administration/container_registry.md | 56 +++++++++++++++++------- 1 file changed, 39 insertions(+), 17 deletions(-) diff --git a/doc/administration/container_registry.md b/doc/administration/container_registry.md index 1791c95df6..17a0c229b9 100644 --- a/doc/administration/container_registry.md +++ b/doc/administration/container_registry.md @@ -7,33 +7,49 @@ This feature was [introduced][ce-4040] in GitLab 8.8. **Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* -- [Configuration](#configuration) +- [Assumptions](#assumptions) +- [Container Registry domain configuration](#container-registry-domain-configuration) - [Container Registry under existing GitLab domain](#container-registry-under-existing-gitlab-domain) - [Container Registry under its own domain](#container-registry-under-its-own-domain) - [Container Registry storage path](#container-registry-storage-path) +- [Disable Container Registry](#disable-container-registry) +- [Changelog](#changelog) -## Configuration +## Assumptions -Containers can be large in size and they are stored on the server GitLab is -installed on. +If you are using Omnibus, you have to bare in mind the following: -The Container Registry works under HTTPS by default. -This means that the Container Registry requires a SSL certificate. -There are two options on how this can be configured: +- The container Registry will be enabled by default if GitLab is configured + with HTTPS and it will listen on port `5005`. If you want the Registry to + listen on a port other than `5005` which is the default, read [#Container Registry under existing GitLab domain](#container-registry-under-existing-gitlab-domain) + on how to achieve that. You will also have to configure your firewall to allow + connections to that port. +- The Container Registry works under HTTPS by default. Note that using HTTP is + possible but not recommended and out of the scope of this document, + [see the insecure Registry documentation][docker-insecure] if you want to + implement this. -1. Use its own domain - needs a SSL certificate for that specific domain - (eg. registry.example.com) or a wildcard certificate if hosted under a subdomain - (eg. registry.gitlab.example.com) -1. Use the existing GitLab domain and expose the registry on a port - can reuse - existing GitLab SSL certificate +## Container Registry domain configuration -Note that using HTTP is possible but not recommended, -[see insecure Registry document][docker-insecure]. +There are two ways you can configure the container Registry domain. Either use +the existing GitLab domain where in that case the Registry will listen on a port, +or use a completely separate domain. Since the container Registry requires a +TLS certificate, in the end it all boils down to how easy or pricey is to +get a new TLS certificate. -Please take this into consideration before configuring Container Registry for -the first time. +1. If the Registry is configured to use its own domain, you will need a TLS + certificate for that specific domain (e.g., `registry.example.com`) or maybe + a wildcard certificate if hosted under a subdomain (e.g., `registry.gitlab.example.com`). +1. If the Registry is configured to use the existing GitLab domain, you can + expose the Registry on a port so that you can reuse the existing GitLab TLS + certificate. + +Please take this into consideration before configuring the Container Registry +for the first time. + +Read more about Docker Registry at https://docs.docker.com/registry/introduction/. ### Container Registry under existing GitLab domain @@ -141,7 +157,13 @@ Save the file and [reconfigure GitLab][] for the changes to take effect. **NOTE** You should confirm that the GitLab, registry and the web server user have access to this directory. +## Disable Container Registry + + +## Changelog + + [reconfigure gitlab]: ../../administration/restart_gitlab.md "How to restart GitLab documentation" [wildcard certificate]: "https://en.wikipedia.org/wiki/Wildcard_certificate" [ce-4040]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4040 -[docker-insecure]: https://github.com/docker/distribution/blob/master/docs/insecure.md +[docker-insecure]: https://docs.docker.com/registry/insecure/ From 0cdc080a4a4d8146f6c874c91b8bff6960214c56 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Fri, 20 May 2016 13:18:18 -0500 Subject: [PATCH 33/83] Refactor container docs --- doc/administration/container_registry.md | 181 ++++++++++++++++++----- 1 file changed, 148 insertions(+), 33 deletions(-) diff --git a/doc/administration/container_registry.md b/doc/administration/container_registry.md index 17a0c229b9..15c3c1a747 100644 --- a/doc/administration/container_registry.md +++ b/doc/administration/container_registry.md @@ -3,11 +3,18 @@ > **Note:** This feature was [introduced][ce-4040] in GitLab 8.8. +With the Docker container Registry integrated into GitLab, every project can +have its own space for Docker images. + +You can read more about Docker Registry at https://docs.docker.com/registry/introduction/. + +--- + **Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* -- [Assumptions](#assumptions) +- [Differences between Omnibus and source installations](#differences-between-omnibus-and-source-installations) - [Container Registry domain configuration](#container-registry-domain-configuration) - [Container Registry under existing GitLab domain](#container-registry-under-existing-gitlab-domain) - [Container Registry under its own domain](#container-registry-under-its-own-domain) @@ -17,67 +24,110 @@ This feature was [introduced][ce-4040] in GitLab 8.8. -## Assumptions + +## Differences between Omnibus and source installations If you are using Omnibus, you have to bare in mind the following: - The container Registry will be enabled by default if GitLab is configured with HTTPS and it will listen on port `5005`. If you want the Registry to - listen on a port other than `5005` which is the default, read [#Container Registry under existing GitLab domain](#container-registry-under-existing-gitlab-domain) + listen on a port other than `5005`, read [#Container Registry under existing GitLab domain](#container-registry-under-existing-gitlab-domain) on how to achieve that. You will also have to configure your firewall to allow connections to that port. -- The Container Registry works under HTTPS by default. Note that using HTTP is - possible but not recommended and out of the scope of this document, +- The container Registry works under HTTPS by default. Using HTTP is possible + but not recommended and out of the scope of this document, [see the insecure Registry documentation][docker-insecure] if you want to implement this. +--- + +If you have installed GitLab from source: +- Omnibus has some things configured for you + +- You will have to install Docker Registry by yourself. You can follow the + [official documentation][registry-deploy]. +- The container Registry will not be enabled by default, you will have to + configure it in `gitlab.yml`. + +The contents of `gitlab.yml` are: + +``` +registry: + enabled: true + host: registry.gitlab.example.com + port: 5005 + api_url: http://localhost:5000/ + key_path: config/registry.key + path: shared/registry + issuer: gitlab-issuer +``` + +where: + +| Parameter | Description | +| --------- | ----------- | +| `enabled` | Enables the Registry in GitLab. By default this is false. | +| `host` | The host URL under which the Registry will run and the users will be able to use. | +| `port` | The port under which the external Registry domain will listen on. | +| `api_url` | The internal API URL under which the Registry is exposed to. It defaults to `http://localhost:5000`. | +| `key_path`| The private key location that is a pair of Registry's `rootcertbundle`. Read the [token auth configuration documentation][token-config]. | +| `path` | This should be the same directory like specified in Registry's `rootdirectory`. Read the [storage configuration documentation][storage-config]. | +| `issuer` | This should be the same value as configured in Registry's `issuer`. Read the [token auth configuration documentation][token-config]. | + ## Container Registry domain configuration -There are two ways you can configure the container Registry domain. Either use +There are two ways you can configure the Registry's external domain. Either use the existing GitLab domain where in that case the Registry will listen on a port, or use a completely separate domain. Since the container Registry requires a TLS certificate, in the end it all boils down to how easy or pricey is to get a new TLS certificate. -1. If the Registry is configured to use its own domain, you will need a TLS - certificate for that specific domain (e.g., `registry.example.com`) or maybe - a wildcard certificate if hosted under a subdomain (e.g., `registry.gitlab.example.com`). -1. If the Registry is configured to use the existing GitLab domain, you can - expose the Registry on a port so that you can reuse the existing GitLab TLS - certificate. - Please take this into consideration before configuring the Container Registry for the first time. -Read more about Docker Registry at https://docs.docker.com/registry/introduction/. - ### Container Registry under existing GitLab domain -Lets assume that your GitLab instance is accessible at -`https://gitlab.example.com`. You can expose the Container Registry under -a separate port. +If the Registry is configured to use the existing GitLab domain, you can +expose the Registry on a port so that you can reuse the existing GitLab TLS +certificate. -Lets assume that you've exposed port `4567` in your network firewall. +Assuming that the GitLab domain is `https://gitlab.example.com` and the port the +Registry is exposed to the outside world is `4567`, here is what you need to set +in `gitlab.rb` or `gitlab.yml` if you are using Omnibus GitLab or installed +GitLab from source respectively. **Omnibus GitLab packages** +1. Your `/etc/gitlab/gitlab.rb` should contain the Registry URL as well as the + path to the existing TLS certificate and key used by GitLab. + + ```ruby + registry_external_url 'https://gitlab.example.com:4567' + + ## If your SSL certificate is not in /etc/gitlab/ssl/gitlab.example.com.crt + ## and key not in /etc/gitlab/ssl/gitlab.example.com.key uncomment the lines + ## below + + # registry_nginx['ssl_certificate'] = "/path/to/certificate.pem" + # registry_nginx['ssl_certificate_key'] = "/path/to/certificate.key" + ``` + +1. Save the file and [reconfigure GitLab][] for the changes to take effect. + --- -Your `/etc/gitlab/gitlab.rb` should contain the Container Registry URL as -well as the path to the existing SSL certificate and key used by GitLab. +**Installation from source** -```ruby -registry_external_url 'https://gitlab.example.com:4567' - -## If your SSL certificate is not in /etc/gitlab/ssl/gitlab.example.com.crt -## and key not in /etc/gitlab/ssl/gitlab.example.com.key uncomment the lines -## below - -# registry_nginx['ssl_certificate'] = "/path/to/certificate.pem" -# registry_nginx['ssl_certificate_key'] = "/path/to/certificate.key" ``` - -Save the file and [reconfigure GitLab][] for the changes to take effect. +registry: + enabled: true + host: registry.gitlab.example.com + port: 5005 + api_url: http://localhost:5000/ + key_path: config/registry.key + path: shared/registry + issuer: gitlab-issuer +``` Users should now be able to login to the Container Registry using: @@ -89,7 +139,11 @@ with their GitLab credentials. ### Container Registry under its own domain -Lets assume that you want the Container Registry to be accessible at +If the Registry is configured to use its own domain, you will need a TLS +certificate for that specific domain (e.g., `registry.example.com`) or maybe +a wildcard certificate if hosted under a subdomain (e.g., `registry.gitlab.example.com`). + +Let's assume that you want the container Registry to be accessible at `https://registry.gitlab.example.com`. --- @@ -114,6 +168,17 @@ registry_external_url 'https://registry.gitlab.example.com' Save the file and [reconfigure GitLab][] for the changes to take effect. +``` +registry: + enabled: true + host: registry.gitlab.example.com + port: 5005 + api_url: http://localhost:5000/ + key_path: config/registry.key + path: shared/registry + issuer: gitlab-issuer +``` + Users should now be able to login to the Container Registry using: ```bash @@ -132,6 +197,17 @@ registry_nginx['ssl_certificate'] = "/etc/gitlab/ssl/certificate.pem" registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/certificate.key" ``` +``` +registry: + enabled: true + host: registry.gitlab.example.com + port: 5005 + api_url: http://localhost:5000/ + key_path: config/registry.key + path: shared/registry + issuer: gitlab-issuer +``` + ## Container Registry storage path It is possible to change path where containers will be stored by the Container @@ -152,6 +228,17 @@ In `/etc/gitlab/gitlab.rb`: gitlab_rails['registry_path'] = "/path/to/registry/storage" ``` +``` +registry: + enabled: true + host: registry.gitlab.example.com + port: 5005 + api_url: http://localhost:5000/ + key_path: config/registry.key + path: shared/registry + issuer: gitlab-issuer +``` + Save the file and [reconfigure GitLab][] for the changes to take effect. **NOTE** You should confirm that the GitLab, registry and the web server user @@ -159,6 +246,31 @@ have access to this directory. ## Disable Container Registry +**Omnibus GitLab** + +``` +# Settings used by GitLab application +# gitlab_rails['registry_enabled'] = true +``` + +``` +# gitlab_rails['registry_host'] = "registry.gitlab.example.com" +# gitlab_rails['registry_api_url'] = "http://localhost:5000" +# gitlab_rails['registry_key_path'] = "/var/opt/gitlab/gitlab-rails/certificate.key" +# gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry" +# gitlab_rails['registry_issuer'] = "omnibus-gitlab-issuer" + +# Settings used by Registry application +# registry['enable'] = true +# registry['username'] = "registry" +# registry['group'] = "registry" +# registry['uid'] = nil +# registry['gid'] = nil +# registry['dir'] = "/var/opt/gitlab/registry" +# registry['log_directory'] = "/var/log/gitlab/registry" +# registry['log_level'] = "info" +# registry['rootcertbundle'] = "/var/opt/gitlab/registry/certificate.crt" +``` ## Changelog @@ -167,3 +279,6 @@ have access to this directory. [wildcard certificate]: "https://en.wikipedia.org/wiki/Wildcard_certificate" [ce-4040]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4040 [docker-insecure]: https://docs.docker.com/registry/insecure/ +[registry-deploy]: https://docs.docker.com/registry/deploying/ +[storage-config]: https://docs.docker.com/registry/configuration/#storage +[token-config]: https://docs.docker.com/registry/configuration/#token From c6cd07ba3a8ef149ff69e0c1520a810b3001b65f Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Fri, 20 May 2016 13:18:39 -0500 Subject: [PATCH 34/83] Add link to container registry --- doc/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/README.md b/doc/README.md index 8aed060d24..a297ce54f3 100644 --- a/doc/README.md +++ b/doc/README.md @@ -44,6 +44,7 @@ - [Monitoring uptime](monitoring/health_check.md) Check the server status using the health check endpoint - [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 ## Contributor documentation From 26c768b42cbcb7af47f08254baa305de37828cf0 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Fri, 20 May 2016 13:18:55 -0500 Subject: [PATCH 35/83] Add proper config values for Registry in gitlab.yml --- config/gitlab.yml.example | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example index 0cef2794f4..0510e7df59 100644 --- a/config/gitlab.yml.example +++ b/config/gitlab.yml.example @@ -179,11 +179,11 @@ production: &base registry: # enabled: true # host: registry.example.com - # port: 5000 - # api_url: http://localhost:5000/ - # key: config/registry.key - # issuer: omnibus-certificate + # port: 5005 + # api_url: http://localhost:5000/ # internal address to the registry, will be used by GitLab to directly communicate with API + # key_path: config/registry.key # path: shared/registry + # issuer: gitlab-issuer # # 2. GitLab CI settings From c1af75192dd281e23249a5d4eb4126dce5bc5efd Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Fri, 20 May 2016 13:19:42 -0500 Subject: [PATCH 36/83] Add NGINX config file for Registry --- lib/support/nginx/registry-ssl | 51 ++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 lib/support/nginx/registry-ssl diff --git a/lib/support/nginx/registry-ssl b/lib/support/nginx/registry-ssl new file mode 100644 index 0000000000..af607db012 --- /dev/null +++ b/lib/support/nginx/registry-ssl @@ -0,0 +1,51 @@ +## Lines starting with two hashes (##) are comments with information. +## Lines starting with one hash (#) are configuration parameters that can be uncommented. +## +################################### +## configuration ## +################################### + +## Redirects all HTTP traffic to the HTTPS host +server { + listen *:80; + server_name registry.gitlab.example.com; + server_tokens off; ## Don't show the nginx version number, a security best practice + return 301 https://$http_host:$request_uri; + access_log /var/log/nginx/gitlab_registry_access.log gitlab_access; + error_log /var/log/nginx/gitlab_registry_error.log; +} + +server { + listen *:443 ssl http2; + server_name registry.gitlab.example.com; + server_tokens off; ## Don't show the nginx version number, a security best practice + + client_max_body_size 0; + chunked_transfer_encoding on; + + ## Strong SSL Security + ## https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html & https://cipherli.st/ + ssl on; + ssl_certificate /etc/gitlab/ssl/registry.gitlab.example.com.crt + ssl_certificate_key /etc/gitlab/ssl/registry.gitlab.example.com.key + + ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4'; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_prefer_server_ciphers on; + ssl_session_cache builtin:1000 shared:SSL:10m; + ssl_session_timeout 5m; + + access_log /var/log/gitlab/nginx/gitlab_registry_access.log gitlab_access; + error_log /var/log/gitlab/nginx/gitlab_registry_error.log; + + location / { + proxy_set_header Host $http_host; # required for docker client's sake + proxy_set_header X-Real-IP $remote_addr; # pass on real client's IP + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_read_timeout 900; + + proxy_pass http://localhost:5000; + } + +} From e9817f21f4baa20244095f56dd0d45b5c2e9c5dc Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Sat, 21 May 2016 20:08:26 -0500 Subject: [PATCH 37/83] Major overhaul of the Registry admin docs --- doc/administration/container_registry.md | 306 ++++++++++++++--------- 1 file changed, 193 insertions(+), 113 deletions(-) diff --git a/doc/administration/container_registry.md b/doc/administration/container_registry.md index 15c3c1a747..21f086792c 100644 --- a/doc/administration/container_registry.md +++ b/doc/administration/container_registry.md @@ -3,8 +3,8 @@ > **Note:** This feature was [introduced][ce-4040] in GitLab 8.8. -With the Docker container Registry integrated into GitLab, every project can -have its own space for Docker images. +With the Docker Container Registry integrated into GitLab, every project can +have its own space to store its Docker images. You can read more about Docker Registry at https://docs.docker.com/registry/introduction/. @@ -14,18 +14,22 @@ You can read more about Docker Registry at https://docs.docker.com/registry/intr **Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* -- [Differences between Omnibus and source installations](#differences-between-omnibus-and-source-installations) +- [How to enable the Container Registry](#how-to-enable-the-container-registry) - [Container Registry domain configuration](#container-registry-domain-configuration) - - [Container Registry under existing GitLab domain](#container-registry-under-existing-gitlab-domain) - - [Container Registry under its own domain](#container-registry-under-its-own-domain) + - [Configure Container Registry under an existing GitLab domain](#configure-container-registry-under-an-existing-gitlab-domain) + - [Configure Container Registry under its own domain](#configure-container-registry-under-its-own-domain) +- [Disable Container Registry site-wide](#disable-container-registry-site-wide) +- [Disable Container Registry per project](#disable-container-registry-per-project) +- [Disable Container Registry for new projects site-wide](#disable-container-registry-for-new-projects-site-wide) - [Container Registry storage path](#container-registry-storage-path) -- [Disable Container Registry](#disable-container-registry) +- [Storage limitations](#storage-limitations) - [Changelog](#changelog) +## How to enable the Container Registry -## Differences between Omnibus and source installations +**Omnibus GitLab installations** If you are using Omnibus, you have to bare in mind the following: @@ -35,19 +39,21 @@ If you are using Omnibus, you have to bare in mind the following: on how to achieve that. You will also have to configure your firewall to allow connections to that port. - The container Registry works under HTTPS by default. Using HTTP is possible - but not recommended and out of the scope of this document, - [see the insecure Registry documentation][docker-insecure] if you want to + but not recommended and out of the scope of this document. + [See the insecure Registry documentation][docker-insecure] if you want to implement this. --- -If you have installed GitLab from source: -- Omnibus has some things configured for you +**Installations from source** -- You will have to install Docker Registry by yourself. You can follow the - [official documentation][registry-deploy]. -- The container Registry will not be enabled by default, you will have to - configure it in `gitlab.yml`. +If you have installed GitLab from source: + +1. You will have to [install Docker Registry][registry-deploy] by yourself. +1. After the installation is complete, you will have to configure the Registry's + settings `gitlab.yml` in order to enable it. +1. Use the sample NGINX configuration file that is found under + [`lib/support/nginx/registry-ssl`][registry-ssl]. The contents of `gitlab.yml` are: @@ -66,26 +72,31 @@ where: | Parameter | Description | | --------- | ----------- | -| `enabled` | Enables the Registry in GitLab. By default this is false. | +| `enabled` | `true` or `false`. Enables the Registry in GitLab. By default this is `false`. | | `host` | The host URL under which the Registry will run and the users will be able to use. | | `port` | The port under which the external Registry domain will listen on. | | `api_url` | The internal API URL under which the Registry is exposed to. It defaults to `http://localhost:5000`. | | `key_path`| The private key location that is a pair of Registry's `rootcertbundle`. Read the [token auth configuration documentation][token-config]. | -| `path` | This should be the same directory like specified in Registry's `rootdirectory`. Read the [storage configuration documentation][storage-config]. | +| `path` | This should be the same directory like specified in Registry's `rootdirectory`. Read the [storage configuration documentation][storage-config]. This path needs to be readable by the GitLab user, the web-server user and the Registry user. Read more in [#container-registry-storage-path](#container-registry-storage-path). | | `issuer` | This should be the same value as configured in Registry's `issuer`. Read the [token auth configuration documentation][token-config]. | +>**Note:** +GitLab does not ship with a Registry init file. Hence, [restarting GitLab][restart gitlab] +will not restart the Registry should you modify its settings. Read the upstream +documentation on how to achieve that. + ## Container Registry domain configuration There are two ways you can configure the Registry's external domain. Either use the existing GitLab domain where in that case the Registry will listen on a port, or use a completely separate domain. Since the container Registry requires a -TLS certificate, in the end it all boils down to how easy or pricey is to -get a new TLS certificate. +TLS certificate, in the end it all boils down to how easy or pricey is to get a +new TLS certificate. Please take this into consideration before configuring the Container Registry for the first time. -### Container Registry under existing GitLab domain +### Configure Container Registry under an existing GitLab domain If the Registry is configured to use the existing GitLab domain, you can expose the Registry on a port so that you can reuse the existing GitLab TLS @@ -96,118 +107,203 @@ Registry is exposed to the outside world is `4567`, here is what you need to set in `gitlab.rb` or `gitlab.yml` if you are using Omnibus GitLab or installed GitLab from source respectively. -**Omnibus GitLab packages** +--- + +**Omnibus GitLab installations** + +>**Note:** +If you are using HTTPS in your Omnibus packages, then the Registry will be +enabled by default and exposed under port `5005`. Follow the steps below only if +you want to change the default port. 1. Your `/etc/gitlab/gitlab.rb` should contain the Registry URL as well as the - path to the existing TLS certificate and key used by GitLab. + path to the existing TLS certificate and key used by GitLab: ```ruby + gitlab_rails['registry_port'] = "4567" + gitlab_rails['registry_host'] = "gitlab.example.com" + + # The following setting is needed for NGINX registry_external_url 'https://gitlab.example.com:4567' + ``` - ## If your SSL certificate is not in /etc/gitlab/ssl/gitlab.example.com.crt - ## and key not in /etc/gitlab/ssl/gitlab.example.com.key uncomment the lines - ## below + If your TLS certificate is not in `/etc/gitlab/ssl/gitlab.example.com.crt` + and key not in `/etc/gitlab/ssl/gitlab.example.com.key` uncomment the lines + below: - # registry_nginx['ssl_certificate'] = "/path/to/certificate.pem" - # registry_nginx['ssl_certificate_key'] = "/path/to/certificate.key" + ```ruby + registry_nginx['ssl_certificate'] = "/path/to/certificate.pem" + registry_nginx['ssl_certificate_key'] = "/path/to/certificate.key" ``` 1. Save the file and [reconfigure GitLab][] for the changes to take effect. --- -**Installation from source** +**Installations from source** -``` -registry: - enabled: true - host: registry.gitlab.example.com - port: 5005 - api_url: http://localhost:5000/ - key_path: config/registry.key - path: shared/registry - issuer: gitlab-issuer -``` +1. Open `/home/git/gitlab/config/gitlab.yml`, find the `registry` entry and + configure it with the following settings: -Users should now be able to login to the Container Registry using: + ``` + registry: + enabled: true + host: gitlab.example.com + port: 4567 + ``` + +1. Save the file and [restart GitLab][] for the changes to take effect. +1. Make the relevant changes in NGINX as well (domain, port, TLS certificates path). + +--- + +Users should now be able to login to the Container Registry with their GitLab +credentials using: ```bash docker login gitlab.example.com:4567 ``` -with their GitLab credentials. - -### Container Registry under its own domain +### Configure Container Registry under its own domain If the Registry is configured to use its own domain, you will need a TLS certificate for that specific domain (e.g., `registry.example.com`) or maybe -a wildcard certificate if hosted under a subdomain (e.g., `registry.gitlab.example.com`). +a wildcard certificate if hosted under a subdomain of your existing GitLab +domain (e.g., `registry.gitlab.example.com`). Let's assume that you want the container Registry to be accessible at `https://registry.gitlab.example.com`. --- -**Omnibus GitLab packages** +**Omnibus GitLab installations** -Place your SSL certificate and key in -`/etc/gitlab/ssl/registry.gitlab.example.com.crt` -and -`/etc/gitlab/ssl/registry.gitlab.example.com.key` and make sure they have -correct permissions: +1. Place your TLS certificate and key in + `/etc/gitlab/ssl/registry.gitlab.example.com.crt` and + `/etc/gitlab/ssl/registry.gitlab.example.com.key` and make sure they have + correct permissions: -```bash -chmod 600 /etc/gitlab/ssl/registry.gitlab.example.com.* -``` + ```bash + chmod 600 /etc/gitlab/ssl/registry.gitlab.example.com.* + ``` -Once the SSL certificate is in place, edit `/etc/gitlab/gitlab.rb` with: +1. Once the TLS certificate is in place, edit `/etc/gitlab/gitlab.rb` with: -```ruby -registry_external_url 'https://registry.gitlab.example.com' -``` + ```ruby + registry_external_url 'https://registry.gitlab.example.com' + ``` -Save the file and [reconfigure GitLab][] for the changes to take effect. - -``` -registry: - enabled: true - host: registry.gitlab.example.com - port: 5005 - api_url: http://localhost:5000/ - key_path: config/registry.key - path: shared/registry - issuer: gitlab-issuer -``` - -Users should now be able to login to the Container Registry using: - -```bash -docker login registry.gitlab.example.com -``` - -with their GitLab credentials. +1. Save the file and [reconfigure GitLab][] for the changes to take effect. +> **Note:** If you have a [wildcard certificate][], you need to specify the path to the certificate in addition to the URL, in this case `/etc/gitlab/gitlab.rb` will look like: - +> ```ruby registry_external_url 'https://registry.gitlab.example.com' registry_nginx['ssl_certificate'] = "/etc/gitlab/ssl/certificate.pem" registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/certificate.key" ``` +--- + +**Installations from source** + +1. Open `/home/git/gitlab/config/gitlab.yml`, find the `registry` entry and + configure it with the following settings: + + ``` + registry: + enabled: true + host: registry.gitlab.example.com + port: 4567 + ``` + +1. Save the file and [restart GitLab][] for the changes to take effect. +1. Make the relevant changes in NGINX as well (domain, port, TLS certificates path). + +--- + +Users should now be able to login to the Container Registry using their GitLab +credentials: + +```bash +docker login registry.gitlab.example.com ``` -registry: - enabled: true - host: registry.gitlab.example.com - port: 5005 - api_url: http://localhost:5000/ - key_path: config/registry.key - path: shared/registry - issuer: gitlab-issuer + +## Disable Container Registry site-wide + +**Omnibus GitLab** + +```ruby +gitlab_rails['registry_enabled'] = true ``` +``` +# gitlab_rails['registry_port'] = "5005" +# gitlab_rails['registry_host'] = "registry.gitlab.example.com" +# gitlab_rails['registry_api_url'] = "http://localhost:5000" +# gitlab_rails['registry_key_path'] = "/var/opt/gitlab/gitlab-rails/certificate.key" +# gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry" +# gitlab_rails['registry_issuer'] = "omnibus-gitlab-issuer" + +# Settings used by Registry application +# registry['enable'] = true +# registry['username'] = "registry" +# registry['group'] = "registry" +# registry['uid'] = nil +# registry['gid'] = nil +# registry['dir'] = "/var/opt/gitlab/registry" +# registry['log_directory'] = "/var/log/gitlab/registry" +# registry['log_level'] = "info" +# registry['rootcertbundle'] = "/var/opt/gitlab/registry/certificate.crt" +``` + +## Disable Container Registry per project + +If Registry is enabled in your GitLab instance, but you don't need it for your +project, you can disable it from your project's settings. Read the user guide +on how to achieve that. + +## Disable Container Registry for new projects site-wide + +The Registry is enabled by default on all new projects. To disable this function +and let the owners of a project to enable Registry by themselves, follow the +steps below. + +--- + +**Omnibus GitLab installations** + +1. Edit `/etc/gitlab/gitlab.rb` and add the following line: + + ```ruby + gitlab_rails['gitlab_default_projects_features_container_registry'] = false + ``` + +1. Save the file and [reconfigure GitLab][] for the changes to take effect. + +--- + +**Installations from source** + +1. Open `/home/git/gitlab/config/gitlab.yml`, find the `default_projects_features` + entry and configure it so that `container_registry` is set to `false`: + + ``` + ## Default project features settings + default_projects_features: + issues: true + merge_requests: true + wiki: true + snippets: false + builds: true + container_registry: false + ``` + +1. Save the file and [restart GitLab][] for the changes to take effect. + ## Container Registry storage path It is possible to change path where containers will be stored by the Container @@ -244,41 +340,25 @@ Save the file and [reconfigure GitLab][] for the changes to take effect. **NOTE** You should confirm that the GitLab, registry and the web server user have access to this directory. -## Disable Container Registry +## Storage limitations -**Omnibus GitLab** - -``` -# Settings used by GitLab application -# gitlab_rails['registry_enabled'] = true -``` - -``` -# gitlab_rails['registry_host'] = "registry.gitlab.example.com" -# gitlab_rails['registry_api_url'] = "http://localhost:5000" -# gitlab_rails['registry_key_path'] = "/var/opt/gitlab/gitlab-rails/certificate.key" -# gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry" -# gitlab_rails['registry_issuer'] = "omnibus-gitlab-issuer" - -# Settings used by Registry application -# registry['enable'] = true -# registry['username'] = "registry" -# registry['group'] = "registry" -# registry['uid'] = nil -# registry['gid'] = nil -# registry['dir'] = "/var/opt/gitlab/registry" -# registry['log_directory'] = "/var/log/gitlab/registry" -# registry['log_level'] = "info" -# registry['rootcertbundle'] = "/var/opt/gitlab/registry/certificate.crt" -``` +Currently, there is no storage limitation, which means a user can upload an +infinite amount of Docker images with arbitrary sizes. This setting will be +configurable in future releases. ## Changelog +**GitLab 8.8 ([source docs][8-8-docs])** -[reconfigure gitlab]: ../../administration/restart_gitlab.md "How to restart GitLab documentation" -[wildcard certificate]: "https://en.wikipedia.org/wiki/Wildcard_certificate" +- GitLab Container Registry feature was introduced. + +[reconfigure gitlab]: restart_gitlab.md#omnibus-gitlab-reconfigure +[restart gitlab]: restart_gitlab.md#installations-from-source +[wildcard certificate]: https://en.wikipedia.org/wiki/Wildcard_certificate [ce-4040]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4040 [docker-insecure]: https://docs.docker.com/registry/insecure/ [registry-deploy]: https://docs.docker.com/registry/deploying/ [storage-config]: https://docs.docker.com/registry/configuration/#storage [token-config]: https://docs.docker.com/registry/configuration/#token +[8-8-docs]: https://gitlab.com/gitlab-org/gitlab-ce/blob/8-8-stable/doc/administration/container_registry.md +[registry-ssl]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/support/nginx/registry-ssl From 27067e565fb5c425b307a8e28c5dcab95fa8b0bf Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Sat, 21 May 2016 20:15:42 -0500 Subject: [PATCH 38/83] Clarify how the Registry is enabled in Omnibus --- doc/administration/container_registry.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/doc/administration/container_registry.md b/doc/administration/container_registry.md index 21f086792c..435e7f627b 100644 --- a/doc/administration/container_registry.md +++ b/doc/administration/container_registry.md @@ -34,14 +34,17 @@ You can read more about Docker Registry at https://docs.docker.com/registry/intr If you are using Omnibus, you have to bare in mind the following: - The container Registry will be enabled by default if GitLab is configured - with HTTPS and it will listen on port `5005`. If you want the Registry to - listen on a port other than `5005`, read [#Container Registry under existing GitLab domain](#container-registry-under-existing-gitlab-domain) + with HTTPS in new and existing installations (no action is required from the + administrator), and it will listen on port `5005`. If you wish to change it, + read [#Container Registry under existing GitLab domain](#container-registry-under-existing-gitlab-domain) on how to achieve that. You will also have to configure your firewall to allow - connections to that port. -- The container Registry works under HTTPS by default. Using HTTP is possible - but not recommended and out of the scope of this document. - [See the insecure Registry documentation][docker-insecure] if you want to - implement this. + incoming connections to that port. + +>**Note:** +The container Registry works under HTTPS by default. Using HTTP is possible +but not recommended and out of the scope of this document. +Read the [insecure Registry documentation][docker-insecure] if you want to +implement this. --- From 13bf612600f126faddb4de5e8376a27a466ff830 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Sun, 22 May 2016 22:40:43 +0200 Subject: [PATCH 39/83] Test migration helpers using a migration class --- spec/lib/gitlab/database/migration_helpers_spec.rb | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/spec/lib/gitlab/database/migration_helpers_spec.rb b/spec/lib/gitlab/database/migration_helpers_spec.rb index ec43165bb5..642954f8d2 100644 --- a/spec/lib/gitlab/database/migration_helpers_spec.rb +++ b/spec/lib/gitlab/database/migration_helpers_spec.rb @@ -2,15 +2,13 @@ require 'spec_helper' describe Gitlab::Database::MigrationHelpers, lib: true do let(:model) do - Class.new do - include Gitlab::Database::MigrationHelpers - - def method_missing(name, *args, &block) - ActiveRecord::Base.connection.send(name, *args, &block) - end - end.new + ActiveRecord::Migration.new.extend( + Gitlab::Database::MigrationHelpers + ) end + before { allow(model).to receive(:puts) } + describe '#add_concurrent_index' do context 'outside a transaction' do before do From 9e92b0eead3c2b6dabf377f119cd1f91fd645a42 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Sun, 22 May 2016 22:41:14 +0200 Subject: [PATCH 40/83] Add specs for migration helpers and boolean values --- spec/lib/gitlab/database/migration_helpers_spec.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/spec/lib/gitlab/database/migration_helpers_spec.rb b/spec/lib/gitlab/database/migration_helpers_spec.rb index 642954f8d2..35ade7a2be 100644 --- a/spec/lib/gitlab/database/migration_helpers_spec.rb +++ b/spec/lib/gitlab/database/migration_helpers_spec.rb @@ -58,6 +58,12 @@ describe Gitlab::Database::MigrationHelpers, lib: true do expect(Project.where(import_error: 'foo').count).to eq(5) end + + it 'updates boolean values correctly' do + model.update_column_in_batches(:projects, :archived, true) + + expect(Project.where(archived: true).count).to eq(5) + end end describe '#add_column_with_default' do From 2df8b48dbbe57f64d414e7c3395f9d34b01271b0 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Sun, 22 May 2016 22:44:59 +0200 Subject: [PATCH 41/83] Add MySQL compatibility fix in migration helpers --- lib/gitlab/database/migration_helpers.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/gitlab/database/migration_helpers.rb b/lib/gitlab/database/migration_helpers.rb index 9b662d163f..1fe6c1143d 100644 --- a/lib/gitlab/database/migration_helpers.rb +++ b/lib/gitlab/database/migration_helpers.rb @@ -39,7 +39,8 @@ module Gitlab def update_column_in_batches(table, column, value) quoted_table = quote_table_name(table) quoted_column = quote_column_name(column) - quoted_value = quote(value) + # workaround for #17711 + quoted_value = connection.quote(value) processed = 0 total = exec_query("SELECT COUNT(*) AS count FROM #{quoted_table}"). From 7f9092da1e349c51af9febaa4db4995c851ef2d2 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Sun, 22 May 2016 23:31:33 +0200 Subject: [PATCH 42/83] Extend comment for migrations helper MySQL fix --- lib/gitlab/database/migration_helpers.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/gitlab/database/migration_helpers.rb b/lib/gitlab/database/migration_helpers.rb index 1fe6c1143d..fd14234c55 100644 --- a/lib/gitlab/database/migration_helpers.rb +++ b/lib/gitlab/database/migration_helpers.rb @@ -39,7 +39,14 @@ module Gitlab def update_column_in_batches(table, column, value) quoted_table = quote_table_name(table) quoted_column = quote_column_name(column) - # workaround for #17711 + + ## + # Workaround for #17711 + # + # It looks like for MySQL `ActiveRecord::Base.conntection.quote(true)` + # returns correct value (1), but `ActiveRecord::Migration.new.quote` + # returns incorrect value ('true'), which causes migrations to fail. + # quoted_value = connection.quote(value) processed = 0 From 891888aa05bc9a0a156ea098205eb70150d53732 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Sun, 22 May 2016 23:33:08 +0200 Subject: [PATCH 43/83] Add Changelog entry for MySQL compatibility fix --- CHANGELOG | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 01585ede58..13b937b8c4 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,8 @@ Please view this file on the master branch, on stable branches it's out of date. +v 8.8.1 (unreleased) + - Fix MySQL compatibility in zero downtime migrations helpers + v 8.8.0 (unreleased) - Implement GFM references for milestones (Alejandro Rodríguez) - Snippets tab under user profile. !4001 (Long Nguyen) From e955f49fb7d8edeefc0d2647539276acf34d5731 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Sun, 22 May 2016 17:23:30 -0500 Subject: [PATCH 44/83] Fix Registry docs now that it is not enabled be default --- doc/administration/container_registry.md | 43 +++++++++++++++--------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/doc/administration/container_registry.md b/doc/administration/container_registry.md index 435e7f627b..a3df14019f 100644 --- a/doc/administration/container_registry.md +++ b/doc/administration/container_registry.md @@ -14,7 +14,7 @@ You can read more about Docker Registry at https://docs.docker.com/registry/intr **Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* -- [How to enable the Container Registry](#how-to-enable-the-container-registry) +- [Enable the Container Registry](#enable-the-container-registry) - [Container Registry domain configuration](#container-registry-domain-configuration) - [Configure Container Registry under an existing GitLab domain](#configure-container-registry-under-an-existing-gitlab-domain) - [Configure Container Registry under its own domain](#configure-container-registry-under-its-own-domain) @@ -27,18 +27,19 @@ You can read more about Docker Registry at https://docs.docker.com/registry/intr -## How to enable the Container Registry +## Enable the Container Registry **Omnibus GitLab installations** -If you are using Omnibus, you have to bare in mind the following: +1. Open `/etc/gitlab/gitlab.rb` and edit or add the following line: -- The container Registry will be enabled by default if GitLab is configured - with HTTPS in new and existing installations (no action is required from the - administrator), and it will listen on port `5005`. If you wish to change it, - read [#Container Registry under existing GitLab domain](#container-registry-under-existing-gitlab-domain) - on how to achieve that. You will also have to configure your firewall to allow - incoming connections to that port. + ```ruby + gitlab_rails['registry_enabled'] = true + ``` + +1. The next step is to configure the domain name under which the Container + Registry will listen to. Read [#container-registry-domain-configuration](#container-registry-domain-configuration) + and pick one of the two options that fits your case. >**Note:** The container Registry works under HTTPS by default. Using HTTP is possible @@ -54,9 +55,10 @@ If you have installed GitLab from source: 1. You will have to [install Docker Registry][registry-deploy] by yourself. 1. After the installation is complete, you will have to configure the Registry's - settings `gitlab.yml` in order to enable it. + settings in `gitlab.yml` in order to enable it. 1. Use the sample NGINX configuration file that is found under - [`lib/support/nginx/registry-ssl`][registry-ssl]. + [`lib/support/nginx/registry-ssl`][registry-ssl] and edit it to match the + `host`, `port` and TLS certs paths. The contents of `gitlab.yml` are: @@ -90,11 +92,15 @@ documentation on how to achieve that. ## Container Registry domain configuration -There are two ways you can configure the Registry's external domain. Either use -the existing GitLab domain where in that case the Registry will listen on a port, -or use a completely separate domain. Since the container Registry requires a -TLS certificate, in the end it all boils down to how easy or pricey is to get a -new TLS certificate. +There are two ways you can configure the Registry's external domain. + +- Either [use the existing GitLab domain][existing-domain] where in that case + the Registry will have to listen on a port and reuse GitLab's TLS certificate, +- or [use a completely separate domain][new-domain] with a new TLS certificate + for that domain. + +Since the container Registry requires a TLS certificate, in the end it all boils +down to how easy or pricey is to get a new one. Please take this into consideration before configuring the Container Registry for the first time. @@ -193,6 +199,9 @@ Let's assume that you want the container Registry to be accessible at 1. Once the TLS certificate is in place, edit `/etc/gitlab/gitlab.rb` with: ```ruby + gitlab_rails['registry_host'] = "registry.gitlab.example.com" + + # The following setting is needed for NGINX registry_external_url 'https://registry.gitlab.example.com' ``` @@ -365,3 +374,5 @@ configurable in future releases. [token-config]: https://docs.docker.com/registry/configuration/#token [8-8-docs]: https://gitlab.com/gitlab-org/gitlab-ce/blob/8-8-stable/doc/administration/container_registry.md [registry-ssl]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/support/nginx/registry-ssl +[existing-domain]: #configure-container-registry-under-an-existing-gitlab-domain +[new-domain]: #configure-container-registry-under-its-own-domain From 646018a40e7d29682f31e774f453a6b3427b4216 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sun, 22 May 2016 14:14:12 -0500 Subject: [PATCH 45/83] Fix the CI login to Container Registry (the gitlab-ci-token user) --- CHANGELOG | 1 + app/controllers/jwt_controller.rb | 2 +- .../auth/container_registry_authentication_service.rb | 2 +- spec/requests/jwt_controller_spec.rb | 2 +- .../auth/container_registry_authentication_service_spec.rb | 4 ++-- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 13b937b8c4..434c7b554f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -32,6 +32,7 @@ v 8.8.0 (unreleased) - Bump mail_room to 0.7.0 to fix stuck IDLE connections - Remove future dates from contribution calendar graph. - Support e-mail notifications for comments on project snippets + - Fix the CI login to Container Registry (the gitlab-ci-token user) - Fix API leak of notes of unauthorized issues, snippets and merge requests - Use ActionDispatch Remote IP for Akismet checking - Fix error when visiting commit builds page before build was updated diff --git a/app/controllers/jwt_controller.rb b/app/controllers/jwt_controller.rb index f5aa5397ff..156ab2811d 100644 --- a/app/controllers/jwt_controller.rb +++ b/app/controllers/jwt_controller.rb @@ -36,7 +36,7 @@ class JwtController < ApplicationController end def authenticate_project(login, password) - if login == 'gitlab_ci_token' + if login == 'gitlab-ci-token' Project.find_by(builds_enabled: true, runners_token: password) end end diff --git a/app/services/auth/container_registry_authentication_service.rb b/app/services/auth/container_registry_authentication_service.rb index f807b8ec09..2bbab643e6 100644 --- a/app/services/auth/container_registry_authentication_service.rb +++ b/app/services/auth/container_registry_authentication_service.rb @@ -6,7 +6,7 @@ module Auth return error('not found', 404) unless registry.enabled if params[:offline_token] - return error('unauthorized', 401) unless current_user + return error('unauthorized', 401) unless current_user || project else return error('forbidden', 403) unless scope end diff --git a/spec/requests/jwt_controller_spec.rb b/spec/requests/jwt_controller_spec.rb index 7bb71365a4..d006ff195c 100644 --- a/spec/requests/jwt_controller_spec.rb +++ b/spec/requests/jwt_controller_spec.rb @@ -23,7 +23,7 @@ describe JwtController do context 'when using authorized request' do context 'using CI token' do let(:project) { create(:empty_project, runners_token: 'token', builds_enabled: builds_enabled) } - let(:headers) { { authorization: credentials('gitlab_ci_token', project.runners_token) } } + let(:headers) { { authorization: credentials('gitlab-ci-token', project.runners_token) } } subject! { get '/jwt/auth', parameters, headers } diff --git a/spec/services/auth/container_registry_authentication_service_spec.rb b/spec/services/auth/container_registry_authentication_service_spec.rb index 73b8c3f048..3f4a1ced2b 100644 --- a/spec/services/auth/container_registry_authentication_service_spec.rb +++ b/spec/services/auth/container_registry_authentication_service_spec.rb @@ -127,12 +127,12 @@ describe Auth::ContainerRegistryAuthenticationService, services: true do context 'project authorization' do let(:current_project) { create(:empty_project) } - context 'disallow to use offline_token' do + context 'allow to use offline_token' do let(:current_params) do { offline_token: true } end - it_behaves_like 'an unauthorized' + it_behaves_like 'an authenticated' end context 'allow to pull and push images' do From edfb20f2bc067d72887caccb15b8cd323827c897 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Mon, 23 May 2016 00:09:42 +0200 Subject: [PATCH 46/83] Move registry fix Changelog entry to valid version --- CHANGELOG | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 434c7b554f..ef4d72a9e9 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,7 @@ Please view this file on the master branch, on stable branches it's out of date. v 8.8.1 (unreleased) - Fix MySQL compatibility in zero downtime migrations helpers + - Fix the CI login to Container Registry (the gitlab-ci-token user) v 8.8.0 (unreleased) - Implement GFM references for milestones (Alejandro Rodríguez) @@ -32,7 +33,6 @@ v 8.8.0 (unreleased) - Bump mail_room to 0.7.0 to fix stuck IDLE connections - Remove future dates from contribution calendar graph. - Support e-mail notifications for comments on project snippets - - Fix the CI login to Container Registry (the gitlab-ci-token user) - Fix API leak of notes of unauthorized issues, snippets and merge requests - Use ActionDispatch Remote IP for Akismet checking - Fix error when visiting commit builds page before build was updated From cd26cfbc27218b734a1a78836084f2205a18c580 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 21 May 2016 17:58:11 -0500 Subject: [PATCH 47/83] Allow anonymous user to access pipelines --- CHANGELOG | 1 + app/helpers/projects_helper.rb | 4 ++++ app/models/ability.rb | 1 + app/views/layouts/nav/_project.html.haml | 3 ++- spec/features/pipelines_spec.rb | 6 ++++++ 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index ef4d72a9e9..950002df8f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -25,6 +25,7 @@ v 8.8.0 (unreleased) - Updated gitlab_git to 10.1.0 - GitAccess#protected_tag? no longer loads all tags just to check if a single one exists - Reduce delay in destroying a project from 1-minute to immediately + - Fix access to Pipelines by Anonymous user - Make build status canceled if any of the jobs was canceled and none failed - Upgrade Sidekiq to 4.1.2 - Added /health_check endpoint for checking service status diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 0825b5b643..5e5d170a9f 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -144,6 +144,10 @@ module ProjectsHelper nav_tabs << :merge_requests end + if can?(current_user, :read_pipeline, project) + nav_tabs << :pipelines + end + if can?(current_user, :read_build, project) nav_tabs << :builds end diff --git a/app/models/ability.rb b/app/models/ability.rb index f7ea2fd2b1..b354b1990c 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -60,6 +60,7 @@ class Ability :read_project_member, :read_merge_request, :read_note, + :read_pipeline, :read_commit_status, :read_container_image, :download_code diff --git a/app/views/layouts/nav/_project.html.haml b/app/views/layouts/nav/_project.html.haml index a97fefcfb4..6dff488eda 100644 --- a/app/views/layouts/nav/_project.html.haml +++ b/app/views/layouts/nav/_project.html.haml @@ -38,7 +38,7 @@ %span Commits - - if project_nav_tab? :builds + - if project_nav_tab? :pipelines = nav_link(controller: :pipelines) do = link_to project_pipelines_path(@project), title: 'Pipelines', class: 'shortcuts-pipelines' do = icon('ship fw') @@ -46,6 +46,7 @@ Pipelines %span.count.ci_counter= number_with_delimiter(@project.ci_commits.running_or_pending.count) + - if project_nav_tab? :builds = nav_link(controller: %w(builds)) do = link_to project_builds_path(@project), title: 'Builds', class: 'shortcuts-builds' do = icon('cubes fw') diff --git a/spec/features/pipelines_spec.rb b/spec/features/pipelines_spec.rb index 32665aadd2..1d6f4485c8 100644 --- a/spec/features/pipelines_spec.rb +++ b/spec/features/pipelines_spec.rb @@ -24,6 +24,12 @@ describe "Pipelines" do end end + context 'anonymous access' do + before { visit namespace_project_pipelines_path(project.namespace, project) } + + it { expect(page).to have_http_status(:success) } + end + context 'cancelable pipeline' do let!(:running) { create(:ci_build, :running, commit: pipeline, stage: 'test', commands: 'test') } From 11fa89dfa548832cda0f3dafbc902c9193ed3177 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Mon, 23 May 2016 00:14:23 +0200 Subject: [PATCH 48/83] Move Changelog for pipeline fix to valid version --- CHANGELOG | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 950002df8f..88e7cfaf96 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -3,6 +3,7 @@ Please view this file on the master branch, on stable branches it's out of date. v 8.8.1 (unreleased) - Fix MySQL compatibility in zero downtime migrations helpers - Fix the CI login to Container Registry (the gitlab-ci-token user) + - Fix access to Pipelines by Anonymous user v 8.8.0 (unreleased) - Implement GFM references for milestones (Alejandro Rodríguez) @@ -25,7 +26,6 @@ v 8.8.0 (unreleased) - Updated gitlab_git to 10.1.0 - GitAccess#protected_tag? no longer loads all tags just to check if a single one exists - Reduce delay in destroying a project from 1-minute to immediately - - Fix access to Pipelines by Anonymous user - Make build status canceled if any of the jobs was canceled and none failed - Upgrade Sidekiq to 4.1.2 - Added /health_check endpoint for checking service status From b565cfa50fa53bede268904d318547e593931f0b Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Sun, 22 May 2016 18:52:42 -0500 Subject: [PATCH 49/83] Fix remaining docs on enabling/disabling Registry --- doc/administration/container_registry.md | 65 ++++++++++++------------ 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/doc/administration/container_registry.md b/doc/administration/container_registry.md index a3df14019f..7d7d5fd1e8 100644 --- a/doc/administration/container_registry.md +++ b/doc/administration/container_registry.md @@ -120,22 +120,20 @@ GitLab from source respectively. **Omnibus GitLab installations** ->**Note:** -If you are using HTTPS in your Omnibus packages, then the Registry will be -enabled by default and exposed under port `5005`. Follow the steps below only if -you want to change the default port. - 1. Your `/etc/gitlab/gitlab.rb` should contain the Registry URL as well as the path to the existing TLS certificate and key used by GitLab: ```ruby - gitlab_rails['registry_port'] = "4567" gitlab_rails['registry_host'] = "gitlab.example.com" + gitlab_rails['registry_port'] = "4567" # The following setting is needed for NGINX registry_external_url 'https://gitlab.example.com:4567' ``` + Note how the `registry_external_url` is listening on HTTPS and is a + conjunction of `registry_host` and `registry_port`. + If your TLS certificate is not in `/etc/gitlab/ssl/gitlab.example.com.crt` and key not in `/etc/gitlab/ssl/gitlab.example.com.key` uncomment the lines below: @@ -213,7 +211,6 @@ certificate in addition to the URL, in this case `/etc/gitlab/gitlab.rb` will look like: > ```ruby -registry_external_url 'https://registry.gitlab.example.com' registry_nginx['ssl_certificate'] = "/etc/gitlab/ssl/certificate.pem" registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/certificate.key" ``` @@ -229,7 +226,6 @@ registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/certificate.key" registry: enabled: true host: registry.gitlab.example.com - port: 4567 ``` 1. Save the file and [restart GitLab][] for the changes to take effect. @@ -246,31 +242,36 @@ docker login registry.gitlab.example.com ## Disable Container Registry site-wide +>**Note:** +Disabling the Registry in the Rails GitLab application as set by the following +steps, will not remove any existing Docker images. This is handled by the +Registry application itself. + **Omnibus GitLab** -```ruby -gitlab_rails['registry_enabled'] = true -``` +1. Open `/etc/gitlab/gitlab.rb` and set `gitlab_rails['registry_enabled']` to + `false` and comment out the `registry_external_url`: -``` -# gitlab_rails['registry_port'] = "5005" -# gitlab_rails['registry_host'] = "registry.gitlab.example.com" -# gitlab_rails['registry_api_url'] = "http://localhost:5000" -# gitlab_rails['registry_key_path'] = "/var/opt/gitlab/gitlab-rails/certificate.key" -# gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry" -# gitlab_rails['registry_issuer'] = "omnibus-gitlab-issuer" + ```ruby + gitlab_rails['registry_enabled'] = false + # registry_external_url 'https://registry.gitlab.example.com' + ``` -# Settings used by Registry application -# registry['enable'] = true -# registry['username'] = "registry" -# registry['group'] = "registry" -# registry['uid'] = nil -# registry['gid'] = nil -# registry['dir'] = "/var/opt/gitlab/registry" -# registry['log_directory'] = "/var/log/gitlab/registry" -# registry['log_level'] = "info" -# registry['rootcertbundle'] = "/var/opt/gitlab/registry/certificate.crt" -``` +1. Save the file and [reconfigure GitLab][] for the changes to take effect. + +--- + +**Installations from source** + +1. Open `/home/git/gitlab/config/gitlab.yml`, find the `registry` entry and + set `enabled` to `false`: + + ``` + registry: + enabled: false + ``` + +1. Save the file and [restart GitLab][] for the changes to take effect. ## Disable Container Registry per project @@ -280,9 +281,9 @@ on how to achieve that. ## Disable Container Registry for new projects site-wide -The Registry is enabled by default on all new projects. To disable this function -and let the owners of a project to enable Registry by themselves, follow the -steps below. +If the Container Registry is enabled, then it will be available on all new +projects. To disable this function and let the owners of a project to enable +the Container Registry by themselves, follow the steps below. --- From f55f62853162af86989a8343c6692c956f7ccbb0 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Sun, 22 May 2016 19:20:28 -0500 Subject: [PATCH 50/83] Add note about port needed in NGINX config --- lib/support/nginx/registry-ssl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/support/nginx/registry-ssl b/lib/support/nginx/registry-ssl index af607db012..92511e2686 100644 --- a/lib/support/nginx/registry-ssl +++ b/lib/support/nginx/registry-ssl @@ -16,6 +16,8 @@ server { } server { + # If a different port is specified in https://gitlab.com/gitlab-org/gitlab-ce/blob/8-8-stable/config/gitlab.yml.example#L182, + # it should be declared here as well listen *:443 ssl http2; server_name registry.gitlab.example.com; server_tokens off; ## Don't show the nginx version number, a security best practice From f896a4e0c1cb66392e069556c1c298915fc55d0e Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Sun, 22 May 2016 19:31:19 -0500 Subject: [PATCH 51/83] Refactor storage location section --- doc/administration/container_registry.md | 58 ++++++++++++++---------- 1 file changed, 34 insertions(+), 24 deletions(-) diff --git a/doc/administration/container_registry.md b/doc/administration/container_registry.md index 7d7d5fd1e8..e9d850ca68 100644 --- a/doc/administration/container_registry.md +++ b/doc/administration/container_registry.md @@ -319,39 +319,49 @@ the Container Registry by themselves, follow the steps below. ## Container Registry storage path -It is possible to change path where containers will be stored by the Container -Registry. +To change the storage path where Docker images will be stored, follow the +steps below. -**Omnibus GitLab packages** +This path is accessible to: + +- the user running the Container Registry daemon, +- the user running GitLab +- and to the user running the Nginx web server. + +> **Warning** You should confirm that all GitLab, Registry and web server users +have access to this directory. --- -By default, the path Container Registry is using to store the containers is in -`/var/opt/gitlab/gitlab-rails/shared/registry`. -This path is accessible to the user running the Container Registry daemon, -user running GitLab and to the user running Nginx web server. +**Omnibus GitLab installations** -In `/etc/gitlab/gitlab.rb`: +The default location where images are stored in Omnibus, is +`/var/opt/gitlab/gitlab-rails/shared/registry`. To change it: -```ruby -gitlab_rails['registry_path'] = "/path/to/registry/storage" -``` +1. Edit `/etc/gitlab/gitlab.rb`: -``` -registry: - enabled: true - host: registry.gitlab.example.com - port: 5005 - api_url: http://localhost:5000/ - key_path: config/registry.key - path: shared/registry - issuer: gitlab-issuer -``` + ```ruby + gitlab_rails['registry_path'] = "/path/to/registry/storage" + ``` -Save the file and [reconfigure GitLab][] for the changes to take effect. +1. Save the file and [reconfigure GitLab][] for the changes to take effect. -**NOTE** You should confirm that the GitLab, registry and the web server user -have access to this directory. +--- + +**Installations from source** + +The default location where images are stored in source installations, is +`/home/git/gitlab/shared/registry`. To change it: + +1. Open `/home/git/gitlab/config/gitlab.yml`, find the `registry` entry and + change the `path` setting: + + ``` + registry: + path: shared/registry + ``` + +1. Save the file and [restart GitLab][] for the changes to take effect. ## Storage limitations From c01f99b768d0209c67e73b16751cacede2d8d6ad Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Sun, 22 May 2016 19:53:19 -0500 Subject: [PATCH 52/83] Fixes suggested by Kamil --- doc/administration/container_registry.md | 32 +++++++----------------- 1 file changed, 9 insertions(+), 23 deletions(-) diff --git a/doc/administration/container_registry.md b/doc/administration/container_registry.md index e9d850ca68..caf9a5bef2 100644 --- a/doc/administration/container_registry.md +++ b/doc/administration/container_registry.md @@ -31,15 +31,9 @@ You can read more about Docker Registry at https://docs.docker.com/registry/intr **Omnibus GitLab installations** -1. Open `/etc/gitlab/gitlab.rb` and edit or add the following line: - - ```ruby - gitlab_rails['registry_enabled'] = true - ``` - -1. The next step is to configure the domain name under which the Container - Registry will listen to. Read [#container-registry-domain-configuration](#container-registry-domain-configuration) - and pick one of the two options that fits your case. +All you have to do is configure the domain name under which the Container +Registry will listen to. Read [#container-registry-domain-configuration](#container-registry-domain-configuration) +and pick one of the two options that fits your case. >**Note:** The container Registry works under HTTPS by default. Using HTTP is possible @@ -124,15 +118,11 @@ GitLab from source respectively. path to the existing TLS certificate and key used by GitLab: ```ruby - gitlab_rails['registry_host'] = "gitlab.example.com" - gitlab_rails['registry_port'] = "4567" - - # The following setting is needed for NGINX registry_external_url 'https://gitlab.example.com:4567' ``` - Note how the `registry_external_url` is listening on HTTPS and is a - conjunction of `registry_host` and `registry_port`. + Note how the `registry_external_url` is listening on HTTPS under the + existing GitLab URL, but on a different port. If your TLS certificate is not in `/etc/gitlab/ssl/gitlab.example.com.crt` and key not in `/etc/gitlab/ssl/gitlab.example.com.key` uncomment the lines @@ -197,12 +187,11 @@ Let's assume that you want the container Registry to be accessible at 1. Once the TLS certificate is in place, edit `/etc/gitlab/gitlab.rb` with: ```ruby - gitlab_rails['registry_host'] = "registry.gitlab.example.com" - - # The following setting is needed for NGINX registry_external_url 'https://registry.gitlab.example.com' ``` + Note how the `registry_external_url` is listening on HTTPS. + 1. Save the file and [reconfigure GitLab][] for the changes to take effect. > **Note:** @@ -249,12 +238,10 @@ Registry application itself. **Omnibus GitLab** -1. Open `/etc/gitlab/gitlab.rb` and set `gitlab_rails['registry_enabled']` to - `false` and comment out the `registry_external_url`: +1. Open `/etc/gitlab/gitlab.rb` and set `registry['enable']` to `false`: ```ruby - gitlab_rails['registry_enabled'] = false - # registry_external_url 'https://registry.gitlab.example.com' + registry['enable'] = false ``` 1. Save the file and [reconfigure GitLab][] for the changes to take effect. @@ -326,7 +313,6 @@ This path is accessible to: - the user running the Container Registry daemon, - the user running GitLab -- and to the user running the Nginx web server. > **Warning** You should confirm that all GitLab, Registry and web server users have access to this directory. From 2bf818c4d0e75224f832912642fe319e0bea670a Mon Sep 17 00:00:00 2001 From: Connor Shea Date: Sun, 22 May 2016 19:38:22 -0600 Subject: [PATCH 53/83] Fix some specs which would have broken in 2017 to not break anymore by using a dynamic year value. --- .../files/project_owner_creates_license_file_spec.rb | 8 ++++---- ...k_to_create_license_file_in_empty_project_spec.rb | 4 ++-- spec/requests/api/licenses_spec.rb | 12 ++++++------ 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/spec/features/projects/files/project_owner_creates_license_file_spec.rb b/spec/features/projects/files/project_owner_creates_license_file_spec.rb index 3d6ffbc4c6..ecc818eb1e 100644 --- a/spec/features/projects/files/project_owner_creates_license_file_spec.rb +++ b/spec/features/projects/files/project_owner_creates_license_file_spec.rb @@ -25,7 +25,7 @@ feature 'project owner creates a license file', feature: true, js: true do file_content = find('.file-content') expect(file_content).to have_content('The MIT License (MIT)') - expect(file_content).to have_content("Copyright (c) 2016 #{project.namespace.human_name}") + expect(file_content).to have_content("Copyright (c) #{Time.now.year} #{project.namespace.human_name}") fill_in :commit_message, with: 'Add a LICENSE file', visible: true click_button 'Commit Changes' @@ -33,7 +33,7 @@ feature 'project owner creates a license file', feature: true, js: true do expect(current_path).to eq( namespace_project_blob_path(project.namespace, project, 'master/LICENSE')) expect(page).to have_content('The MIT License (MIT)') - expect(page).to have_content("Copyright (c) 2016 #{project.namespace.human_name}") + expect(page).to have_content("Copyright (c) #{Time.now.year} #{project.namespace.human_name}") end scenario 'project master creates a license file from the "Add license" link' do @@ -48,7 +48,7 @@ feature 'project owner creates a license file', feature: true, js: true do file_content = find('.file-content') expect(file_content).to have_content('The MIT License (MIT)') - expect(file_content).to have_content("Copyright (c) 2016 #{project.namespace.human_name}") + expect(file_content).to have_content("Copyright (c) #{Time.now.year} #{project.namespace.human_name}") fill_in :commit_message, with: 'Add a LICENSE file', visible: true click_button 'Commit Changes' @@ -56,6 +56,6 @@ feature 'project owner creates a license file', feature: true, js: true do expect(current_path).to eq( namespace_project_blob_path(project.namespace, project, 'master/LICENSE')) expect(page).to have_content('The MIT License (MIT)') - expect(page).to have_content("Copyright (c) 2016 #{project.namespace.human_name}") + expect(page).to have_content("Copyright (c) #{Time.now.year} #{project.namespace.human_name}") end end diff --git a/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb b/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb index 3268e24020..34eda29c28 100644 --- a/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb +++ b/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb @@ -24,7 +24,7 @@ feature 'project owner sees a link to create a license file in empty project', f file_content = find('.file-content') expect(file_content).to have_content('The MIT License (MIT)') - expect(file_content).to have_content("Copyright (c) 2016 #{project.namespace.human_name}") + expect(file_content).to have_content("Copyright (c) #{Time.now.year} #{project.namespace.human_name}") fill_in :commit_message, with: 'Add a LICENSE file', visible: true # Remove pre-receive hook so we can push without auth @@ -34,6 +34,6 @@ feature 'project owner sees a link to create a license file in empty project', f expect(current_path).to eq( namespace_project_blob_path(project.namespace, project, 'master/LICENSE')) expect(page).to have_content('The MIT License (MIT)') - expect(page).to have_content("Copyright (c) 2016 #{project.namespace.human_name}") + expect(page).to have_content("Copyright (c) #{Time.now.year} #{project.namespace.human_name}") end end diff --git a/spec/requests/api/licenses_spec.rb b/spec/requests/api/licenses_spec.rb index c17dcb222a..3726b2f568 100644 --- a/spec/requests/api/licenses_spec.rb +++ b/spec/requests/api/licenses_spec.rb @@ -57,7 +57,7 @@ describe API::Licenses, api: true do end it 'replaces placeholder values' do - expect(json_response['content']).to include('Copyright (c) 2016 Anton') + expect(json_response['content']).to include("Copyright (c) #{Time.now.year} Anton") end end @@ -70,7 +70,7 @@ describe API::Licenses, api: true do it 'replaces placeholder values' do expect(json_response['content']).to include('My Awesome Project') - expect(json_response['content']).to include('Copyright (C) 2016 Anton') + expect(json_response['content']).to include("Copyright (C) #{Time.now.year} Anton") end end @@ -83,7 +83,7 @@ describe API::Licenses, api: true do it 'replaces placeholder values' do expect(json_response['content']).to include('My Awesome Project') - expect(json_response['content']).to include('Copyright (C) 2016 Anton') + expect(json_response['content']).to include("Copyright (C) #{Time.now.year} Anton") end end @@ -96,7 +96,7 @@ describe API::Licenses, api: true do it 'replaces placeholder values' do expect(json_response['content']).to include('My Awesome Project') - expect(json_response['content']).to include('Copyright (C) 2016 Anton') + expect(json_response['content']).to include("Copyright (C) #{Time.now.year} Anton") end end @@ -108,7 +108,7 @@ describe API::Licenses, api: true do end it 'replaces placeholder values' do - expect(json_response['content']).to include('Copyright 2016 Anton') + expect(json_response['content']).to include("Copyright #{Time.now.year} Anton") end end @@ -128,7 +128,7 @@ describe API::Licenses, api: true do it 'replaces the copyright owner placeholder with the name of the current user' do get api('/licenses/mit', user) - expect(json_response['content']).to include("Copyright (c) 2016 #{user.name}") + expect(json_response['content']).to include("Copyright (c) #{Time.now.year} #{user.name}") end end end From f23facabe47d0f002ce49ec39593d9a585c68268 Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Sun, 22 May 2016 23:38:48 -0400 Subject: [PATCH 54/83] Update CHANGELOG for 8.8.1 [ci skip] --- CHANGELOG | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 88e7cfaf96..8f4ec3e271 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,11 +1,13 @@ Please view this file on the master branch, on stable branches it's out of date. -v 8.8.1 (unreleased) +v 8.8.1 + - Add documentation for the "Health Check" feature + - Allow anonymous users to access a public project's pipelines - Fix MySQL compatibility in zero downtime migrations helpers - Fix the CI login to Container Registry (the gitlab-ci-token user) - Fix access to Pipelines by Anonymous user -v 8.8.0 (unreleased) +v 8.8.0 - Implement GFM references for milestones (Alejandro Rodríguez) - Snippets tab under user profile. !4001 (Long Nguyen) - Fix error when using link to uploads in global snippets From c135a69a877c6b3336dc4d25c2bfc2715abbe838 Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Sun, 22 May 2016 23:54:29 -0400 Subject: [PATCH 55/83] Update CHANGELOG for 8.8.1. Again. [ci skip] --- CHANGELOG | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 8f4ec3e271..e5cdcc2ecc 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -5,7 +5,6 @@ v 8.8.1 - Allow anonymous users to access a public project's pipelines - Fix MySQL compatibility in zero downtime migrations helpers - Fix the CI login to Container Registry (the gitlab-ci-token user) - - Fix access to Pipelines by Anonymous user v 8.8.0 - Implement GFM references for milestones (Alejandro Rodríguez) From 8ed9b6aa7a31dad147e050d3fe992fbf814712fb Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sun, 22 May 2016 23:12:32 -0500 Subject: [PATCH 56/83] Initial version of user documentation of container registry --- doc/README.md | 1 + doc/container_registry/README.md | 84 ++++++++++++++++++ doc/container_registry/container_registry.png | Bin 0 -> 354050 bytes doc/container_registry/project_feature.png | Bin 0 -> 392842 bytes 4 files changed, 85 insertions(+) create mode 100644 doc/container_registry/README.md create mode 100644 doc/container_registry/container_registry.png create mode 100644 doc/container_registry/project_feature.png diff --git a/doc/README.md b/doc/README.md index a297ce54f3..8a6adee2fb 100644 --- a/doc/README.md +++ b/doc/README.md @@ -13,6 +13,7 @@ - [Profile Settings](profile/README.md) - [Project Services](project_services/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. +- [Container Registry](container-registry/README.md) Learn how to use GitLab Container Registry. - [SSH](ssh/README.md) Setup your ssh keys and deploy keys for secure access to your projects. - [Webhooks](web_hooks/web_hooks.md) Let GitLab notify you when new code has been pushed to your project. - [Workflow](workflow/README.md) Using GitLab functionality and importing projects from GitHub and SVN. diff --git a/doc/container_registry/README.md b/doc/container_registry/README.md new file mode 100644 index 0000000000..5af47f7120 --- /dev/null +++ b/doc/container_registry/README.md @@ -0,0 +1,84 @@ +# GitLab Container Registry + +> **Note:** +This feature was [introduced][ce-4040] in GitLab 8.8. + +With the Docker Container Registry integrated into GitLab, every project can +have its own space to store its Docker images. + +You can read more about Docker Registry at https://docs.docker.com/registry/introduction/. + +You can read more about administering GitLab Container Registry on [GitLab Container Registry Administration](../administration/container_registry.md) + +--- + +## Start using Container Registry + +1. First ask your system administrator to enable GitLab Container Registry following the [administration documentation](../administration/container_registry.md). + +2. Go to project settings and enable `Container Registry` feature on your project: + +![](project_feature.png) + +3. Login to Container Registry with your credentials: + +``` +docker login registry.example.com +``` + +## Build and push images + +Your registry is accessible under address configured via `registry_external_url`. +To start using it you need to first build and publish images: + +``` +docker build -t registry.example.com/group/project . +docker push registry.example.com/group/project +``` + +## Use images from GitLab Container Registry + +To download and run container from images hosted in GitLab Container Registry use `docker run`: + +``` +docker run [options] registry.example.com/group/project [arguments] +``` + +## Control Container Registry from GitLab + +GitLab offers simple Container Registry management. Go to your project and click **Container Registry**. +This view will show you all tags in your repository and will easily allow you to delete them. + +![](container_registry.png) + +## Build and push images using GitLab CI + +> **Note:** +This feature requires GitLab 8.8 and GitLab Runner 1.2. + +Make sure that your GitLab Runner is configured to allow building docker images. +You have to check the [Using Docker Build](../../ci/docker/using_docker_build.md). + +You can use [docker:dind](https://hub.docker.com/_/docker/) to build your images. +This is how the `.gitlab-ci.yml` looks like: + +``` + build_image: + image: docker:git + services: + - docker:dind + stage: build + script: + - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com + - docker build -t registry.gitlab.com/group/project:latest . + - docker push registry.gitlab.com/group/project:latest +``` + +You have to use special credentials `gitlab-ci-token` with password stored in `$CI_BUILD_TOKEN` in order to push to registry connected to your project. +This allows you to automated building and deployment of your images. + +## Limitations + +In order to use container image from private project as an `image:` in your `.gitlab-ci.yml` you have to follow +[Using a private Docker Registry](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/configuration/advanced-configuration.md#using-a-private-docker-registry). +This workflow will be simplified in the future. diff --git a/doc/container_registry/container_registry.png b/doc/container_registry/container_registry.png new file mode 100644 index 0000000000000000000000000000000000000000..e9505a73b408e29a78898014ccfc5b5f8eb80bf9 GIT binary patch literal 354050 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�yf+{HcXUO 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
=Si7>XP2FLWJZj$ZQ*!HL+Z#wC}JsiJi%d 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 Lm*7vI{^frFZcP$s literal 0 HcmV?d00001 diff --git a/doc/container_registry/project_feature.png b/doc/container_registry/project_feature.png new file mode 100644 index 0000000000000000000000000000000000000000..57a73d253c0b8ca6c92c80fca13068e5e764a69d GIT binary patch literal 392842 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åz*7yW%*ssUEYL{ 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 RGvKph+pa& Date: Mon, 23 May 2016 06:36:25 +0200 Subject: [PATCH 57/83] Serialize application setting as Array by default --- CHANGELOG | 3 +++ app/models/application_setting.rb | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index e5cdcc2ecc..3e459f8b2b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,8 @@ Please view this file on the master branch, on stable branches it's out of date. +v 8.8.2 (unreleased) + - Fix Error 500 when accessing application settings due to nil disabled OAuth sign-in sources + v 8.8.1 - Add documentation for the "Health Check" feature - Allow anonymous users to access a public project's pipelines diff --git a/app/models/application_setting.rb b/app/models/application_setting.rb index f5079f9244..9a14954b4a 100644 --- a/app/models/application_setting.rb +++ b/app/models/application_setting.rb @@ -7,7 +7,7 @@ class ApplicationSetting < ActiveRecord::Base serialize :restricted_visibility_levels serialize :import_sources - serialize :disabled_oauth_sign_in_sources + serialize :disabled_oauth_sign_in_sources, Array serialize :restricted_signup_domains, Array attr_accessor :restricted_signup_domains_raw From 9bb0d0b4079bc88134399f175ce9631005044060 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Sun, 22 May 2016 23:35:18 -0700 Subject: [PATCH 58/83] Fix Error 500 in CI charts by gracefully handling commits with no durations Closes #17730 --- CHANGELOG | 1 + lib/ci/charts.rb | 3 ++- spec/lib/ci/charts_spec.rb | 7 +++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 3e459f8b2b..9fa1e1cada 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,7 @@ Please view this file on the master branch, on stable branches it's out of date. v 8.8.2 (unreleased) - Fix Error 500 when accessing application settings due to nil disabled OAuth sign-in sources + - Fix Error 500 in CI charts by gracefully handling commits with no durations v 8.8.1 - Add documentation for the "Health Check" feature diff --git a/lib/ci/charts.rb b/lib/ci/charts.rb index d53bdcbd0f..e163663693 100644 --- a/lib/ci/charts.rb +++ b/lib/ci/charts.rb @@ -64,7 +64,8 @@ module Ci commits.each do |commit| @labels << commit.short_sha - @build_times << (commit.duration / 60) + duration = commit.duration || 0 + @build_times << (duration / 60) end end end diff --git a/spec/lib/ci/charts_spec.rb b/spec/lib/ci/charts_spec.rb index 50a77308cd..9d1215a576 100644 --- a/spec/lib/ci/charts_spec.rb +++ b/spec/lib/ci/charts_spec.rb @@ -12,5 +12,12 @@ describe Ci::Charts, lib: true do chart = Ci::Charts::BuildTime.new(@commit.project) expect(chart.build_times).to eq([2]) end + + it 'should handle nil build times' do + create(:ci_commit, duration: nil, project: @commit.project) + + chart = Ci::Charts::BuildTime.new(@commit.project) + expect(chart.build_times).to eq([2, 0]) + end end end From a69ab104de873f11dc9004edbf39210000d4e50a Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Thu, 19 May 2016 11:34:40 +0100 Subject: [PATCH 59/83] Added remove due date button In the sidebar when there is a due date, a link to remove due date becomes visible Closes #17392 --- .../javascripts/due_date_select.js.coffee | 21 ++++++++++++++++--- app/assets/stylesheets/pages/issuable.scss | 4 ++++ app/views/shared/issuable/_sidebar.html.haml | 14 +++++++++---- 3 files changed, 32 insertions(+), 7 deletions(-) diff --git a/app/assets/javascripts/due_date_select.js.coffee b/app/assets/javascripts/due_date_select.js.coffee index a4304786cb..172b4ebe7b 100644 --- a/app/assets/javascripts/due_date_select.js.coffee +++ b/app/assets/javascripts/due_date_select.js.coffee @@ -11,6 +11,7 @@ class @DueDateSelect $block = $dropdown.closest('.block') $selectbox = $dropdown.closest('.selectbox') $value = $block.find('.value') + $valueContent = $block.find('.value-content') $sidebarValue = $('.js-due-date-sidebar-value', $block) fieldName = $dropdown.data('field-name') @@ -26,8 +27,12 @@ class @DueDateSelect addDueDate = -> # Create the post date value = $("input[name='#{fieldName}']").val() - date = new Date value.replace(new RegExp('-', 'g'), ',') - mediumDate = $.datepicker.formatDate 'M d, yy', date + + if value isnt '' + date = new Date value.replace(new RegExp('-', 'g'), ',') + mediumDate = $.datepicker.formatDate 'M d, yy', date + else + mediumDate = 'None' data = {} data[abilityName] = {} @@ -43,13 +48,23 @@ class @DueDateSelect $selectbox.hide() $value.removeAttr('style') - $value.html(mediumDate) + $valueContent.html(mediumDate) $sidebarValue.html(mediumDate) + + if value isnt '' + $('.js-remove-due-date-holder').removeClass 'hidden' + else + $('.js-remove-due-date-holder').addClass 'hidden' ).done (data) -> $dropdown.trigger('loaded.gl.dropdown') $dropdown.dropdown('toggle') $loading.fadeOut() + $block.on 'click', '.js-remove-due-date', (e) -> + e.preventDefault() + $("input[name='#{fieldName}']").val '' + addDueDate() + $datePicker.datepicker( dateFormat: 'yy-mm-dd', defaultDate: $("input[name='#{fieldName}']").val() diff --git a/app/assets/stylesheets/pages/issuable.scss b/app/assets/stylesheets/pages/issuable.scss index d06086a581..787c387379 100644 --- a/app/assets/stylesheets/pages/issuable.scss +++ b/app/assets/stylesheets/pages/issuable.scss @@ -150,6 +150,10 @@ font-weight: 600; } + .light { + font-weight: normal; + } + .sidebar-collapsed-icon { display: none; } diff --git a/app/views/shared/issuable/_sidebar.html.haml b/app/views/shared/issuable/_sidebar.html.haml index ed1b8a8da2..c1eec45019 100644 --- a/app/views/shared/issuable/_sidebar.html.haml +++ b/app/views/shared/issuable/_sidebar.html.haml @@ -87,10 +87,16 @@ - if can?(current_user, :"admin_#{issuable.to_ability_name}", @project) = link_to 'Edit', '#', class: 'edit-link pull-right' .value.bold.hide-collapsed - - if issuable.due_date - = issuable.due_date.to_s(:medium) - - else - .light None + %span.value-content + - if issuable.due_date + = issuable.due_date.to_s(:medium) + - else + None + - if can?(current_user, :"admin_#{issuable.to_ability_name}", @project) + %span.light.js-remove-due-date-holder{ class: ("hidden" if issuable.due_date.nil?) } + \- + %a.js-remove-due-date{ href: "#", role: "button" } + remove due date - if can?(current_user, :"admin_#{issuable.to_ability_name}", @project) .selectbox.hide-collapsed = f.hidden_field :due_date, value: issuable.due_date From 9052ec8d37537aac58d6ede8faf1b021b7ea60e9 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Thu, 19 May 2016 12:19:19 +0100 Subject: [PATCH 60/83] Added due date tests --- spec/features/issues_spec.rb | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/spec/features/issues_spec.rb b/spec/features/issues_spec.rb index dd114db7e8..749ee01890 100644 --- a/spec/features/issues_spec.rb +++ b/spec/features/issues_spec.rb @@ -489,6 +489,43 @@ describe 'Issues', feature: true do end end + describe 'due date' do + context 'update due on issue#show', js: true do + let(:issue) { create(:issue, project: project, author: @user, assignee: @user) } + + before do + visit namespace_project_issue_path(project.namespace, project, issue) + end + + it 'should add due date to issue' do + page.within '.due_date' do + click_link 'Edit' + + page.within '.ui-datepicker-calendar' do + first('.ui-state-default').click + end + + expect(page).to have_no_content 'None' + end + end + + it 'should remove due date from issue' do + page.within '.due_date' do + click_link 'Edit' + + page.within '.ui-datepicker-calendar' do + first('.ui-state-default').click + end + + expect(page).to have_no_content 'None' + + click_link 'remove due date' + expect(page).to have_content 'None' + end + end + end + end + def first_issue page.all('ul.issues-list > li').first.text end From d3bdbf55c7505f7d25d9a105d894b7289dfc6bb1 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Mon, 23 May 2016 09:33:48 +0100 Subject: [PATCH 61/83] Fixed issue with dropdown not opening after removing due date --- app/assets/javascripts/due_date_select.js.coffee | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/app/assets/javascripts/due_date_select.js.coffee b/app/assets/javascripts/due_date_select.js.coffee index 172b4ebe7b..3cc7018517 100644 --- a/app/assets/javascripts/due_date_select.js.coffee +++ b/app/assets/javascripts/due_date_select.js.coffee @@ -24,7 +24,7 @@ class @DueDateSelect $value.removeAttr('style') ) - addDueDate = -> + addDueDate = (isDropdown) -> # Create the post date value = $("input[name='#{fieldName}']").val() @@ -44,8 +44,9 @@ class @DueDateSelect data: data beforeSend: -> $loading.fadeIn() - $dropdown.trigger('loading.gl.dropdown') - $selectbox.hide() + if isDropdown + $dropdown.trigger('loading.gl.dropdown') + $selectbox.hide() $value.removeAttr('style') $valueContent.html(mediumDate) @@ -56,21 +57,22 @@ class @DueDateSelect else $('.js-remove-due-date-holder').addClass 'hidden' ).done (data) -> - $dropdown.trigger('loaded.gl.dropdown') - $dropdown.dropdown('toggle') + if isDropdown + $dropdown.trigger('loaded.gl.dropdown') + $dropdown.dropdown('toggle') $loading.fadeOut() $block.on 'click', '.js-remove-due-date', (e) -> e.preventDefault() $("input[name='#{fieldName}']").val '' - addDueDate() + addDueDate(false) $datePicker.datepicker( dateFormat: 'yy-mm-dd', defaultDate: $("input[name='#{fieldName}']").val() altField: "input[name='#{fieldName}']" onSelect: -> - addDueDate() + addDueDate(true) ) $(document) From 85031223cd89db86a9ae2347daa1a6f9f5b26ff2 Mon Sep 17 00:00:00 2001 From: Annabel Dunstone Date: Mon, 23 May 2016 08:47:25 -0500 Subject: [PATCH 62/83] Move tags into column --- app/views/projects/ci/builds/_build.html.haml | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/app/views/projects/ci/builds/_build.html.haml b/app/views/projects/ci/builds/_build.html.haml index 962b9fb259..e23a3782c6 100644 --- a/app/views/projects/ci/builds/_build.html.haml +++ b/app/views/projects/ci/builds/_build.html.haml @@ -42,18 +42,18 @@ %td = build.name - .pull-right - .label-container - - if build.tags.any? - - build.tags.each do |tag| - %span.label.label-primary - = tag - - if build.try(:trigger_request) - %span.label.label-info triggered - - if build.try(:allow_failure) - %span.label.label-danger allowed to fail - - if defined?(retried) && retried - %span.label.label-warning retried + %td + .label-container + - if build.tags.any? + - build.tags.each do |tag| + %span.label.label-primary + = tag + - if build.try(:trigger_request) + %span.label.label-info triggered + - if build.try(:allow_failure) + %span.label.label-danger allowed to fail + - if defined?(retried) && retried + %span.label.label-warning retried %td.duration - if build.duration From 9c1b3d88db1482bb1fb394275c8119a77fdf9b88 Mon Sep 17 00:00:00 2001 From: Annabel Dunstone Date: Mon, 23 May 2016 09:30:54 -0500 Subject: [PATCH 63/83] Move build info out of pipeline conditional --- .../projects/commit/_ci_commit.html.haml | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/app/views/projects/commit/_ci_commit.html.haml b/app/views/projects/commit/_ci_commit.html.haml index 8228c067be..290e19c69e 100644 --- a/app/views/projects/commit/_ci_commit.html.haml +++ b/app/views/projects/commit/_ci_commit.html.haml @@ -12,16 +12,16 @@ Pipeline = link_to "##{ci_commit.id}", namespace_project_pipeline_path(@project.namespace, @project, ci_commit.id), class: "monospace" with - = pluralize ci_commit.statuses.count(:id), "build" - - if ci_commit.ref - for - = link_to ci_commit.ref, namespace_project_commits_path(@project.namespace, @project, ci_commit.ref), class: "monospace" - - if defined?(link_to_commit) && link_to_commit - for commit - = link_to ci_commit.short_sha, namespace_project_commit_path(@project.namespace, @project, ci_commit.sha), class: "monospace" - - if ci_commit.duration - in - = time_interval_in_words ci_commit.duration + = pluralize ci_commit.statuses.count(:id), "build" + - if ci_commit.ref + for + = link_to ci_commit.ref, namespace_project_commits_path(@project.namespace, @project, ci_commit.ref), class: "monospace label label-info" + - if defined?(link_to_commit) && link_to_commit + for commit + = link_to ci_commit.short_sha, namespace_project_commit_path(@project.namespace, @project, ci_commit.sha), class: "monospace" + - if ci_commit.duration + in + = time_interval_in_words ci_commit.duration - if ci_commit.yaml_errors.present? .bs-callout.bs-callout-danger From 3fa32fa2d5c2674bea0768fd4e70132c71e19051 Mon Sep 17 00:00:00 2001 From: Jacob Vosmaer Date: Mon, 23 May 2016 16:36:00 +0200 Subject: [PATCH 64/83] Use gitlab-workhorse 0.7.3 --- GITLAB_WORKHORSE_VERSION | 2 +- doc/install/installation.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/GITLAB_WORKHORSE_VERSION b/GITLAB_WORKHORSE_VERSION index 39e898a4f9..f38fc5393f 100644 --- a/GITLAB_WORKHORSE_VERSION +++ b/GITLAB_WORKHORSE_VERSION @@ -1 +1 @@ -0.7.1 +0.7.3 diff --git a/doc/install/installation.md b/doc/install/installation.md index fa11eb9ba6..526f127178 100644 --- a/doc/install/installation.md +++ b/doc/install/installation.md @@ -394,7 +394,7 @@ GitLab Shell is an SSH access and repository management software developed speci cd /home/git sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-workhorse.git cd gitlab-workhorse - sudo -u git -H git checkout v0.7.1 + sudo -u git -H git checkout v0.7.3 sudo -u git -H make ### Initialize Database and Activate Advanced Features From 27a5a4e4306be921a2b6e09f2c306408b828c0cd Mon Sep 17 00:00:00 2001 From: Annabel Dunstone Date: Mon, 23 May 2016 09:46:06 -0500 Subject: [PATCH 65/83] Put column headers back --- app/views/projects/commit/_ci_commit.html.haml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/views/projects/commit/_ci_commit.html.haml b/app/views/projects/commit/_ci_commit.html.haml index 290e19c69e..1abd4e6f3d 100644 --- a/app/views/projects/commit/_ci_commit.html.haml +++ b/app/views/projects/commit/_ci_commit.html.haml @@ -37,5 +37,16 @@ .table-holder %table.table.builds + %thead + %tr + %th Status + %th Build ID + %th Name + %th Tags + %th Duration + %th Finished at + - if @project.build_coverage_enabled? + %th Coverage + %th - ci_commit.statuses.stages.each do |stage| = render 'projects/commit/ci_stage', stage: stage, statuses: ci_commit.statuses.where(stage: stage) From 526da93052dd794c82f49c1b908d9a4c33d91dcf Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Mon, 23 May 2016 11:47:19 -0500 Subject: [PATCH 66/83] Fix link to container Registry user docs --- doc/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/README.md b/doc/README.md index 8a6adee2fb..d1345ab249 100644 --- a/doc/README.md +++ b/doc/README.md @@ -13,7 +13,7 @@ - [Profile Settings](profile/README.md) - [Project Services](project_services/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. -- [Container Registry](container-registry/README.md) Learn how to use GitLab Container Registry. +- [Container Registry](container_registry/README.md) Learn how to use GitLab Container Registry. - [SSH](ssh/README.md) Setup your ssh keys and deploy keys for secure access to your projects. - [Webhooks](web_hooks/web_hooks.md) Let GitLab notify you when new code has been pushed to your project. - [Workflow](workflow/README.md) Using GitLab functionality and importing projects from GitHub and SVN. From e8f869f96b81d2621b5914c9b7ac95073fcfde05 Mon Sep 17 00:00:00 2001 From: Annabel Dunstone Date: Mon, 23 May 2016 12:04:55 -0500 Subject: [PATCH 67/83] Revert commit info change --- .../projects/commit/_ci_commit.html.haml | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/app/views/projects/commit/_ci_commit.html.haml b/app/views/projects/commit/_ci_commit.html.haml index 1abd4e6f3d..ce5c550b44 100644 --- a/app/views/projects/commit/_ci_commit.html.haml +++ b/app/views/projects/commit/_ci_commit.html.haml @@ -12,16 +12,16 @@ Pipeline = link_to "##{ci_commit.id}", namespace_project_pipeline_path(@project.namespace, @project, ci_commit.id), class: "monospace" with - = pluralize ci_commit.statuses.count(:id), "build" - - if ci_commit.ref - for - = link_to ci_commit.ref, namespace_project_commits_path(@project.namespace, @project, ci_commit.ref), class: "monospace label label-info" - - if defined?(link_to_commit) && link_to_commit - for commit - = link_to ci_commit.short_sha, namespace_project_commit_path(@project.namespace, @project, ci_commit.sha), class: "monospace" - - if ci_commit.duration - in - = time_interval_in_words ci_commit.duration + = pluralize ci_commit.statuses.count(:id), "build" + - if ci_commit.ref + for + = link_to ci_commit.ref, namespace_project_commits_path(@project.namespace, @project, ci_commit.ref), class: "monospace" + - if defined?(link_to_commit) && link_to_commit + for commit + = link_to ci_commit.short_sha, namespace_project_commit_path(@project.namespace, @project, ci_commit.sha), class: "monospace" + - if ci_commit.duration + in + = time_interval_in_words ci_commit.duration - if ci_commit.yaml_errors.present? .bs-callout.bs-callout-danger From 013bccbd93c4d44994126a52bf997ea59ffe594e Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Mon, 23 May 2016 13:06:36 -0400 Subject: [PATCH 68/83] Enable Style/DefWithParentheses cop and fix single offense --- .rubocop.yml | 2 +- lib/api/helpers.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 0946ef5d84..d09e493ef3 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -152,7 +152,7 @@ Style/ConstantName: # Use def with parentheses when there are arguments. Style/DefWithParentheses: - Enabled: false + Enabled: true # Checks for use of deprecated Hash methods. Style/DeprecatedHashMethods: diff --git a/lib/api/helpers.rb b/lib/api/helpers.rb index cadf9f98fe..2aaa0557ea 100644 --- a/lib/api/helpers.rb +++ b/lib/api/helpers.rb @@ -29,7 +29,7 @@ module API @current_user end - def sudo_identifier() + def sudo_identifier identifier ||= params[SUDO_PARAM] || env[SUDO_HEADER] # Regex for integers From 51c167eeb75f429098b7128f9d9f33a6eec4145f Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Mon, 23 May 2016 13:10:42 -0400 Subject: [PATCH 69/83] Enable Performance/RangeInclude cop and fix single offense --- .rubocop.yml | 3 +-- lib/gitlab/bitbucket_import/client.rb | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 0946ef5d84..26929e0345 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -957,10 +957,9 @@ Performance/EndWith: Performance/LstripRstrip: Enabled: true -# TODO: Enable RangeInclude Cop. # Use `Range#cover?` instead of `Range#include?`. Performance/RangeInclude: - Enabled: false + Enabled: true # TODO: Enable RedundantBlockCall Cop. # Use `yield` instead of `block.call`. diff --git a/lib/gitlab/bitbucket_import/client.rb b/lib/gitlab/bitbucket_import/client.rb index 9b83292ef3..8d1ad62fae 100644 --- a/lib/gitlab/bitbucket_import/client.rb +++ b/lib/gitlab/bitbucket_import/client.rb @@ -121,7 +121,7 @@ module Gitlab def get(url) response = api.get(url) - raise Unauthorized if (400..499).include?(response.code.to_i) + raise Unauthorized if (400..499).cover?(response.code.to_i) response end From 2de1109da39a46200e741b5a6643ce7fb1418041 Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Mon, 23 May 2016 13:21:02 -0400 Subject: [PATCH 70/83] Enable Performance/StartWith cop and fix offenses --- .rubocop.yml | 3 +-- app/helpers/gitlab_markdown_helper.rb | 2 +- app/helpers/tab_helper.rb | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 0946ef5d84..861dde4149 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -985,11 +985,10 @@ Performance/RedundantMerge: Performance/RedundantSortBy: Enabled: false -# TODO: Enable StartWith Cop. # Use `start_with?` instead of a regex match anchored to the beginning of a # string. Performance/StartWith: - Enabled: false + Enabled: true # Use `tr` instead of `gsub` when you are replacing the same number of # characters. Use `delete` instead of `gsub` when you are deleting diff --git a/app/helpers/gitlab_markdown_helper.rb b/app/helpers/gitlab_markdown_helper.rb index 3a45205563..0a1b48af21 100644 --- a/app/helpers/gitlab_markdown_helper.rb +++ b/app/helpers/gitlab_markdown_helper.rb @@ -13,7 +13,7 @@ module GitlabMarkdownHelper def link_to_gfm(body, url, html_options = {}) return "" if body.blank? - escaped_body = if body =~ /\A\ Date: Mon, 23 May 2016 12:31:52 -0500 Subject: [PATCH 71/83] Copyedit Registry user docs --- doc/container_registry/README.md | 83 ++++++++++++------ .../{ => img}/container_registry.png | Bin .../{ => img}/project_feature.png | Bin 3 files changed, 56 insertions(+), 27 deletions(-) rename doc/container_registry/{ => img}/container_registry.png (100%) rename doc/container_registry/{ => img}/project_feature.png (100%) diff --git a/doc/container_registry/README.md b/doc/container_registry/README.md index 5af47f7120..4df24ef13c 100644 --- a/doc/container_registry/README.md +++ b/doc/container_registry/README.md @@ -3,33 +3,48 @@ > **Note:** This feature was [introduced][ce-4040] in GitLab 8.8. +> **Note:** +This document is about the user guide. To learn how to enable GitLab Container +Registry across your GitLab instance, visit the +[administrator documentation](../administration/container_registry.md). + With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images. You can read more about Docker Registry at https://docs.docker.com/registry/introduction/. -You can read more about administering GitLab Container Registry on [GitLab Container Registry Administration](../administration/container_registry.md) - --- -## Start using Container Registry +## Enable the Container Registry for your project -1. First ask your system administrator to enable GitLab Container Registry following the [administration documentation](../administration/container_registry.md). +1. First, ask your system administrator to enable GitLab Container Registry + following the [administration documentation](../administration/container_registry.md). + If you are using GitLab.com, this is enabled by default so you can start using + the Registry immediately. -2. Go to project settings and enable `Container Registry` feature on your project: +1. Go to your project's settings and enable the **Container Registry** feature + on your project. For new projects this might be enabled by default. For + existing projects you will have to explicitly enable it. -![](project_feature.png) + ![Enable Container Registry](img/project_feature.png) -3. Login to Container Registry with your credentials: +## Build and push images + +After you save your project's settings, you should see a new link in the +sidebar called **Container Registry**. Following this link will get you to +your project's Registry panel where you can see how to login to the Container +Registry using your GitLab credentials. + +For example if the Registry's URL is `registry.example.com`, the you should be +able to login with: ``` docker login registry.example.com ``` -## Build and push images - -Your registry is accessible under address configured via `registry_external_url`. -To start using it you need to first build and publish images: +Building and publishing images should be a straightforward process. Just make +sure that you are using the Registry URL with the namespace and project name +that is hosted on GitLab: ``` docker build -t registry.example.com/group/project . @@ -38,18 +53,25 @@ docker push registry.example.com/group/project ## Use images from GitLab Container Registry -To download and run container from images hosted in GitLab Container Registry use `docker run`: +To download and run a container from images hosted in GitLab Container Registry, +use `docker run`: ``` docker run [options] registry.example.com/group/project [arguments] ``` -## Control Container Registry from GitLab +For more information on running Docker containers, visit the +[Docker documentation][docker-docs]. -GitLab offers simple Container Registry management. Go to your project and click **Container Registry**. -This view will show you all tags in your repository and will easily allow you to delete them. +## Control Container Registry from within GitLab -![](container_registry.png) +GitLab offers a simple Container Registry management panel. Go to your project +and click **Container Registry** in the left sidebar. + +This view will show you all tags in your project and will easily allow you to +delete them. + +![Container Registry panel](img/container_registry.png) ## Build and push images using GitLab CI @@ -57,10 +79,10 @@ This view will show you all tags in your repository and will easily allow you to This feature requires GitLab 8.8 and GitLab Runner 1.2. Make sure that your GitLab Runner is configured to allow building docker images. -You have to check the [Using Docker Build](../../ci/docker/using_docker_build.md). +You have to check the [Using Docker Build documentation](../../ci/docker/using_docker_build.md). -You can use [docker:dind](https://hub.docker.com/_/docker/) to build your images. -This is how the `.gitlab-ci.yml` looks like: +You can use [docker:dind](https://hub.docker.com/_/docker/) to build your images, +and this is how `.gitlab-ci.yml` should look like: ``` build_image: @@ -69,16 +91,23 @@ This is how the `.gitlab-ci.yml` looks like: - docker:dind stage: build script: - - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com - - docker build -t registry.gitlab.com/group/project:latest . - - docker push registry.gitlab.com/group/project:latest + - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.example.com + - docker build -t registry.example.com/group/project:latest . + - docker push registry.example.com/group/project:latest ``` -You have to use special credentials `gitlab-ci-token` with password stored in `$CI_BUILD_TOKEN` in order to push to registry connected to your project. -This allows you to automated building and deployment of your images. +You have to use the credentials of the special `gitlab-ci-token` user with its +password stored in `$CI_BUILD_TOKEN` in order to push to the Registry connected +to your project. This allows you to automated building and deployment of your +Docker images. ## Limitations -In order to use container image from private project as an `image:` in your `.gitlab-ci.yml` you have to follow -[Using a private Docker Registry](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/configuration/advanced-configuration.md#using-a-private-docker-registry). -This workflow will be simplified in the future. +In order to use a container image from your private project as an `image:` in +your `.gitlab-ci.yml`, you have to follow the +[Using a private Docker Registry][private-docker] +documentation. This workflow will be simplified in the future. + +[ce-4040]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4040 +[docker-docs]: https://docs.docker.com/engine/userguide/intro/ +[private-docker]: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/configuration/advanced-configuration.md#using-a-private-docker-registry diff --git a/doc/container_registry/container_registry.png b/doc/container_registry/img/container_registry.png similarity index 100% rename from doc/container_registry/container_registry.png rename to doc/container_registry/img/container_registry.png diff --git a/doc/container_registry/project_feature.png b/doc/container_registry/img/project_feature.png similarity index 100% rename from doc/container_registry/project_feature.png rename to doc/container_registry/img/project_feature.png From 17eaecd6c7cb33d0f171ae10da190fa120a817f3 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Mon, 23 May 2016 19:43:58 +0200 Subject: [PATCH 72/83] Enable Style/InfiniteLoop Rubocop cop --- .rubocop.yml | 2 +- app/models/network/graph.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 0946ef5d84..3f5a705269 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -299,7 +299,7 @@ Style/IndentHash: # Use Kernel#loop for infinite loops. Style/InfiniteLoop: - Enabled: false + Enabled: true # Use the new lambda literal syntax for single-line blocks. Style/Lambda: diff --git a/app/models/network/graph.rb b/app/models/network/graph.rb index f4e9012537..9259cb1a0f 100644 --- a/app/models/network/graph.rb +++ b/app/models/network/graph.rb @@ -253,7 +253,7 @@ module Network leaves = [] leaves.push(commit) if commit.space.zero? - while true + loop do return leaves if commit.parents(@map).count.zero? commit = commit.parents(@map).first From 75532a65702cafc890ec83126a8ca948a8683015 Mon Sep 17 00:00:00 2001 From: Annabel Dunstone Date: Mon, 23 May 2016 12:54:04 -0500 Subject: [PATCH 73/83] Change rgba to hex; use sass variables to calculate header height --- app/assets/stylesheets/framework/nav.scss | 2 +- app/assets/stylesheets/framework/variables.scss | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/assets/stylesheets/framework/nav.scss b/app/assets/stylesheets/framework/nav.scss index 4e4a1d71a4..c70be58f48 100644 --- a/app/assets/stylesheets/framework/nav.scss +++ b/app/assets/stylesheets/framework/nav.scss @@ -290,6 +290,6 @@ } .right-sidebar { - top: 102px; + top: ($header-height * 2) + 2; } } diff --git a/app/assets/stylesheets/framework/variables.scss b/app/assets/stylesheets/framework/variables.scss index a769077bc8..9ad20ad22a 100644 --- a/app/assets/stylesheets/framework/variables.scss +++ b/app/assets/stylesheets/framework/variables.scss @@ -119,7 +119,7 @@ $border-white-light: #f1f2f4; $border-white-normal: #d6dae2; $border-white-dark: #c6cacf; -$border-gray-light: rgba(209, 209, 209, 0.70); +$border-gray-light: #dcdcdc; $border-gray-normal: rgba(0, 0, 0, 0.10); $border-gray-dark: #c6cacf; From 6898087b97234516b1d31ac731653bebbd9a171e Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Mon, 23 May 2016 14:03:04 -0400 Subject: [PATCH 74/83] Update rubocop to 0.40.0 --- .rubocop.yml | 18 ++++++++++++++++++ Gemfile | 4 ++-- Gemfile.lock | 14 +++++++------- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 0946ef5d84..81ab2e8143 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -333,6 +333,12 @@ Style/MethodName: Style/ModuleFunction: Enabled: false +# Checks that the closing brace in an array literal is either on the same line +# as the last array element, or a new line. +Style/MultilineArrayBraceLayout: + Enabled: false + EnforcedStyle: symmetrical + # Avoid multi-line chains of blocks. Style/MultilineBlockChain: Enabled: false @@ -341,10 +347,22 @@ Style/MultilineBlockChain: Style/MultilineBlockLayout: Enabled: true +# Checks that the closing brace in a hash literal is either on the same line as +# the last hash element, or a new line. +Style/MultilineHashBraceLayout: + Enabled: false + EnforcedStyle: symmetrical + # Do not use then for multi-line if/unless. Style/MultilineIfThen: Enabled: false +# Checks that the closing brace in a method call is either on the same line as +# the last method argument, or a new line. +Style/MultilineMethodCallBraceLayout: + Enabled: false + EnforcedStyle: symmetrical + # Checks indentation of method calls with the dot operator that span more than # one line. Style/MultilineMethodCallIndentation: diff --git a/Gemfile b/Gemfile index 832c5a3ca8..790c457e1d 100644 --- a/Gemfile +++ b/Gemfile @@ -293,9 +293,9 @@ group :development, :test do gem 'spring-commands-spinach', '~> 1.1.0' gem 'spring-commands-teaspoon', '~> 0.0.2' - gem 'rubocop', '~> 0.38.0', require: false + gem 'rubocop', '~> 0.40.0', require: false gem 'scss_lint', '~> 0.47.0', require: false - gem 'coveralls', '~> 0.8.2', require: false + gem 'coveralls', '~> 0.8.2', require: false gem 'simplecov', '~> 0.11.0', require: false gem 'flog', require: false gem 'flay', require: false diff --git a/Gemfile.lock b/Gemfile.lock index e1c5b9630d..52aee37d73 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -551,7 +551,7 @@ GEM orm_adapter (0.5.0) paranoia (2.1.4) activerecord (~> 4.0) - parser (2.3.0.6) + parser (2.3.1.0) ast (~> 2.2) pg (0.18.4) poltergeist (1.9.0) @@ -686,15 +686,15 @@ GEM rspec-retry (0.4.5) rspec-core rspec-support (3.4.1) - rubocop (0.38.0) - parser (>= 2.3.0.6, < 3.0) + rubocop (0.40.0) + parser (>= 2.3.1.0, < 3.0) powerpack (~> 0.1) rainbow (>= 1.99.1, < 3.0) ruby-progressbar (~> 1.7) unicode-display_width (~> 1.0, >= 1.0.1) ruby-fogbugz (0.2.1) crack (~> 0.4) - ruby-progressbar (1.7.5) + ruby-progressbar (1.8.1) ruby-saml (1.1.2) nokogiri (>= 1.5.10) uuid (~> 2.3) @@ -841,7 +841,7 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.7.2) - unicode-display_width (1.0.2) + unicode-display_width (1.0.5) unicorn (4.9.0) kgio (~> 2.6) rack @@ -1015,7 +1015,7 @@ DEPENDENCIES rqrcode-rails3 (~> 0.1.7) rspec-rails (~> 3.4.0) rspec-retry - rubocop (~> 0.38.0) + rubocop (~> 0.40.0) ruby-fogbugz (~> 0.2.1) sanitize (~> 2.0) sass-rails (~> 5.0.0) @@ -1060,4 +1060,4 @@ DEPENDENCIES wikicloth (= 0.8.1) BUNDLED WITH - 1.12.3 + 1.12.4 From 3ba72f69af69d9fb2c46cb6c25d571f92ffd2ee1 Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Mon, 23 May 2016 14:16:35 -0400 Subject: [PATCH 75/83] Enable Style/SpaceAroundKeyword cop and fix offenses --- .rubocop.yml | 3 +-- app/helpers/application_helper.rb | 3 +-- lib/ci/ansi2html.rb | 2 +- spec/controllers/projects/group_links_controller_spec.rb | 2 +- spec/factories_spec.rb | 2 +- spec/models/concerns/token_authenticatable_spec.rb | 2 +- spec/services/issues/create_service_spec.rb | 2 +- 7 files changed, 7 insertions(+), 9 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 0946ef5d84..69a65b7a18 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -525,10 +525,9 @@ Style/SpaceAfterSemicolon: Style/SpaceAroundEqualsInParameterDefault: Enabled: false -# TODO: Enable SpaceAroundKeyword Cop. # Use a space around keywords if appropriate. Style/SpaceAroundKeyword: - Enabled: false + Enabled: true # Use a single space around operators. Style/SpaceAroundOperators: diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 3e0074da39..e6e2546b92 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -110,8 +110,7 @@ module ApplicationHelper ] # If reference is commit id - we should add it to branch/tag selectbox - if(@ref && !options.flatten.include?(@ref) && - @ref =~ /\A[0-9a-zA-Z]{6,52}\z/) + if @ref && !options.flatten.include?(@ref) && @ref =~ /\A[0-9a-zA-Z]{6,52}\z/ options << ['Commit', [@ref]] end diff --git a/lib/ci/ansi2html.rb b/lib/ci/ansi2html.rb index 5fed43aaeb..c628257e3f 100644 --- a/lib/ci/ansi2html.rb +++ b/lib/ci/ansi2html.rb @@ -98,7 +98,7 @@ module Ci open_new_tag s = StringScanner.new(ansi) - while(!s.eos?) + until s.eos? if s.scan(/\e([@-_])(.*?)([@-~])/) handle_sequence(s) elsif s.scan(/\e(([@-_])(.*?)?)?$/) diff --git a/spec/controllers/projects/group_links_controller_spec.rb b/spec/controllers/projects/group_links_controller_spec.rb index 40bd83af86..1bd1fc5189 100644 --- a/spec/controllers/projects/group_links_controller_spec.rb +++ b/spec/controllers/projects/group_links_controller_spec.rb @@ -28,7 +28,7 @@ describe Projects::GroupLinksController do expect(group.shared_projects).to include project end - it 'redirects to project group links page'do + it 'redirects to project group links page' do expect(response).to redirect_to( namespace_project_group_links_path(project.namespace, project) ) diff --git a/spec/factories_spec.rb b/spec/factories_spec.rb index 62de081661..a073a1f9d7 100644 --- a/spec/factories_spec.rb +++ b/spec/factories_spec.rb @@ -5,7 +5,7 @@ describe 'factories' do describe "#{factory.name} factory" do let(:entity) { build(factory.name) } - it 'does not raise error when created 'do + it 'does not raise error when created' do expect { entity }.to_not raise_error end diff --git a/spec/models/concerns/token_authenticatable_spec.rb b/spec/models/concerns/token_authenticatable_spec.rb index 30c0a04b84..b6adc2bf24 100644 --- a/spec/models/concerns/token_authenticatable_spec.rb +++ b/spec/models/concerns/token_authenticatable_spec.rb @@ -49,7 +49,7 @@ describe ApplicationSetting, 'TokenAuthenticatable' do context 'token is generated' do before { subject.send("reset_#{token_field}!") } - it 'persists a new token 'do + it 'persists a new token' do expect(subject.send(:read_attribute, token_field)).to be_a String end end diff --git a/spec/services/issues/create_service_spec.rb b/spec/services/issues/create_service_spec.rb index ac28b6f71f..6aa0a89f89 100644 --- a/spec/services/issues/create_service_spec.rb +++ b/spec/services/issues/create_service_spec.rb @@ -54,7 +54,7 @@ describe Issues::CreateService, services: true do label_ids: [label.id] } end - it 'does not assign label'do + it 'does not assign label' do expect(issue.labels).to_not include label end end From da5943fc9585d9728da1a9c1c43296f838faad37 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Mon, 23 May 2016 20:32:19 +0200 Subject: [PATCH 76/83] Enabled multiple Rubocop cops that can be enabled This enables multiple Rubocop cops that already conform to our codebase and do not require fixes. --- .rubocop.yml | 65 +++++++++++++++++++++++++--------------------------- 1 file changed, 31 insertions(+), 34 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 832c31be16..e7eac17db3 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -755,19 +755,19 @@ Lint/BlockAlignment: # Default values in optional keyword arguments and optional ordinal arguments # should not refer back to the name of the argument. Lint/CircularArgumentReference: - Enabled: false + Enabled: true # Checks for condition placed in a confusing position relative to the keyword. Lint/ConditionPosition: - Enabled: false + Enabled: true # Check for debugger calls. Lint/Debugger: - Enabled: false + Enabled: true # Align ends corresponding to defs correctly. Lint/DefEndAlignment: - Enabled: false + Enabled: true # Check for deprecated class method calls. Lint/DeprecatedClassMethods: @@ -783,15 +783,15 @@ Lint/DuplicatedKey: # Check for immutable argument given to each_with_object. Lint/EachWithObjectArgument: - Enabled: false + Enabled: true # Check for odd code arrangement in an else block. Lint/ElseLayout: - Enabled: false + Enabled: true # Checks for empty ensure block. Lint/EmptyEnsure: - Enabled: false + Enabled: true # Checks for empty string interpolation. Lint/EmptyInterpolation: @@ -799,37 +799,36 @@ Lint/EmptyInterpolation: # Align ends correctly. Lint/EndAlignment: - Enabled: false + Enabled: true # END blocks should not be placed inside method definitions. Lint/EndInMethod: - Enabled: false + Enabled: true # Do not use return in an ensure block. Lint/EnsureReturn: - Enabled: false + Enabled: true # The use of eval represents a serious security risk. Lint/Eval: - Enabled: false + Enabled: true # Catches floating-point literals too large or small for Ruby to represent. Lint/FloatOutOfRange: - Enabled: false + Enabled: true # The number of parameters to format/sprint must match the fields. Lint/FormatParameterMismatch: - Enabled: false + Enabled: true # Don't suppress exception. Lint/HandleExceptions: Enabled: false -# TODO: Enable ImplicitStringConcatenation Cop. # Checks for adjacent string literals on the same line, which could better be # represented as a single string literal. Lint/ImplicitStringConcatenation: - Enabled: false + Enabled: true # TODO: Enable IneffectiveAccessModifier Cop. # Checks for attempts to use `private` or `protected` to set the visibility @@ -840,7 +839,7 @@ Lint/IneffectiveAccessModifier: # Checks for invalid character literals with a non-escaped whitespace # character. Lint/InvalidCharacterLiteral: - Enabled: false + Enabled: true # Checks of literals used in conditions. Lint/LiteralInCondition: @@ -848,7 +847,7 @@ Lint/LiteralInCondition: # Checks for literals used in interpolation. Lint/LiteralInInterpolation: - Enabled: false + Enabled: true # Use Kernel#loop with break rather than begin/end/until or begin/end/while # for post-loop tests. @@ -857,11 +856,11 @@ Lint/Loop: # Do not use nested method definitions. Lint/NestedMethodDefinition: - Enabled: false + Enabled: true # Do not omit the accumulator when calling `next` in a `reduce`/`inject` block. Lint/NextWithoutAccumulator: - Enabled: false + Enabled: true # Checks for method calls with a space before the opening parenthesis. Lint/ParenthesesAsGroupedExpression: @@ -870,11 +869,11 @@ Lint/ParenthesesAsGroupedExpression: # Checks for `rand(1)` calls. Such calls always return `0` and most likely # a mistake. Lint/RandOne: - Enabled: false + Enabled: true # Use parentheses in the method call to avoid confusion about precedence. Lint/RequireParentheses: - Enabled: false + Enabled: true # Avoid rescuing the Exception class. Lint/RescueException: @@ -909,7 +908,7 @@ Lint/UnusedMethodArgument: # Unreachable code. Lint/UnreachableCode: - Enabled: false + Enabled: true # Checks for useless access modifiers. Lint/UselessAccessModifier: @@ -921,19 +920,19 @@ Lint/UselessAssignment: # Checks for comparison of something with itself. Lint/UselessComparison: - Enabled: false + Enabled: true # Checks for useless `else` in `begin..end` without `rescue`. Lint/UselessElseWithoutRescue: - Enabled: false + Enabled: true # Checks for useless setter call to a local variable. Lint/UselessSetterCall: - Enabled: false + Enabled: true # Possible use of operator/literal/variable in void context. Lint/Void: - Enabled: false + Enabled: true ##################### Performance ############################ @@ -942,11 +941,10 @@ Lint/Void: Performance/Casecmp: Enabled: true -# TODO: Enable DoubleStartEndWith Cop. # Use `str.{start,end}_with?(x, ..., y, ...)` instead of # `str.{start,end}_with?(x, ...) || str.{start,end}_with?(y, ...)`. Performance/DoubleStartEndWith: - Enabled: false + Enabled: true # TODO: Enable EndWith Cop. # Use `end_with?` instead of a regex match anchored to the end of a string. @@ -980,10 +978,9 @@ Performance/RedundantMerge: MaxKeyValuePairs: 2 Enabled: false -# TODO: Enable RedundantSortBy Cop. # Use `sort` instead of `sort_by { |x| x }`. Performance/RedundantSortBy: - Enabled: false + Enabled: true # Use `start_with?` instead of a regex match anchored to the beginning of a # string. @@ -1024,11 +1021,11 @@ Rails/Delegate: # Prefer `find_by` over `where.first`. Rails/FindBy: - Enabled: false + Enabled: true # Prefer `all.find_each` over `all.find`. Rails/FindEach: - Enabled: false + Enabled: true # Prefer has_many :through to has_and_belongs_to_many. Rails/HasAndBelongsToMany: @@ -1040,7 +1037,7 @@ Rails/Output: # Checks for incorrect grammar when using methods like `3.day.ago`. Rails/PluralizationGrammar: - Enabled: false + Enabled: true # Checks for `read_attribute(:attr)` and `write_attribute(:attr, val)`. Rails/ReadWriteAttribute: @@ -1048,7 +1045,7 @@ Rails/ReadWriteAttribute: # Checks the arguments of ActiveRecord scopes. Rails/ScopeArgs: - Enabled: false + Enabled: true # Checks the correct usage of time zone aware methods. # http://danilenko.org/2012/7/6/rails_timezones From c6f5af1985e63b90b8984b0eb7a9db6539d08846 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Mon, 23 May 2016 20:51:42 +0200 Subject: [PATCH 77/83] Its time for 8.9 Signed-off-by: Dmitriy Zaporozhets --- CHANGELOG | 2 ++ VERSION | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 9fa1e1cada..b1ce7f22c0 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,7 @@ Please view this file on the master branch, on stable branches it's out of date. +v 8.9.0 (unreleased) + v 8.8.2 (unreleased) - Fix Error 500 when accessing application settings due to nil disabled OAuth sign-in sources - Fix Error 500 in CI charts by gracefully handling commits with no durations diff --git a/VERSION b/VERSION index d5a967c393..6c07f65628 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -8.8.0-pre +8.9.0-pre From 43d9e06b68d82588ca582f43971cae040b04674f Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Sat, 21 May 2016 18:27:15 -0500 Subject: [PATCH 78/83] Add rubocop-rspec Almost all cops are starting as disabled until we can fix their violations. --- .rubocop.yml | 50 ++++++++++++++++++++++++++++++++++++++++++ Gemfile | 1 + Gemfile.lock | 3 +++ lib/tasks/rubocop.rake | 1 + 4 files changed, 55 insertions(+) diff --git a/.rubocop.yml b/.rubocop.yml index 03e026ccee..ca5afde75b 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,3 +1,5 @@ +require: rubocop-rspec + AllCops: TargetRubyVersion: 2.1 # Cop names are not displayed in offense messages by default. Change behavior @@ -1071,3 +1073,51 @@ Rails/TimeZone: # Use validates :attribute, hash of validations. Rails/Validation: Enabled: false + +##################### RSpec ################################## + +RSpec/AnyInstance: + Enabled: false + +RSpec/DescribeClass: + Enabled: false + +RSpec/DescribeMethod: + Enabled: false + +RSpec/DescribedClass: + Enabled: false + +RSpec/ExampleLength: + Enabled: false + Max: 5 + +RSpec/ExampleWording: + Enabled: false + CustomTransform: + be: is + have: has + not: does not + IgnoredWords: [] + +RSpec/FilePath: + Enabled: false + CustomTransform: + RuboCop: rubocop + RSpec: rspec + +RSpec/Focus: + Enabled: true + +RSpec/InstanceVariable: + Enabled: false + +RSpec/MultipleDescribes: + Enabled: false + +RSpec/NotToNot: + EnforcedStyle: not_to + Enabled: false + +RSpec/VerifiedDoubles: + Enabled: false diff --git a/Gemfile b/Gemfile index 790c457e1d..e854a31b42 100644 --- a/Gemfile +++ b/Gemfile @@ -294,6 +294,7 @@ group :development, :test do gem 'spring-commands-teaspoon', '~> 0.0.2' gem 'rubocop', '~> 0.40.0', require: false + gem 'rubocop-rspec', '~> 1.5.0', require: false gem 'scss_lint', '~> 0.47.0', require: false gem 'coveralls', '~> 0.8.2', require: false gem 'simplecov', '~> 0.11.0', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 52aee37d73..4533aa31d5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -692,6 +692,8 @@ GEM rainbow (>= 1.99.1, < 3.0) ruby-progressbar (~> 1.7) unicode-display_width (~> 1.0, >= 1.0.1) + rubocop-rspec (1.5.0) + rubocop (>= 0.40.0) ruby-fogbugz (0.2.1) crack (~> 0.4) ruby-progressbar (1.8.1) @@ -1016,6 +1018,7 @@ DEPENDENCIES rspec-rails (~> 3.4.0) rspec-retry rubocop (~> 0.40.0) + rubocop-rspec (~> 1.5.0) ruby-fogbugz (~> 0.2.1) sanitize (~> 2.0) sass-rails (~> 5.0.0) diff --git a/lib/tasks/rubocop.rake b/lib/tasks/rubocop.rake index ddfaf5d51f..78ffccc9d0 100644 --- a/lib/tasks/rubocop.rake +++ b/lib/tasks/rubocop.rake @@ -1,4 +1,5 @@ unless Rails.env.production? require 'rubocop/rake_task' + RuboCop::RakeTask.new end From 87195b9ae49273dd3eadfb7c772f00f9b66b3358 Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Mon, 23 May 2016 16:20:53 -0400 Subject: [PATCH 79/83] Add descriptive comments for rubocop-rspec cops [ci skip] --- .rubocop.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.rubocop.yml b/.rubocop.yml index ca5afde75b..4e6ced4e1a 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1076,22 +1076,30 @@ Rails/Validation: ##################### RSpec ################################## +# Check that instances are not being stubbed globally. RSpec/AnyInstance: Enabled: false +# Check that the first argument to the top level describe is the tested class or +# module. RSpec/DescribeClass: Enabled: false +# Use `described_class` for tested class / module. RSpec/DescribeMethod: Enabled: false +# Checks that the second argument to top level describe is the tested method +# name. RSpec/DescribedClass: Enabled: false +# Checks for long example. RSpec/ExampleLength: Enabled: false Max: 5 +# Do not use should when describing your tests. RSpec/ExampleWording: Enabled: false CustomTransform: @@ -1100,24 +1108,30 @@ RSpec/ExampleWording: not: does not IgnoredWords: [] +# Checks the file and folder naming of the spec file. RSpec/FilePath: Enabled: false CustomTransform: RuboCop: rubocop RSpec: rspec +# Checks if there are focused specs. RSpec/Focus: Enabled: true +# Checks for the usage of instance variables. RSpec/InstanceVariable: Enabled: false +# Checks for multiple top-level describes. RSpec/MultipleDescribes: Enabled: false +# Enforces the usage of the same method on all negative message expectations. RSpec/NotToNot: EnforcedStyle: not_to Enabled: false +# Prefer using verifying doubles over normal doubles. RSpec/VerifiedDoubles: Enabled: false From 2f1828a981e5cf193f95cfacbfd5d50fd255e589 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Mon, 23 May 2016 22:42:05 +0200 Subject: [PATCH 80/83] Add changelog item for project navigation UI Signed-off-by: Dmitriy Zaporozhets --- CHANGELOG | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG b/CHANGELOG index b1ce7f22c0..d26a0bff2e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ Please view this file on the master branch, on stable branches it's out of date. v 8.9.0 (unreleased) + - Redesign navigation for project pages v 8.8.2 (unreleased) - Fix Error 500 when accessing application settings due to nil disabled OAuth sign-in sources From 3d4ef74d360cf977ff514c937b0e6f6498caa3f6 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Tue, 24 May 2016 00:23:23 +0200 Subject: [PATCH 81/83] Use start_with? instead of regex Signed-off-by: Dmitriy Zaporozhets --- app/helpers/tab_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/tab_helper.rb b/app/helpers/tab_helper.rb index 0fe94c395e..563ddd2a51 100644 --- a/app/helpers/tab_helper.rb +++ b/app/helpers/tab_helper.rb @@ -95,7 +95,7 @@ module TabHelper end def project_tab_class - if controller.controller_path =~ /\Aprojects/ + if controller.controller_path.start_with?('projects') return 'active' end From f34a9f17babdeb4aaff81dc75035d56389e67baf Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Tue, 24 May 2016 00:41:07 +0200 Subject: [PATCH 82/83] Fix badge count UI for pipelines menu item Signed-off-by: Dmitriy Zaporozhets --- app/views/layouts/nav/_project.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/layouts/nav/_project.html.haml b/app/views/layouts/nav/_project.html.haml index 1db95c9089..33ba654bbe 100644 --- a/app/views/layouts/nav/_project.html.haml +++ b/app/views/layouts/nav/_project.html.haml @@ -50,7 +50,7 @@ = icon('ship fw') %span Pipelines - %span.count.ci_counter= number_with_delimiter(@project.ci_commits.running_or_pending.count) + %span.badge.count.ci_counter= number_with_delimiter(@project.ci_commits.running_or_pending.count) - if project_nav_tab? :builds = nav_link(controller: %w(builds)) do From 510b5c5f396711b0bb45bad0a25da3a891583ebc Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Tue, 24 May 2016 00:41:31 +0200 Subject: [PATCH 83/83] Move files tab before commits tab to follow same order as top navigation Signed-off-by: Dmitriy Zaporozhets --- app/views/projects/show.html.haml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/projects/show.html.haml b/app/views/projects/show.html.haml index 59a9519ca1..a19c7c406a 100644 --- a/app/views/projects/show.html.haml +++ b/app/views/projects/show.html.haml @@ -15,6 +15,9 @@ .project-stats.row-content-block.second-block .container-fluid.container-limited %ul.nav + %li + = link_to project_files_path(@project) do + Files (#{repository_size}) %li = link_to namespace_project_commits_path(@project.namespace, @project, current_ref) do #{'Commit'.pluralize(@project.commit_count)} (#{number_with_delimiter(@project.commit_count)}) @@ -24,9 +27,6 @@ %li = link_to namespace_project_tags_path(@project.namespace, @project) do #{'Tag'.pluralize(@repository.tag_names.count)} (#{number_with_delimiter(@repository.tag_names.count)}) - %li - = link_to project_files_path(@project) do - Files (#{repository_size}) - if default_project_view != 'readme' && @repository.readme %li