diff options
3 files changed, 10 insertions, 4 deletions
diff --git a/changelogs/unreleased/bvl-github-import-assignee-errors.yml b/changelogs/unreleased/bvl-github-import-assignee-errors.yml new file mode 100644 index 00000000000..37ed26c51bb --- /dev/null +++ b/changelogs/unreleased/bvl-github-import-assignee-errors.yml @@ -0,0 +1,5 @@ +--- +title: Fix errors when importing GitHub issues with multiple assignees +merge_request: 17568 +author: +type: fixed diff --git a/lib/gitlab/github_import/importer/issue_importer.rb b/lib/gitlab/github_import/importer/issue_importer.rb index 31fefebf787..9cbda2d169c 100644 --- a/lib/gitlab/github_import/importer/issue_importer.rb +++ b/lib/gitlab/github_import/importer/issue_importer.rb @@ -73,7 +73,7 @@ module Gitlab end end - Gitlab::Database.bulk_insert(IssueAssignee.table_name, assignees) + Gitlab::Database.bulk_insert(IssueAssignee.table_name, assignees, ignore_duplicates: true) end end end diff --git a/spec/lib/gitlab/github_import/importer/issue_importer_spec.rb b/spec/lib/gitlab/github_import/importer/issue_importer_spec.rb index d34ca0b76b8..8e7000df0d7 100644 --- a/spec/lib/gitlab/github_import/importer/issue_importer_spec.rb +++ b/spec/lib/gitlab/github_import/importer/issue_importer_spec.rb @@ -180,19 +180,20 @@ describe Gitlab::GithubImport::Importer::IssueImporter, :clean_gitlab_redis_cach allow(importer.user_finder) .to receive(:user_id_for) - .ordered.with(issue.assignees[0]) + .with(issue.assignees[0]) .and_return(4) allow(importer.user_finder) .to receive(:user_id_for) - .ordered.with(issue.assignees[1]) + .with(issue.assignees[1]) .and_return(5) expect(Gitlab::Database) .to receive(:bulk_insert) .with( IssueAssignee.table_name, - [{ issue_id: 1, user_id: 4 }, { issue_id: 1, user_id: 5 }] + [{ issue_id: 1, user_id: 4 }, { issue_id: 1, user_id: 5 }], + ignore_duplicates: true ) importer.create_assignees(1) |