diff --git a/app/models/concerns/issuable.rb b/app/models/concerns/issuable.rb index 3b2c6a178e74834d26006c61c7efd388fb68917d..91f4eb13eccf77abd3567f2d4e93d73da78d2858 100644 --- a/app/models/concerns/issuable.rb +++ b/app/models/concerns/issuable.rb @@ -261,6 +261,7 @@ module Issuable user: user.hook_attrs, project: project.hook_attrs, object_attributes: hook_attrs, + labels: labels.map(&:hook_attrs), # DEPRECATED repository: project.hook_attrs.slice(:name, :url, :description, :homepage) } diff --git a/app/models/label.rb b/app/models/label.rb index f68a8c9cff2d7e38d78dfdea4d4ecfc5ed1bf12d..568fa6d44f520fd80c9c4e464a577681b873212c 100644 --- a/app/models/label.rb +++ b/app/models/label.rb @@ -169,6 +169,10 @@ class Label < ActiveRecord::Base end end + def hook_attrs + attributes + end + private def issues_count(user, params = {}) diff --git a/changelogs/unreleased/add-labels-to-issue-hook.yml b/changelogs/unreleased/add-labels-to-issue-hook.yml new file mode 100644 index 0000000000000000000000000000000000000000..967430ee09f9bb33a9ee35869971c921fccecafd --- /dev/null +++ b/changelogs/unreleased/add-labels-to-issue-hook.yml @@ -0,0 +1,4 @@ +--- +title: Added labels array to the issue web hook returned object +merge_request: 9972 +author: diff --git a/doc/user/project/integrations/webhooks.md b/doc/user/project/integrations/webhooks.md index ed1e867f5fb52ac7767ef8a6c6a47a679992e3a2..dbdc93a77a8eb93a9a2ed727bd0abfafd0d14d30 100644 --- a/doc/user/project/integrations/webhooks.md +++ b/doc/user/project/integrations/webhooks.md @@ -250,7 +250,19 @@ X-Gitlab-Event: Issue Hook "name": "User1", "username": "user1", "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=40\u0026d=identicon" - } + }, + "labels": [{ + "id": 206, + "title": "API", + "color": "#ffffff", + "project_id": 14, + "created_at": "2013-12-03T17:15:43Z", + "updated_at": "2013-12-03T17:15:43Z", + "template": false, + "description": "API related issues", + "type": "ProjectLabel", + "group_id": 41 + }] } ``` ### Comment events diff --git a/spec/models/concerns/issuable_spec.rb b/spec/models/concerns/issuable_spec.rb index 31ae0dce1404acef7c87553d68bc935452b41f4c..9574796a9455cd7bccfbf07565079853323394ca 100644 --- a/spec/models/concerns/issuable_spec.rb +++ b/spec/models/concerns/issuable_spec.rb @@ -278,6 +278,16 @@ describe Issue, "Issuable" do end end + context 'issue has labels' do + let(:labels) { [create(:label), create(:label)] } + + before { issue.update_attribute(:labels, labels)} + + it 'includes labels in the hook data' do + expect(data[:labels]).to eq(labels.map(&:hook_attrs)) + end + end + include_examples 'project hook data' include_examples 'deprecated repository hook data' end