From 0c68b38f53c2d9a656cd00d8899b9e715a3d3674 Mon Sep 17 00:00:00 2001 From: Ivan Sebastian <ivantedja@gmail.com> Date: Mon, 8 Apr 2024 16:54:09 +0000 Subject: [PATCH] Add "member_events" group hook to be set via REST API --- doc/api/groups.md | 3 +++ ee/lib/api/group_hooks.rb | 1 + ee/lib/ee/api/entities/group_hook.rb | 1 + ee/spec/factories/group_hooks.rb | 1 + ee/spec/fixtures/api/schemas/public_api/v4/group_hook.json | 4 ++++ ee/spec/requests/api/group_hooks_spec.rb | 1 + 6 files changed, 11 insertions(+) diff --git a/doc/api/groups.md b/doc/api/groups.md index 1454946eb2fed..0c7914b7362f9 100644 --- a/doc/api/groups.md +++ b/doc/api/groups.md @@ -1597,6 +1597,7 @@ GET /groups/:id/hooks/:hook_id "deployment_events": true, "releases_events": true, "subgroup_events": true, + "member_events": true, "enable_ssl_verification": true, "repository_update_events": false, "alert_status": "executable", @@ -1634,6 +1635,7 @@ POST /groups/:id/hooks | `deployment_events` | boolean | no | Trigger hook on deployment events | | `releases_events` | boolean | no | Trigger hook on release events | | `subgroup_events` | boolean | no | Trigger hook on subgroup events | +| `member_events` | boolean | no | Trigger hook on member events | | `enable_ssl_verification` | boolean | no | Do SSL verification when triggering the hook | | `token` | string | no | Secret token to validate received payloads; not returned in the response | | `resource_access_token_events` | boolean | no | Trigger hook on project access token expiry events. | @@ -1666,6 +1668,7 @@ PUT /groups/:id/hooks/:hook_id | `deployment_events` | boolean | no | Trigger hook on deployment events. | | `releases_events` | boolean | no | Trigger hook on release events. | | `subgroup_events` | boolean | no | Trigger hook on subgroup events. | +| `member_events` | boolean | no | Trigger hook on member events. | | `enable_ssl_verification` | boolean | no | Do SSL verification when triggering the hook. | | `service_access_tokens_expiration_enforced` | boolean | no | Require service account access tokens to have an expiration date. | | `token` | string | no | Secret token to validate received payloads. Not returned in the response. When you change the webhook URL, the secret token is reset and not retained. | diff --git a/ee/lib/api/group_hooks.rb b/ee/lib/api/group_hooks.rb index 7f7c68b6f0938..d087489608da5 100644 --- a/ee/lib/api/group_hooks.rb +++ b/ee/lib/api/group_hooks.rb @@ -35,6 +35,7 @@ def hook_scope optional :subgroup_events, type: Boolean, desc: "Trigger hook on subgroup events" optional :emoji_events, type: Boolean, desc: "Trigger hook on emoji events" optional :resource_access_token_events, type: Boolean, desc: "Trigger hook on group access token expiry events" + optional :member_events, type: Boolean, desc: "Trigger hook on member events" optional :enable_ssl_verification, type: Boolean, desc: "Do SSL verification when triggering the hook" optional :token, type: String, desc: "Secret token to validate received payloads; this will not be returned in the response" optional :custom_webhook_template, type: String, desc: "Custom template for the request payload" diff --git a/ee/lib/ee/api/entities/group_hook.rb b/ee/lib/ee/api/entities/group_hook.rb index 0bb3776890ebd..b4810b83d039f 100644 --- a/ee/lib/ee/api/entities/group_hook.rb +++ b/ee/lib/ee/api/entities/group_hook.rb @@ -18,6 +18,7 @@ class GroupHook < ::API::Entities::Hook expose :push_events_branch_filter, documentation: { type: 'string', example: 'my-branch-*' } expose :emoji_events, documentation: { type: 'boolean' } expose :resource_access_token_events, documentation: { type: 'boolean' } + expose :member_events, documentation: { type: 'boolean' } end end end diff --git a/ee/spec/factories/group_hooks.rb b/ee/spec/factories/group_hooks.rb index ceb297ba7d3dc..6b3a482596757 100644 --- a/ee/spec/factories/group_hooks.rb +++ b/ee/spec/factories/group_hooks.rb @@ -21,6 +21,7 @@ subgroup_events { true } emoji_events { true } resource_access_token_events { true } + member_events { true } end end end diff --git a/ee/spec/fixtures/api/schemas/public_api/v4/group_hook.json b/ee/spec/fixtures/api/schemas/public_api/v4/group_hook.json index f953ffc353977..befb98d647763 100644 --- a/ee/spec/fixtures/api/schemas/public_api/v4/group_hook.json +++ b/ee/spec/fixtures/api/schemas/public_api/v4/group_hook.json @@ -22,6 +22,7 @@ "releases_events", "subgroup_events", "emoji_events", + "member_events", "alert_status", "disabled_until", "url_variables", @@ -105,6 +106,9 @@ "resource_access_token_events": { "type": "boolean" }, + "member_events": { + "type": "boolean" + }, "alert_status": { "type": "string", "enum": [ diff --git a/ee/spec/requests/api/group_hooks_spec.rb b/ee/spec/requests/api/group_hooks_spec.rb index eea739a19f355..42edb8f2f3990 100644 --- a/ee/spec/requests/api/group_hooks_spec.rb +++ b/ee/spec/requests/api/group_hooks_spec.rb @@ -59,6 +59,7 @@ def event_names subgroup_events emoji_events resource_access_token_events + member_events ] end -- GitLab