diff options
author | Robert Speicher <robert@gitlab.com> | 2018-03-05 22:42:48 +0000 |
---|---|---|
committer | Robert Speicher <robert@gitlab.com> | 2018-03-05 22:42:48 +0000 |
commit | 4ac0a4bf1001941bfa47b0db6a2eedab1e98a36e (patch) | |
tree | 4f6723ac0ced02999f03f4bba41eb6cb1274f596 | |
parent | 6ec655f5c46aab93f435ac9218c7354b0a712160 (diff) | |
parent | 2d1ceca077a1624a4bdc6aa26ab8a5113a5f6394 (diff) | |
download | gitlab-ce-4ac0a4bf1001941bfa47b0db6a2eedab1e98a36e.tar.gz |
Merge branch 'sh-fix-issue-43871-system-hooks' into 'master'
Don't error out in system hook if user has `nil` datetime columns
Closes #43871
See merge request gitlab-org/gitlab-ce!17543
-rw-r--r-- | app/services/system_hooks_service.rb | 4 | ||||
-rw-r--r-- | changelogs/unreleased/sh-fix-issue-43871-system-hooks.yml | 5 | ||||
-rw-r--r-- | spec/services/system_hooks_service_spec.rb | 8 |
3 files changed, 15 insertions, 2 deletions
diff --git a/app/services/system_hooks_service.rb b/app/services/system_hooks_service.rb index af8c02a10b7..ba7946fd23c 100644 --- a/app/services/system_hooks_service.rb +++ b/app/services/system_hooks_service.rb @@ -20,8 +20,8 @@ class SystemHooksService def build_event_data(model, event) data = { event_name: build_event_name(model, event), - created_at: model.created_at.xmlschema, - updated_at: model.updated_at.xmlschema + created_at: model.created_at&.xmlschema, + updated_at: model.updated_at&.xmlschema } case model diff --git a/changelogs/unreleased/sh-fix-issue-43871-system-hooks.yml b/changelogs/unreleased/sh-fix-issue-43871-system-hooks.yml new file mode 100644 index 00000000000..7c7ef39cb75 --- /dev/null +++ b/changelogs/unreleased/sh-fix-issue-43871-system-hooks.yml @@ -0,0 +1,5 @@ +--- +title: Don't error out in system hook if user has `nil` datetime columns +merge_request: +author: +type: fixed diff --git a/spec/services/system_hooks_service_spec.rb b/spec/services/system_hooks_service_spec.rb index 08b26597723..51396d34f8f 100644 --- a/spec/services/system_hooks_service_spec.rb +++ b/spec/services/system_hooks_service_spec.rb @@ -74,6 +74,14 @@ describe SystemHooksService do expect(data[:project_visibility]).to eq('private') end + it 'handles nil datetime columns' do + user.update_attributes(created_at: nil, updated_at: nil) + data = event_data(user, :destroy) + + expect(data[:created_at]).to be(nil) + expect(data[:updated_at]).to be(nil) + end + context 'group_rename' do it 'contains old and new path' do allow(group).to receive(:path_was).and_return('old-path') |