Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-08-10 00:08:54 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-08-10 00:08:54 +0300
commita8648ba08604085c76be1e4f5253ffa89aa192e3 (patch)
tree2d2935497b0291eed102e75725fd4bb801146993
parente440e09fe47e84c45f9ed9acc3ec1213846e8be4 (diff)
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--.gitlab/issue_templates/Security developer workflow.md2
-rw-r--r--app/views/groups/runners/_sort_dropdown.html.haml2
-rw-r--r--config/feature_flags/development/github_review_importer_query_only_unimported_merge_requests.yml8
-rw-r--r--doc/user/packages/conan_repository/index.md7
-rw-r--r--lib/gitlab/github_import/importer/pull_requests_reviews_importer.rb43
-rw-r--r--spec/lib/gitlab/github_import/importer/pull_requests_reviews_importer_spec.rb120
-rw-r--r--spec/views/groups/runners/_sort_dropdown.html.haml_spec.rb31
7 files changed, 80 insertions, 133 deletions
diff --git a/.gitlab/issue_templates/Security developer workflow.md b/.gitlab/issue_templates/Security developer workflow.md
index 99149442509..51e8ec378b2 100644
--- a/.gitlab/issue_templates/Security developer workflow.md
+++ b/.gitlab/issue_templates/Security developer workflow.md
@@ -9,7 +9,9 @@ Set the title to: `Description of the original issue`
## Prior to starting the security release work
- [ ] Read the [security process for developers] if you are not familiar with it.
+- [ ] Make sure the issue really needs to follow the security release workflow.
- Verify if the issue you're working on `gitlab-org/gitlab` is confidential, if it's public fix should be placed on GitLab canonical and no backports are required.
+ - If the issue you're fixing doesn't appear to be something that can be exploited by a malicious person and is instead simply a security enhancement do not hesitate to ping `@gitlab-com/gl-security/appsec` to discuss if the issue can be fixed in the canonical repository.
- [ ] **IMPORTANT**: Mark this [issue as linked] to the Security Release Tracking Issue. You can find it on the topic of the `#releases` Slack channel. This issue
MUST be linked for the release bot to know that the associated merge requests should be merged for this security release.
- Fill out the [Links section](#links):
diff --git a/app/views/groups/runners/_sort_dropdown.html.haml b/app/views/groups/runners/_sort_dropdown.html.haml
index eb826552211..e914bd00dac 100644
--- a/app/views/groups/runners/_sort_dropdown.html.haml
+++ b/app/views/groups/runners/_sort_dropdown.html.haml
@@ -1,4 +1,4 @@
-- sorted_by = sort_options_hash[@sort]
+- sorted_by = sort_options_hash[@sort] || sort_title_created_date
.dropdown.inline.gl-ml-3
%button.dropdown-menu-toggle{ type: 'button', data: { toggle: 'dropdown', display: 'static' } }
diff --git a/config/feature_flags/development/github_review_importer_query_only_unimported_merge_requests.yml b/config/feature_flags/development/github_review_importer_query_only_unimported_merge_requests.yml
deleted file mode 100644
index 511b9a6a2ec..00000000000
--- a/config/feature_flags/development/github_review_importer_query_only_unimported_merge_requests.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: github_review_importer_query_only_unimported_merge_requests
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62036
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/332982
-milestone: '14.0'
-type: development
-group: group::import
-default_enabled: true
diff --git a/doc/user/packages/conan_repository/index.md b/doc/user/packages/conan_repository/index.md
index c6cc7e7905a..d3e913edfda 100644
--- a/doc/user/packages/conan_repository/index.md
+++ b/doc/user/packages/conan_repository/index.md
@@ -210,13 +210,6 @@ conan user <gitlab_username or deploy_token_username> -r gitlab -p <personal_acc
Now when you run commands with `--remote=gitlab`, your username and password are
included in the requests.
-Alternatively, you can explicitly include your credentials in any given command.
-For example:
-
-```shell
-CONAN_LOGIN_USERNAME=<gitlab_username or deploy_token_username> CONAN_PASSWORD=<personal_access_token or deploy_token> conan upload Hello/0.1@mycompany/beta --all --remote=gitlab
-```
-
NOTE:
Because your authentication with GitLab expires on a regular basis, you may
occasionally need to re-enter your personal access token.
diff --git a/lib/gitlab/github_import/importer/pull_requests_reviews_importer.rb b/lib/gitlab/github_import/importer/pull_requests_reviews_importer.rb
index e389acbf877..bd65eb5899c 100644
--- a/lib/gitlab/github_import/importer/pull_requests_reviews_importer.rb
+++ b/lib/gitlab/github_import/importer/pull_requests_reviews_importer.rb
@@ -37,43 +37,6 @@ module Gitlab
review.id
end
- def each_object_to_import(&block)
- if use_github_review_importer_query_only_unimported_merge_requests?
- each_merge_request_to_import(&block)
- else
- each_merge_request_skipping_imported(&block)
- end
- end
-
- private
-
- attr_reader :merge_requests_already_imported_cache_key
-
- # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62036#note_587181108
- def use_github_review_importer_query_only_unimported_merge_requests?
- Feature.enabled?(
- :github_review_importer_query_only_unimported_merge_requests,
- default_enabled: :yaml
- )
- end
-
- def each_merge_request_skipping_imported
- project.merge_requests.find_each do |merge_request|
- next if already_imported?(merge_request)
-
- Gitlab::GithubImport::ObjectCounter.increment(project, object_type, :fetched)
-
- client
- .pull_request_reviews(project.import_source, merge_request.iid)
- .each do |review|
- review.merge_request_id = merge_request.id
- yield(review)
- end
-
- mark_as_imported(merge_request)
- end
- end
-
# The worker can be interrupted, by rate limit for instance,
# in different situations. To avoid requesting already imported data,
# if the worker is interrupted:
@@ -82,7 +45,7 @@ module Gitlab
# - before importing all merge requests reviews
# Merge requests that had all the reviews imported are cached with
# `mark_merge_request_reviews_imported`
- def each_merge_request_to_import
+ def each_object_to_import(&block)
each_review_page do |page, merge_request|
page.objects.each do |review|
next if already_imported?(review)
@@ -97,6 +60,10 @@ module Gitlab
end
end
+ private
+
+ attr_reader :merge_requests_already_imported_cache_key
+
def each_review_page
merge_requests_to_import.find_each do |merge_request|
# The page counter needs to be scoped by merge request to avoid skipping
diff --git a/spec/lib/gitlab/github_import/importer/pull_requests_reviews_importer_spec.rb b/spec/lib/gitlab/github_import/importer/pull_requests_reviews_importer_spec.rb
index 08be350f0f9..c5fa67e50aa 100644
--- a/spec/lib/gitlab/github_import/importer/pull_requests_reviews_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/pull_requests_reviews_importer_spec.rb
@@ -27,100 +27,62 @@ RSpec.describe Gitlab::GithubImport::Importer::PullRequestsReviewsImporter do
end
describe '#each_object_to_import', :clean_gitlab_redis_cache do
- context 'when github_review_importer_query_only_unimported_merge_requests is enabled' do
- before do
- stub_feature_flags(github_review_importer_query_only_unimported_merge_requests: true)
- end
-
- let(:merge_request) do
- create(
- :merged_merge_request,
- iid: 999,
- source_project: project,
- target_project: project
- )
- end
-
- let(:review) { double(id: 1) }
-
- it 'fetches the pull requests reviews data' do
- page = double(objects: [review], number: 1)
-
- expect(review)
- .to receive(:merge_request_id=)
- .with(merge_request.id)
-
- expect(client)
- .to receive(:each_page)
- .exactly(:once) # ensure to be cached on the second call
- .with(:pull_request_reviews, 'github/repo', merge_request.iid, page: 1)
- .and_yield(page)
+ let(:merge_request) do
+ create(
+ :merged_merge_request,
+ iid: 999,
+ source_project: project,
+ target_project: project
+ )
+ end
- expect { |b| subject.each_object_to_import(&b) }
- .to yield_with_args(review)
+ let(:review) { double(id: 1) }
- subject.each_object_to_import {}
- end
+ it 'fetches the pull requests reviews data' do
+ page = double(objects: [review], number: 1)
- it 'skips cached pages' do
- Gitlab::GithubImport::PageCounter
- .new(project, "merge_request/#{merge_request.id}/pull_request_reviews")
- .set(2)
+ expect(review)
+ .to receive(:merge_request_id=)
+ .with(merge_request.id)
- expect(review).not_to receive(:merge_request_id=)
+ expect(client)
+ .to receive(:each_page)
+ .exactly(:once) # ensure to be cached on the second call
+ .with(:pull_request_reviews, 'github/repo', merge_request.iid, page: 1)
+ .and_yield(page)
- expect(client)
- .to receive(:each_page)
- .exactly(:once) # ensure to be cached on the second call
- .with(:pull_request_reviews, 'github/repo', merge_request.iid, page: 2)
+ expect { |b| subject.each_object_to_import(&b) }
+ .to yield_with_args(review)
- subject.each_object_to_import {}
- end
+ subject.each_object_to_import {}
+ end
- it 'skips cached merge requests' do
- Gitlab::Cache::Import::Caching.set_add(
- "github-importer/merge_request/already-imported/#{project.id}",
- merge_request.id
- )
+ it 'skips cached pages' do
+ Gitlab::GithubImport::PageCounter
+ .new(project, "merge_request/#{merge_request.id}/pull_request_reviews")
+ .set(2)
- expect(review).not_to receive(:merge_request_id=)
+ expect(review).not_to receive(:merge_request_id=)
- expect(client).not_to receive(:each_page)
+ expect(client)
+ .to receive(:each_page)
+ .exactly(:once) # ensure to be cached on the second call
+ .with(:pull_request_reviews, 'github/repo', merge_request.iid, page: 2)
- subject.each_object_to_import {}
- end
+ subject.each_object_to_import {}
end
- context 'when github_review_importer_query_only_unimported_merge_requests is disabled' do
- before do
- stub_feature_flags(github_review_importer_query_only_unimported_merge_requests: false)
- end
-
- it 'fetchs the merged pull requests data' do
- merge_request = create(
- :merged_merge_request,
- iid: 999,
- source_project: project,
- target_project: project
- )
-
- review = double
-
- expect(review)
- .to receive(:merge_request_id=)
- .with(merge_request.id)
+ it 'skips cached merge requests' do
+ Gitlab::Cache::Import::Caching.set_add(
+ "github-importer/merge_request/already-imported/#{project.id}",
+ merge_request.id
+ )
- allow(client)
- .to receive(:pull_request_reviews)
- .exactly(:once) # ensure to be cached on the second call
- .with('github/repo', merge_request.iid)
- .and_return([review])
+ expect(review).not_to receive(:merge_request_id=)
- expect { |b| subject.each_object_to_import(&b) }
- .to yield_with_args(review)
+ expect(client).not_to receive(:each_page)
- subject.each_object_to_import {}
- end
+ subject.each_object_to_import {}
end
end
end
diff --git a/spec/views/groups/runners/_sort_dropdown.html.haml_spec.rb b/spec/views/groups/runners/_sort_dropdown.html.haml_spec.rb
new file mode 100644
index 00000000000..4b5027a5a56
--- /dev/null
+++ b/spec/views/groups/runners/_sort_dropdown.html.haml_spec.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'groups/runners/sort_dropdown.html.haml' do
+ describe 'render' do
+ let_it_be(:sort_options_hash) { { by_title: 'Title' } }
+ let_it_be(:sort_title_created_date) { 'Created date' }
+
+ before do
+ allow(view).to receive(:sort).and_return('by_title')
+ end
+
+ describe 'when a sort option is not selected' do
+ it 'renders a default sort option' do
+ render 'groups/runners/sort_dropdown', sort_options_hash: sort_options_hash, sort_title_created_date: sort_title_created_date
+
+ expect(rendered).to have_content 'Created date'
+ end
+ end
+
+ describe 'when a sort option is selected' do
+ it 'renders the selected sort option' do
+ @sort = :by_title
+ render 'groups/runners/sort_dropdown', sort_options_hash: sort_options_hash, sort_title_created_date: sort_title_created_date
+
+ expect(rendered).to have_content 'Title'
+ end
+ end
+ end
+end