From 634f8e96c3fce1dc777d24be50e5a8a2b71b2c19 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Sun, 28 Apr 2019 07:48:56 -0700 Subject: [PATCH 01/13] Gracefully handle undefined data in getTreeEntries() --- app/assets/javascripts/diffs/workers/tree_worker.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/assets/javascripts/diffs/workers/tree_worker.js b/app/assets/javascripts/diffs/workers/tree_worker.js index 534d737c77e..415c463fd19 100644 --- a/app/assets/javascripts/diffs/workers/tree_worker.js +++ b/app/assets/javascripts/diffs/workers/tree_worker.js @@ -4,6 +4,11 @@ import { generateTreeList } from '../store/utils'; // eslint-disable-next-line no-restricted-globals self.addEventListener('message', e => { const { data } = e; + + if (data === undefined) { + return; + } + const { treeEntries, tree } = generateTreeList(data); // eslint-disable-next-line no-restricted-globals -- GitLab From 010f0d64b767fa599edfc6f3010dd2bdf500c746 Mon Sep 17 00:00:00 2001 From: Heinrich Lee Yu Date: Mon, 29 Apr 2019 11:04:54 +0800 Subject: [PATCH 02/13] Fix search dropdown being hidden immediately --- app/assets/stylesheets/pages/search.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/assets/stylesheets/pages/search.scss b/app/assets/stylesheets/pages/search.scss index 0c99ff5341c..37071a57bb3 100644 --- a/app/assets/stylesheets/pages/search.scss +++ b/app/assets/stylesheets/pages/search.scss @@ -75,6 +75,8 @@ input[type='checkbox']:hover { } .search-input-wrap { + width: 100%; + .search-icon, .clear-icon { position: absolute; -- GitLab From a7fa7b079ce5880ba6e4487d8ed3c61a856ae429 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Mon, 29 Apr 2019 15:44:58 -0700 Subject: [PATCH 03/13] Upgrade CI to use Chrome V73 This backports https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/27762 into the 11-10-stable branch in the hopes it resolves a number of flaky tests. --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 98fdda3593e..4eb17656edc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.5.3-golang-1.11-git-2.18-chrome-71.0-node-10.x-yarn-1.12-postgresql-9.6-graphicsmagick-1.3.29" +image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.5.3-golang-1.11-git-2.18-chrome-73.0-node-10.x-yarn-1.12-postgresql-9.6-graphicsmagick-1.3.29" include: - local: /lib/gitlab/ci/templates/Code-Quality.gitlab-ci.yml @@ -655,7 +655,7 @@ gitlab:setup-mysql: # Frontend-related jobs gitlab:assets:compile: <<: *dedicated-no-docs-pull-cache-job - image: dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.5.3-git-2.18-chrome-71.0-node-8.x-yarn-1.12-graphicsmagick-1.3.29-docker-18.06.1 + image: dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.5.3-git-2.18-chrome-73.0-node-8.x-yarn-1.12-graphicsmagick-1.3.29-docker-18.06.1 dependencies: - setup-test-env services: -- GitLab From 3fdcb7d8a13551d73dcd808c9e83bd524a593bc3 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Fri, 3 May 2019 09:30:20 -0700 Subject: [PATCH 04/13] Use 3-way merge for squashing commits This upgrades Gitaly to 1.34.2 for 11-10-stable. --- GITALY_SERVER_VERSION | 2 +- changelogs/unreleased/sh-gitaly-update-for-11-10.yml | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/sh-gitaly-update-for-11-10.yml diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index a95a46d9fa9..00e952d041c 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -1.34.1 +1.34.2 diff --git a/changelogs/unreleased/sh-gitaly-update-for-11-10.yml b/changelogs/unreleased/sh-gitaly-update-for-11-10.yml new file mode 100644 index 00000000000..5a61d5db43e --- /dev/null +++ b/changelogs/unreleased/sh-gitaly-update-for-11-10.yml @@ -0,0 +1,5 @@ +--- +title: Use 3-way merge for squashing commits +merge_request: 28078 +author: +type: fixed -- GitLab From 2718721b5c3243e2d6efbbe43159340169625c2a Mon Sep 17 00:00:00 2001 From: James Lopez Date: Thu, 2 May 2019 06:35:06 +0000 Subject: [PATCH 05/13] Merge branch 'sh-allow-equal-level-in-subgroup-membership' into 'master' Allow a member to have an access level equal to parent group Closes gitlab-ee#11323 See merge request gitlab-org/gitlab-ce!27913 (cherry picked from commit 2b3b0bb1847e5d910b3e5dc5e151f194c12d3907) 32ddc3fe Allow a member to have an access level equal to parent group --- app/models/member.rb | 4 ++-- .../sh-allow-equal-level-in-subgroup-membership.yml | 5 +++++ locale/gitlab.pot | 2 +- spec/models/member_spec.rb | 10 ++++++++++ spec/requests/api/members_spec.rb | 2 +- .../shared_examples/models/member_shared_examples.rb | 2 +- 6 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 changelogs/unreleased/sh-allow-equal-level-in-subgroup-membership.yml diff --git a/app/models/member.rb b/app/models/member.rb index 8a06bff51b5..83b4f5b29c4 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -446,10 +446,10 @@ class Member < ApplicationRecord end def higher_access_level_than_group - if highest_group_member && highest_group_member.access_level >= access_level + if highest_group_member && highest_group_member.access_level > access_level error_parameters = { access: highest_group_member.human_access, group_name: highest_group_member.group.name } - errors.add(:access_level, s_("should be higher than %{access} inherited membership from group %{group_name}") % error_parameters) + errors.add(:access_level, s_("should be greater than or equal to %{access} inherited membership from group %{group_name}") % error_parameters) end end end diff --git a/changelogs/unreleased/sh-allow-equal-level-in-subgroup-membership.yml b/changelogs/unreleased/sh-allow-equal-level-in-subgroup-membership.yml new file mode 100644 index 00000000000..adbed52db81 --- /dev/null +++ b/changelogs/unreleased/sh-allow-equal-level-in-subgroup-membership.yml @@ -0,0 +1,5 @@ +--- +title: Allow a member to have an access level equal to parent group +merge_request: 27913 +author: +type: fixed diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 3b1b231bb8c..44ebc98ae9c 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -10275,7 +10275,7 @@ msgstr[1] "" msgid "score" msgstr "" -msgid "should be higher than %{access} inherited membership from group %{group_name}" +msgid "should be greater than or equal to %{access} inherited membership from group %{group_name}" msgstr "" msgid "show less" diff --git a/spec/models/member_spec.rb b/spec/models/member_spec.rb index c68c3ce2abe..782a84f922b 100644 --- a/spec/models/member_spec.rb +++ b/spec/models/member_spec.rb @@ -70,6 +70,16 @@ describe Member do expect(child_member).not_to be_valid end + # Membership in a subgroup confers certain access rights, such as being + # able to merge or push code to protected branches. + it "is valid with an equal level" do + child_member.access_level = GroupMember::DEVELOPER + + child_member.validate + + expect(child_member).to be_valid + end + it "is valid with a higher level" do child_member.access_level = GroupMember::MAINTAINER diff --git a/spec/requests/api/members_spec.rb b/spec/requests/api/members_spec.rb index 79edbb301f2..48869cab4da 100644 --- a/spec/requests/api/members_spec.rb +++ b/spec/requests/api/members_spec.rb @@ -236,7 +236,7 @@ describe API::Members do params: { user_id: stranger.id, access_level: Member::REPORTER } expect(response).to have_gitlab_http_status(400) - expect(json_response['message']['access_level']).to eq(["should be higher than Developer inherited membership from group #{parent.name}"]) + expect(json_response['message']['access_level']).to eq(["should be greater than or equal to Developer inherited membership from group #{parent.name}"]) end it 'creates the member if group level is lower', :nested_groups do diff --git a/spec/support/shared_examples/models/member_shared_examples.rb b/spec/support/shared_examples/models/member_shared_examples.rb index 77376496854..e5375bc8280 100644 --- a/spec/support/shared_examples/models/member_shared_examples.rb +++ b/spec/support/shared_examples/models/member_shared_examples.rb @@ -41,7 +41,7 @@ shared_examples_for 'inherited access level as a member of entity' do member.update(access_level: Gitlab::Access::REPORTER) - expect(member.errors.full_messages).to eq(["Access level should be higher than Developer inherited membership from group #{parent_entity.name}"]) + expect(member.errors.full_messages).to eq(["Access level should be greater than or equal to Developer inherited membership from group #{parent_entity.name}"]) end it 'allows changing the level from a non existing member' do -- GitLab From 77cec14e7eb30686812a36d8109ef7a64380fdad Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Mon, 6 May 2019 12:51:50 +0000 Subject: [PATCH 06/13] Merge branch '61203-fix-lfs-ui-upload' into 'master' Fix uploading of LFS tracked file through UI Closes #61203 See merge request gitlab-org/gitlab-ce!28052 (cherry picked from commit 4d2d812463256003ab943df90a9c603821078a69) 3f192e8a Fix Lfs::FileTransformer to work with file objects 48fcdf1f Add changelog entry --- app/services/lfs/file_transformer.rb | 9 ++++++++- .../unreleased/61203-fix-lfs-ui-upload.yml | 5 +++++ spec/services/lfs/file_transformer_spec.rb | 19 +++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/61203-fix-lfs-ui-upload.yml diff --git a/app/services/lfs/file_transformer.rb b/app/services/lfs/file_transformer.rb index 6ecf583cb6a..5239fe1b6e3 100644 --- a/app/services/lfs/file_transformer.rb +++ b/app/services/lfs/file_transformer.rb @@ -24,7 +24,7 @@ module Lfs def new_file(file_path, file_content, encoding: nil) if project.lfs_enabled? && lfs_file?(file_path) - file_content = Base64.decode64(file_content) if encoding == 'base64' + file_content = parse_file_content(file_content, encoding: encoding) lfs_pointer_file = Gitlab::Git::LfsPointerFile.new(file_content) lfs_object = create_lfs_object!(lfs_pointer_file, file_content) @@ -66,5 +66,12 @@ module Lfs def link_lfs_object!(lfs_object) project.lfs_objects << lfs_object end + + def parse_file_content(file_content, encoding: nil) + return file_content.read if file_content.respond_to?(:read) + return Base64.decode64(file_content) if encoding == 'base64' + + file_content + end end end diff --git a/changelogs/unreleased/61203-fix-lfs-ui-upload.yml b/changelogs/unreleased/61203-fix-lfs-ui-upload.yml new file mode 100644 index 00000000000..66afe9f0597 --- /dev/null +++ b/changelogs/unreleased/61203-fix-lfs-ui-upload.yml @@ -0,0 +1,5 @@ +--- +title: Fix uploading of LFS tracked file through UI +merge_request: 28052 +author: +type: fixed diff --git a/spec/services/lfs/file_transformer_spec.rb b/spec/services/lfs/file_transformer_spec.rb index e8938338cb7..9b1a64ee050 100644 --- a/spec/services/lfs/file_transformer_spec.rb +++ b/spec/services/lfs/file_transformer_spec.rb @@ -62,6 +62,25 @@ describe Lfs::FileTransformer do expect(result.encoding).to eq('text') end + context 'when an actual file is passed' do + let(:file) { Tempfile.new(file_path) } + + before do + file.write(file_content) + file.rewind + end + + after do + file.unlink + end + + it "creates an LfsObject with the file's content" do + subject.new_file(file_path, file) + + expect(LfsObject.last.file.read).to eq file_content + end + end + context "when doesn't use LFS" do let(:file_path) { 'other.filetype' } -- GitLab From 5040b7259b3f422b596fe2f7b040c9bb3506a19a Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Tue, 7 May 2019 20:24:22 +0000 Subject: [PATCH 07/13] Merge branch 'ce-11099-removing-the-project-that-holds-the-insights-configuration-raises-an-error' into 'master' Add remove_foreign_key_if_exists See merge request gitlab-org/gitlab-ce!28172 (cherry picked from commit 7b7416d9862f52fe0f0a304eeeaaa4b8d65bc8eb) 24eff5e0 Add remove_foreign_key_if_exists --- lib/gitlab/database/migration_helpers.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/gitlab/database/migration_helpers.rb b/lib/gitlab/database/migration_helpers.rb index 7f5eb1188fc..cc61bb7fa02 100644 --- a/lib/gitlab/database/migration_helpers.rb +++ b/lib/gitlab/database/migration_helpers.rb @@ -905,6 +905,12 @@ module Gitlab end end + def remove_foreign_key_if_exists(*args) + if foreign_key_exists?(*args) + remove_foreign_key(*args) + end + end + def remove_foreign_key_without_error(*args) remove_foreign_key(*args) rescue ArgumentError -- GitLab From 85a624fbee9642dc06b73c46cf8c177332fd7c69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Coutable?= Date: Fri, 10 May 2019 13:33:04 +0000 Subject: [PATCH 08/13] Merge branch 'sh-revert-full-gc-after-import' into 'master' Don't run full gc in AfterImportService Closes gitlab-ee#11556 See merge request gitlab-org/gitlab-ce!28239 (cherry picked from commit 4c16ce118498a2e3b98ad069000031fa9c55fcd3) 36b1a2d7 Don't run full gc in AfterImportService --- app/services/projects/after_import_service.rb | 2 +- spec/services/projects/after_import_service_spec.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/services/projects/after_import_service.rb b/app/services/projects/after_import_service.rb index afb9048e87b..bbdde4408d2 100644 --- a/app/services/projects/after_import_service.rb +++ b/app/services/projects/after_import_service.rb @@ -9,7 +9,7 @@ module Projects end def execute - Projects::HousekeepingService.new(@project, :gc).execute do + Projects::HousekeepingService.new(@project).execute do repository.delete_all_refs_except(RESERVED_REF_PREFIXES) end rescue Projects::HousekeepingService::LeaseTaken => e diff --git a/spec/services/projects/after_import_service_spec.rb b/spec/services/projects/after_import_service_spec.rb index 765b4ffae8f..4dd6c6dab86 100644 --- a/spec/services/projects/after_import_service_spec.rb +++ b/spec/services/projects/after_import_service_spec.rb @@ -13,7 +13,7 @@ describe Projects::AfterImportService do describe '#execute' do before do allow(Projects::HousekeepingService) - .to receive(:new).with(project, :gc).and_return(housekeeping_service) + .to receive(:new).with(project).and_return(housekeeping_service) allow(housekeeping_service) .to receive(:execute).and_yield -- GitLab From 21baa5678bd2650a554e57cc9ef9f81c18a8830f Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Tue, 14 May 2019 08:43:08 +0000 Subject: [PATCH 09/13] Merge branch 'fix-project-visibility-level-validation' into 'master' Fix project visibility level validation Closes #59379 See merge request gitlab-org/gitlab-ce!28305 (cherry picked from commit 99637084b22abdf7b1f6d46daad80faf8181f3cd) b5540112 Fix project visibility level validation --- app/models/project.rb | 8 ++++++-- .../fix-project-visibility-level-validation.yml | 5 +++++ spec/models/project_spec.rb | 7 +++++++ 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 changelogs/unreleased/fix-project-visibility-level-validation.yml diff --git a/app/models/project.rb b/app/models/project.rb index c9f3cb7062f..bd5ec87bc19 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -334,8 +334,8 @@ class Project < ApplicationRecord validates :star_count, numericality: { greater_than_or_equal_to: 0 } validate :check_personal_projects_limit, on: :create validate :check_repository_path_availability, on: :update, if: ->(project) { project.renamed? } - validate :visibility_level_allowed_by_group, if: -> { changes.has_key?(:visibility_level) } - validate :visibility_level_allowed_as_fork, if: -> { changes.has_key?(:visibility_level) } + validate :visibility_level_allowed_by_group, if: :should_validate_visibility_level? + validate :visibility_level_allowed_as_fork, if: :should_validate_visibility_level? validate :check_wiki_path_conflict validate :validate_pages_https_only, if: -> { changes.has_key?(:pages_https_only) } validates :repository_storage, @@ -878,6 +878,10 @@ class Project < ApplicationRecord self.errors.add(:limit_reached, error % { limit: limit }) end + def should_validate_visibility_level? + new_record? || changes.has_key?(:visibility_level) + end + def visibility_level_allowed_by_group return if visibility_level_allowed_by_group? diff --git a/changelogs/unreleased/fix-project-visibility-level-validation.yml b/changelogs/unreleased/fix-project-visibility-level-validation.yml new file mode 100644 index 00000000000..9581a475842 --- /dev/null +++ b/changelogs/unreleased/fix-project-visibility-level-validation.yml @@ -0,0 +1,5 @@ +--- +title: Fix project visibility level validation +merge_request: 28305 +author: Peter Marko +type: fixed diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 9f6a0b53281..69032f51ac7 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -214,6 +214,13 @@ describe Project do expect(project2).not_to be_valid end + it 'validates the visibility' do + expect_any_instance_of(described_class).to receive(:visibility_level_allowed_as_fork).and_call_original + expect_any_instance_of(described_class).to receive(:visibility_level_allowed_by_group).and_call_original + + create(:project) + end + describe 'wiki path conflict' do context "when the new path has been used by the wiki of other Project" do it 'has an error on the name attribute' do -- GitLab From 87edc80589b15ef7c41098d69c9c4daa9c8d89e1 Mon Sep 17 00:00:00 2001 From: Douglas Barbosa Alexandre Date: Mon, 20 May 2019 20:19:29 +0000 Subject: [PATCH 10/13] Merge branch 'sh-fix-rugged-get-tree-entries-recursive' into 'master' API: Fix recursive flag not working with Rugged get_tree_entries flag Closes #61979 See merge request gitlab-org/gitlab-ce!28494 (cherry picked from commit d951f047198d3ee03604fb64f6ad96efae6cba54) c1827f1c API: Fix recursive flag not working with Rugged get_tree_entries flag --- .../unreleased/sh-fix-rugged-get-tree-entries-recursive.yml | 5 +++++ lib/gitlab/git/rugged_impl/tree.rb | 2 ++ spec/lib/gitlab/git/tree_spec.rb | 4 +++- 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/sh-fix-rugged-get-tree-entries-recursive.yml diff --git a/changelogs/unreleased/sh-fix-rugged-get-tree-entries-recursive.yml b/changelogs/unreleased/sh-fix-rugged-get-tree-entries-recursive.yml new file mode 100644 index 00000000000..a9d46c6f460 --- /dev/null +++ b/changelogs/unreleased/sh-fix-rugged-get-tree-entries-recursive.yml @@ -0,0 +1,5 @@ +--- +title: Fix Rugged get_tree_entries recursive flag not working +merge_request: 28494 +author: +type: fixed diff --git a/lib/gitlab/git/rugged_impl/tree.rb b/lib/gitlab/git/rugged_impl/tree.rb index bb13d114d46..9c37bb01961 100644 --- a/lib/gitlab/git/rugged_impl/tree.rb +++ b/lib/gitlab/git/rugged_impl/tree.rb @@ -43,6 +43,8 @@ module Gitlab ordered_entries.concat(tree_entries_from_rugged(repository, sha, entry.path, true)) end end + + ordered_entries end def rugged_populate_flat_path(repository, sha, path, entries) diff --git a/spec/lib/gitlab/git/tree_spec.rb b/spec/lib/gitlab/git/tree_spec.rb index 7ad3cde97f8..7e169cfe270 100644 --- a/spec/lib/gitlab/git/tree_spec.rb +++ b/spec/lib/gitlab/git/tree_spec.rb @@ -19,7 +19,9 @@ describe Gitlab::Git::Tree, :seed_helper do it 'returns a list of tree objects' do entries = described_class.where(repository, SeedRepo::Commit::ID, 'files', true) - expect(entries.count).to be >= 5 + expect(entries.map(&:path)).to include('files/html', + 'files/markdown/ruby-style-guide.md') + expect(entries.count).to be >= 10 expect(entries).to all(be_a(Gitlab::Git::Tree)) end -- GitLab From 8bcd9a32dc6a4332ad5a5fc72f9d575fd6387627 Mon Sep 17 00:00:00 2001 From: Filipa Lacerda Date: Fri, 24 May 2019 13:10:17 +0000 Subject: [PATCH 11/13] Merge branch '60778-input-text-height' into 'master' Fix height of input groups Closes #61304, #61303, #59254, and #60778 See merge request gitlab-org/gitlab-ce!28495 (cherry picked from commit 52758b929fa71540f97cd241d1668ade795306a1) 360646ea Fix height of input groups --- app/assets/stylesheets/framework/forms.scss | 4 ++++ app/assets/stylesheets/framework/variables_overrides.scss | 1 + changelogs/unreleased/60778-input-text-height.yml | 5 +++++ 3 files changed, 10 insertions(+) create mode 100644 changelogs/unreleased/60778-input-text-height.yml diff --git a/app/assets/stylesheets/framework/forms.scss b/app/assets/stylesheets/framework/forms.scss index 1c23c14c2de..66713366587 100644 --- a/app/assets/stylesheets/framework/forms.scss +++ b/app/assets/stylesheets/framework/forms.scss @@ -275,3 +275,7 @@ label { max-width: $input-lg-width; width: 100%; } + +.input-group-text { + max-height: $input-height; +} diff --git a/app/assets/stylesheets/framework/variables_overrides.scss b/app/assets/stylesheets/framework/variables_overrides.scss index fb4d3f23cd9..ea96381a098 100644 --- a/app/assets/stylesheets/framework/variables_overrides.scss +++ b/app/assets/stylesheets/framework/variables_overrides.scss @@ -7,6 +7,7 @@ $secondary: $gray-light; $input-disabled-bg: $gray-light; $input-border-color: $gray-200; $input-color: $gl-text-color; +$input-font-size: $gl-font-size; $font-family-sans-serif: $regular-font; $font-family-monospace: $monospace-font; $btn-line-height: 20px; diff --git a/changelogs/unreleased/60778-input-text-height.yml b/changelogs/unreleased/60778-input-text-height.yml new file mode 100644 index 00000000000..c956ead5db2 --- /dev/null +++ b/changelogs/unreleased/60778-input-text-height.yml @@ -0,0 +1,5 @@ +--- +title: Fix input group height +merge_request: +author: +type: other -- GitLab From c1a32968f54a8c241732b9ecd0fc1c6c2f6faec1 Mon Sep 17 00:00:00 2001 From: Ash McKenzie Date: Tue, 28 May 2019 08:16:26 +0000 Subject: [PATCH 12/13] Merge branch 'use-source-ref-name-in-webhook' into 'master' Use source ref in pipeline webhook Closes #61553 See merge request gitlab-org/gitlab-ce!28772 (cherry picked from commit 2714f85c1287e560d38c8de9f1f17c3aa3d4c8df) 7e05f3b7 Use source ref for pipeline webhook --- changelogs/unreleased/use-source-ref-name-in-webhook.yml | 5 +++++ lib/gitlab/data_builder/pipeline.rb | 2 +- spec/lib/gitlab/data_builder/pipeline_spec.rb | 9 +++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/use-source-ref-name-in-webhook.yml diff --git a/changelogs/unreleased/use-source-ref-name-in-webhook.yml b/changelogs/unreleased/use-source-ref-name-in-webhook.yml new file mode 100644 index 00000000000..1a5c56d79ca --- /dev/null +++ b/changelogs/unreleased/use-source-ref-name-in-webhook.yml @@ -0,0 +1,5 @@ +--- +title: Use source ref in pipeline webhook +merge_request: 28772 +author: +type: fixed diff --git a/lib/gitlab/data_builder/pipeline.rb b/lib/gitlab/data_builder/pipeline.rb index fa06fb935f7..e1e813849bf 100644 --- a/lib/gitlab/data_builder/pipeline.rb +++ b/lib/gitlab/data_builder/pipeline.rb @@ -19,7 +19,7 @@ module Gitlab def hook_attrs(pipeline) { id: pipeline.id, - ref: pipeline.ref, + ref: pipeline.source_ref, tag: pipeline.tag, sha: pipeline.sha, before_sha: pipeline.before_sha, diff --git a/spec/lib/gitlab/data_builder/pipeline_spec.rb b/spec/lib/gitlab/data_builder/pipeline_spec.rb index 9ef987a0826..1f36fd5c6ef 100644 --- a/spec/lib/gitlab/data_builder/pipeline_spec.rb +++ b/spec/lib/gitlab/data_builder/pipeline_spec.rb @@ -50,5 +50,14 @@ describe Gitlab::DataBuilder::Pipeline do it { expect(attributes[:variables]).to be_a(Array) } it { expect(attributes[:variables]).to contain_exactly({ key: 'TRIGGER_KEY_1', value: 'TRIGGER_VALUE_1' }) } end + + context 'when pipeline is a detached merge request pipeline' do + let(:merge_request) { create(:merge_request, :with_detached_merge_request_pipeline) } + let(:pipeline) { merge_request.all_pipelines.first } + + it 'returns a source ref' do + expect(attributes[:ref]).to eq(merge_request.source_branch) + end + end end end -- GitLab From ad7dc610de2125ac42460ebfc6fd00f2139b76f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Coutable?= Date: Tue, 7 May 2019 14:52:04 +0000 Subject: [PATCH 13/13] Merge branch 'sh-fix-related-merge-requests-path' into 'master' Use a path for the related merge requests endpoint Closes #61280 See merge request gitlab-org/gitlab-ce!28171 --- app/views/projects/issues/show.html.haml | 2 +- .../sh-fix-related-merge-requests-path.yml | 5 +++ lib/api/helpers/related_resources_helpers.rb | 4 +++ .../helpers/related_resources_helpers_spec.rb | 34 +++++++++++++++++++ 4 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/sh-fix-related-merge-requests-path.yml diff --git a/app/views/projects/issues/show.html.haml b/app/views/projects/issues/show.html.haml index f4d8aab8a88..48a4a59dcff 100644 --- a/app/views/projects/issues/show.html.haml +++ b/app/views/projects/issues/show.html.haml @@ -77,7 +77,7 @@ = edited_time_ago_with_tooltip(@issue, placement: 'bottom', html_class: 'issue-edited-ago js-issue-edited-ago') - #js-related-merge-requests{ data: { endpoint: expose_url(api_v4_projects_issues_related_merge_requests_path(id: @project.id, issue_iid: @issue.iid)), project_namespace: @project.namespace.path, project_path: @project.path } } + #js-related-merge-requests{ data: { endpoint: expose_path(api_v4_projects_issues_related_merge_requests_path(id: @project.id, issue_iid: @issue.iid)), project_namespace: @project.namespace.path, project_path: @project.path } } - if can?(current_user, :download_code, @project) #related-branches{ data: { url: related_branches_project_issue_path(@project, @issue) } } diff --git a/changelogs/unreleased/sh-fix-related-merge-requests-path.yml b/changelogs/unreleased/sh-fix-related-merge-requests-path.yml new file mode 100644 index 00000000000..4b4108feda4 --- /dev/null +++ b/changelogs/unreleased/sh-fix-related-merge-requests-path.yml @@ -0,0 +1,5 @@ +--- +title: Use a path for the related merge requests endpoint +merge_request: 28171 +author: +type: fixed diff --git a/lib/api/helpers/related_resources_helpers.rb b/lib/api/helpers/related_resources_helpers.rb index 793ae11b41d..9cdde25fe4e 100644 --- a/lib/api/helpers/related_resources_helpers.rb +++ b/lib/api/helpers/related_resources_helpers.rb @@ -13,6 +13,10 @@ module API available?(:merge_requests, project, options[:current_user]) end + def expose_path(path) + Gitlab::Utils.append_path(Gitlab.config.gitlab.relative_url_root, path) + end + def expose_url(path) url_options = Gitlab::Application.routes.default_url_options protocol, host, port, script_name = url_options.values_at(:protocol, :host, :port, :script_name) diff --git a/spec/lib/api/helpers/related_resources_helpers_spec.rb b/spec/lib/api/helpers/related_resources_helpers_spec.rb index 66af7f81535..99fe8795d91 100644 --- a/spec/lib/api/helpers/related_resources_helpers_spec.rb +++ b/spec/lib/api/helpers/related_resources_helpers_spec.rb @@ -5,6 +5,40 @@ describe API::Helpers::RelatedResourcesHelpers do Class.new.include(described_class).new end + describe '#expose_path' do + let(:path) { '/api/v4/awesome_endpoint' } + + context 'empty relative URL root' do + before do + stub_config_setting(relative_url_root: '') + end + + it 'returns the existing path' do + expect(helpers.expose_path(path)).to eq(path) + end + end + + context 'slash relative URL root' do + before do + stub_config_setting(relative_url_root: '/') + end + + it 'returns the existing path' do + expect(helpers.expose_path(path)).to eq(path) + end + end + + context 'with relative URL root' do + before do + stub_config_setting(relative_url_root: '/gitlab/root') + end + + it 'returns the existing path' do + expect(helpers.expose_path(path)).to eq("/gitlab/root" + path) + end + end + end + describe '#expose_url' do let(:path) { '/api/v4/awesome_endpoint' } subject(:url) { helpers.expose_url(path) } -- GitLab