summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicole Cordes <cordes@cps-it.de>2014-09-03 22:28:04 +0200
committerNicole Cordes <cordes@cps-it.de>2015-03-10 10:07:25 +0100
commitb7a31a4b024e2c5f607003f1c42e2cd46adb2ff4 (patch)
treeb525911165dcb33506f18421f3c935b45cfda122
parente0caed91e2cd6b959f808139df7c40f3644f88fd (diff)
downloadgitlab-ce-b7a31a4b024e2c5f607003f1c42e2cd46adb2ff4.tar.gz
Generate valid json for hooks
It seems that ruby can handle 'nil' value but other json processors (like PHP) throw an error. This is always generated for empty arrays.
-rw-r--r--CHANGELOG1
-rw-r--r--app/services/system_hooks_service.rb2
-rw-r--r--lib/gitlab/push_data_builder.rb1
3 files changed, 3 insertions, 1 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 81468d4013e..1842a28f84e 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -35,6 +35,7 @@ v 7.9.0 (unreleased)
- Move groups page from profile to dashboard
- Starred projects page at dashboard
- Blocking user does not remove him/her from project/groups but show blocked label
+ - Improve json validation in hook data
v 7.8.2
- Fix service migration issue when upgrading from versions prior to 7.3
diff --git a/app/services/system_hooks_service.rb b/app/services/system_hooks_service.rb
index 46f6e91e808..c5d0b08845b 100644
--- a/app/services/system_hooks_service.rb
+++ b/app/services/system_hooks_service.rb
@@ -41,7 +41,7 @@ class SystemHooksService
path_with_namespace: model.path_with_namespace,
project_id: model.id,
owner_name: owner.name,
- owner_email: owner.respond_to?(:email) ? owner.email : nil,
+ owner_email: owner.respond_to?(:email) ? owner.email : "",
project_visibility: Project.visibility_levels.key(model.visibility_level_field).downcase
})
when User
diff --git a/lib/gitlab/push_data_builder.rb b/lib/gitlab/push_data_builder.rb
index 5cefa67d3ab..ea06e1f7333 100644
--- a/lib/gitlab/push_data_builder.rb
+++ b/lib/gitlab/push_data_builder.rb
@@ -58,6 +58,7 @@ module Gitlab
data[:commits] << commit.hook_attrs(project)
end
+ data[:commits] = "" if data[:commits].count == 0
data
end