BigW Consortium Gitlab

Commit a54408b9 by Dmitriy Zaporozhets

Merge branch 'expose_visibility_in_project_create_service_hook' into 'master'

Expose project visibility in system service hooks Our gitlab installation is currently setup with a system hook to ping our hubot. Currently whenever a project is created, hubot announces this, regardless of project visibility. It didn't really make sense for everyone to see this, and as the project visibility wasn't exposed in the JSON hook output, I thought I'd add it in! As far as I'm aware, tests still run and pass OK. I'm not exactly rails savvy though, so any pointers/fixes/etc, please let me know!
parents c355b9ab 31b0e149
...@@ -31,7 +31,8 @@ class SystemHooksService ...@@ -31,7 +31,8 @@ class SystemHooksService
path_with_namespace: model.path_with_namespace, path_with_namespace: model.path_with_namespace,
project_id: model.id, project_id: model.id,
owner_name: owner.name, owner_name: owner.name,
owner_email: owner.respond_to?(:email) ? owner.email : nil owner_email: owner.respond_to?(:email) ? owner.email : nil,
project_visibility: Project.visibility_levels.key(model.visibility_level_field).downcase
}) })
when User when User
data.merge!({ data.merge!({
...@@ -46,7 +47,8 @@ class SystemHooksService ...@@ -46,7 +47,8 @@ class SystemHooksService
project_id: model.project_id, project_id: model.project_id,
user_name: model.user.name, user_name: model.user.name,
user_email: model.user.email, user_email: model.user.email,
project_access: model.human_access project_access: model.human_access,
project_visibility: Project.visibility_levels.key(model.project.visibility_level_field).downcase
}) })
end end
end end
......
...@@ -16,6 +16,7 @@ System hooks can be used, e.g. for logging or changing information in a LDAP ser ...@@ -16,6 +16,7 @@ System hooks can be used, e.g. for logging or changing information in a LDAP ser
"path": "stormcloud", "path": "stormcloud",
"path_with_namespace": "jsmith/stormcloud", "path_with_namespace": "jsmith/stormcloud",
"project_id": 74, "project_id": 74,
"project_visibility": "private",
} }
``` ```
...@@ -31,6 +32,7 @@ System hooks can be used, e.g. for logging or changing information in a LDAP ser ...@@ -31,6 +32,7 @@ System hooks can be used, e.g. for logging or changing information in a LDAP ser
"path": "underscore", "path": "underscore",
"path_with_namespace": "jsmith/underscore", "path_with_namespace": "jsmith/underscore",
"project_id": 73, "project_id": 73,
"project_visibility": "internal",
} }
``` ```
...@@ -46,6 +48,7 @@ System hooks can be used, e.g. for logging or changing information in a LDAP ser ...@@ -46,6 +48,7 @@ System hooks can be used, e.g. for logging or changing information in a LDAP ser
"project_path": "storecloud", "project_path": "storecloud",
"user_email": "johnsmith@gmail.com", "user_email": "johnsmith@gmail.com",
"user_name": "John Smith", "user_name": "John Smith",
"project_visibility": "private",
} }
``` ```
...@@ -61,6 +64,7 @@ System hooks can be used, e.g. for logging or changing information in a LDAP ser ...@@ -61,6 +64,7 @@ System hooks can be used, e.g. for logging or changing information in a LDAP ser
"project_path": "storecloud", "project_path": "storecloud",
"user_email": "johnsmith@gmail.com", "user_email": "johnsmith@gmail.com",
"user_name": "John Smith", "user_name": "John Smith",
"project_visibility": "private",
} }
``` ```
......
...@@ -8,10 +8,10 @@ describe SystemHooksService do ...@@ -8,10 +8,10 @@ describe SystemHooksService do
context 'event data' do context 'event data' do
it { event_data(user, :create).should include(:event_name, :name, :created_at, :email, :user_id) } it { event_data(user, :create).should include(:event_name, :name, :created_at, :email, :user_id) }
it { event_data(user, :destroy).should include(:event_name, :name, :created_at, :email, :user_id) } it { event_data(user, :destroy).should include(:event_name, :name, :created_at, :email, :user_id) }
it { event_data(project, :create).should include(:event_name, :name, :created_at, :path, :project_id, :owner_name, :owner_email) } it { event_data(project, :create).should include(:event_name, :name, :created_at, :path, :project_id, :owner_name, :owner_email, :project_visibility) }
it { event_data(project, :destroy).should include(:event_name, :name, :created_at, :path, :project_id, :owner_name, :owner_email) } it { event_data(project, :destroy).should include(:event_name, :name, :created_at, :path, :project_id, :owner_name, :owner_email, :project_visibility) }
it { event_data(users_project, :create).should include(:event_name, :created_at, :project_name, :project_path, :project_id, :user_name, :user_email, :project_access) } it { event_data(users_project, :create).should include(:event_name, :created_at, :project_name, :project_path, :project_id, :user_name, :user_email, :project_access, :project_visibility) }
it { event_data(users_project, :destroy).should include(:event_name, :created_at, :project_name, :project_path, :project_id, :user_name, :user_email, :project_access) } it { event_data(users_project, :destroy).should include(:event_name, :created_at, :project_name, :project_path, :project_id, :user_name, :user_email, :project_access, :project_visibility) }
end end
context 'event names' do context 'event names' 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