Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/hook_data')
-rw-r--r--lib/gitlab/hook_data/group_member_builder.rb2
-rw-r--r--lib/gitlab/hook_data/issue_builder.rb2
-rw-r--r--lib/gitlab/hook_data/key_builder.rb46
-rw-r--r--lib/gitlab/hook_data/project_builder.rb57
-rw-r--r--lib/gitlab/hook_data/user_builder.rb2
5 files changed, 106 insertions, 3 deletions
diff --git a/lib/gitlab/hook_data/group_member_builder.rb b/lib/gitlab/hook_data/group_member_builder.rb
index 32cfd032ffe..2998550a4b5 100644
--- a/lib/gitlab/hook_data/group_member_builder.rb
+++ b/lib/gitlab/hook_data/group_member_builder.rb
@@ -62,4 +62,4 @@ module Gitlab
end
end
-Gitlab::HookData::GroupMemberBuilder.prepend_if_ee('EE::Gitlab::HookData::GroupMemberBuilder')
+Gitlab::HookData::GroupMemberBuilder.prepend_mod_with('Gitlab::HookData::GroupMemberBuilder')
diff --git a/lib/gitlab/hook_data/issue_builder.rb b/lib/gitlab/hook_data/issue_builder.rb
index f38012c9804..d5595e80bdf 100644
--- a/lib/gitlab/hook_data/issue_builder.rb
+++ b/lib/gitlab/hook_data/issue_builder.rb
@@ -58,4 +58,4 @@ module Gitlab
end
end
-Gitlab::HookData::IssueBuilder.prepend_if_ee('EE::Gitlab::HookData::IssueBuilder')
+Gitlab::HookData::IssueBuilder.prepend_mod_with('Gitlab::HookData::IssueBuilder')
diff --git a/lib/gitlab/hook_data/key_builder.rb b/lib/gitlab/hook_data/key_builder.rb
new file mode 100644
index 00000000000..8eaf4dfd762
--- /dev/null
+++ b/lib/gitlab/hook_data/key_builder.rb
@@ -0,0 +1,46 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module HookData
+ class KeyBuilder < BaseBuilder
+ alias_method :key, :object
+
+ # Sample data
+ # {
+ # event_name: "key_create",
+ # created_at: "2021-04-19T06:13:24Z",
+ # updated_at: "2021-04-19T06:13:24Z",
+ # key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQClDn/5BaESHlSb3NxQtiUc0BXgK6lsqdAUIdS3lwZ2gbACDhtoLYnc+qhZ4b8gWzE+2A8RmkvLe98T7noRoW4DAYs67NSqMs/kXd2ESPNV8qqv0u7tCxPz+c7DaYp2oC/avlxVQ2AeULZLCEwalYZ7irde0EZMeTwNIRu5s88gOw== dummy@gitlab.com",
+ # id: 1,
+ # username: "johndoe"
+ # }
+
+ def build(event)
+ [
+ event_data(event),
+ timestamps_data,
+ key_data,
+ user_data
+ ].reduce(:merge)
+ end
+
+ private
+
+ def key_data
+ {
+ key: key.key,
+ id: key.id
+ }
+ end
+
+ def user_data
+ user = key.user
+ return {} unless user
+
+ {
+ username: user.username
+ }
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/hook_data/project_builder.rb b/lib/gitlab/hook_data/project_builder.rb
new file mode 100644
index 00000000000..65c237f743f
--- /dev/null
+++ b/lib/gitlab/hook_data/project_builder.rb
@@ -0,0 +1,57 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module HookData
+ class ProjectBuilder < BaseBuilder
+ alias_method :project, :object
+
+ # Sample data
+ # {
+ # event_name: "project_rename",
+ # created_at: "2021-04-19T07:05:36Z",
+ # updated_at: "2021-04-19T07:05:36Z",
+ # name: "my_project",
+ # path: "my_project",
+ # path_with_namespace: "namespace2/my_project",
+ # project_id: 1,
+ # owner_name: "John",
+ # owner_email: "user1@example.org",
+ # project_visibility: "internal",
+ # old_path_with_namespace: "old-path-with-namespace"
+ # }
+
+ def build(event)
+ [
+ event_data(event),
+ timestamps_data,
+ project_data,
+ event_specific_project_data(event)
+ ].reduce(:merge)
+ end
+
+ private
+
+ def project_data
+ owner = project.owner
+
+ {
+ name: project.name,
+ path: project.path,
+ path_with_namespace: project.full_path,
+ project_id: project.id,
+ owner_name: owner.name,
+ owner_email: owner.respond_to?(:email) ? owner.email : "",
+ project_visibility: project.visibility.downcase
+ }
+ end
+
+ def event_specific_project_data(event)
+ return {} unless event == :rename || event == :transfer
+
+ {
+ old_path_with_namespace: project.old_path_with_namespace
+ }
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/hook_data/user_builder.rb b/lib/gitlab/hook_data/user_builder.rb
index 537245e948f..54f03b863e5 100644
--- a/lib/gitlab/hook_data/user_builder.rb
+++ b/lib/gitlab/hook_data/user_builder.rb
@@ -50,4 +50,4 @@ module Gitlab
end
end
-Gitlab::HookData::UserBuilder.prepend_if_ee('EE::Gitlab::HookData::UserBuilder')
+Gitlab::HookData::UserBuilder.prepend_mod_with('Gitlab::HookData::UserBuilder')