diff --git a/doc/api/groups.md b/doc/api/groups.md index 1454946eb2fedc536d6ac65a1fc365f70e06654d..0c7914b7362f9993af36110b828a50e50336b3c4 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 7f7c68b6f09384b7f4a6c9107db27f1c1c957607..d087489608da5a88d4141fde1af5dfb5369dabe2 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 0bb3776890ebdc506846dfda0a5c2ed094fe9b20..b4810b83d039f61de0456ee1ed9fcbb204860989 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 ceb297ba7d3dc965ae017a3bd3a8d4a0ad53890f..6b3a4825967572814c4aed9108395d398292e460 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 f953ffc353977de150857ef073f7666e39450ffd..befb98d647763e3ce77bec8e760ba369090612cd 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 eea739a19f3557be471a796a9800ff73109fa8b1..42edb8f2f3990f56d8aa148be5bffa3ce32085b4 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