Import project from Gitlab Export fails on webhooks
Summary
When importing a Gitlab export that contains webhook definitions, the import succeeds (in the UI) but the webhooks are not being created and an API call to projects/:id/import
shows import_status: failed
and import_error: Error importing repository into *** - Failed to replace hooks because one or more of the new records could not be saved. Url can't be blank Url must be a valid URL
.
The project.json
contained a valid webhook definition including a url
property.
Steps to reproduce
- Create project with valid webhook
- Export project
- Import project export under a new path
What is the current bug behavior?
- Webhook not defined on newly imported project
- Import status is
failed
:
$ curl -H "Private-Token: *****" https://git.humance.de/api/v4/projects/new-path/import | jq .
{
...
"import_status": "failed",
"import_error": "Error importing repository into liferay/test - Failed to replace hooks because one or more of the new records could not be saved. Url can't be blank Url must be a valid URL"
}
What is the expected correct behavior?
- Webhook created on newly imported project
- Import status is
finished
.
Relevant logs and/or screenshots
project.json
of Gitlab export:
{
...
"hooks": [
{
"url": "https://example.com",
...
}
],
...
}
Gitlab production.log
Import/Export error raised on /srv/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/import_export/project_tree_restorer.rb:33:in `rescue in restore': Failed to replace hooks because one or more of the new records could not be saved. Url can't be blank Url must be a valid URL
Import/Export backtrace: /srv/opt/gitlab/embedded/service/gitlab-rails/app/models/project.rb:2247:in `handle_update_attribute_error'
/srv/opt/gitlab/embedded/service/gitlab-rails/app/models/project.rb:1876:in `rescue in append_or_update_attribute'
/srv/opt/gitlab/embedded/service/gitlab-rails/app/models/project.rb:1866:in `append_or_update_attribute'
/srv/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/import_export/project_tree_restorer.rb:75:in `save_relation_hash'
/srv/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/import_export/project_tree_restorer.rb:61:in `block in create_relations'
/srv/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/import_export/project_tree_restorer.rb:57:in `each'
/srv/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/import_export/project_tree_restorer.rb:57:in `create_relations'
/srv/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/import_export/project_tree_restorer.rb:29:in `block (2 levels) in restore'
/srv/opt/gitlab/embedded/lib/ruby/gems/2.4.0/gems/activerecord-4.2.10/lib/active_record/no_touching.rb:29:in `apply_to'
/srv/opt/gitlab/embedded/lib/ruby/gems/2.4.0/gems/activerecord-4.2.10/lib/active_record/no_touching.rb:22:in `no_touching'
/srv/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/import_export/project_tree_restorer.rb:28:in `block in restore'
/srv/opt/gitlab/embedded/lib/ruby/gems/2.4.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract/query_cache.rb:49:in `uncached'
/srv/opt/gitlab/embedded/lib/ruby/gems/2.4.0/gems/activerecord-4.2.10/lib/active_record/query_cache.rb:19:in `uncached'
/srv/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/import_export/project_tree_restorer.rb:27:in `restore'
Output of checks
This bug happens on GitLab.com and Gitlab CE 11.4.4
Possible fixes
This might have been introduced by !21645 (merged)
/label ~bug ~"project import"
Edited by Soeren Unruh