Commit b78a69b0 authored by Andreas Brandl's avatar Andreas Brandl

Trigger iid logic from GitHub importer for issues.

parent a2d647b1
...@@ -55,7 +55,11 @@ module Gitlab ...@@ -55,7 +55,11 @@ module Gitlab
updated_at: issue.updated_at updated_at: issue.updated_at
} }
GithubImport.insert_and_return_id(attributes, project.issues) GithubImport.insert_and_return_id(attributes, project.issues).tap do |id|
# We use .insert_and_return_id which effectively disables all callbacks.
# Trigger iid logic here to make sure we track internal id values consistently.
project.issues.find(id).ensure_project_iid!
end
rescue ActiveRecord::InvalidForeignKey rescue ActiveRecord::InvalidForeignKey
# It's possible the project has been deleted since scheduling this # It's possible the project has been deleted since scheduling this
# job. In this case we'll just skip creating the issue. # job. In this case we'll just skip creating the issue.
......
...@@ -78,6 +78,11 @@ describe Gitlab::GithubImport::Importer::IssueImporter, :clean_gitlab_redis_cach ...@@ -78,6 +78,11 @@ describe Gitlab::GithubImport::Importer::IssueImporter, :clean_gitlab_redis_cach
.to receive(:id_for) .to receive(:id_for)
.with(issue) .with(issue)
.and_return(milestone.id) .and_return(milestone.id)
allow(importer.user_finder)
.to receive(:author_id_for)
.with(issue)
.and_return([user.id, true])
end end
context 'when the issue author could be found' do context 'when the issue author could be found' do
...@@ -172,6 +177,23 @@ describe Gitlab::GithubImport::Importer::IssueImporter, :clean_gitlab_redis_cach ...@@ -172,6 +177,23 @@ describe Gitlab::GithubImport::Importer::IssueImporter, :clean_gitlab_redis_cach
expect(importer.create_issue).to be_a_kind_of(Numeric) expect(importer.create_issue).to be_a_kind_of(Numeric)
end end
it 'triggers internal_id functionality to track greatest iids' do
allow(importer.user_finder)
.to receive(:author_id_for)
.with(issue)
.and_return([user.id, true])
issue = build_stubbed(:issue, project: project)
allow(Gitlab::GithubImport)
.to receive(:insert_and_return_id)
.and_return(issue.id)
allow(project.issues).to receive(:find).with(issue.id).and_return(issue)
expect(issue).to receive(:ensure_project_iid!)
importer.create_issue
end
end end
describe '#create_assignees' do describe '#create_assignees' do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment