Commit 42607a7f authored by Robert Speicher's avatar Robert Speicher

Merge branch 'brammeleman/3047-add-assignee-data-to-isuable-hook-data' into 'master'

Add assignee data to Issuables' hook_data

Originally opened at !1633 by @brammeleman.

Fixes #3047. Fixes #2475.

See merge request !2724
parents 51998fdd d146d9fd
...@@ -387,6 +387,7 @@ v 8.1.0 ...@@ -387,6 +387,7 @@ v 8.1.0
- Improved performance of the trending projects page - Improved performance of the trending projects page
- Remove CI migration task - Remove CI migration task
- Improved performance of finding projects by their namespace - Improved performance of finding projects by their namespace
- Add assignee data to Issuables' hook_data (Bram Daams)
- Fix bug where transferring a project would result in stale commit links (Stan Hu) - Fix bug where transferring a project would result in stale commit links (Stan Hu)
- Fix build trace updating - Fix build trace updating
- Include full path of source and target branch names in New Merge Request page (Stan Hu) - Include full path of source and target branch names in New Merge Request page (Stan Hu)
......
...@@ -126,7 +126,7 @@ module Issuable ...@@ -126,7 +126,7 @@ module Issuable
end end
def to_hook_data(user) def to_hook_data(user)
{ hook_data = {
object_kind: self.class.name.underscore, object_kind: self.class.name.underscore,
user: user.hook_attrs, user: user.hook_attrs,
repository: { repository: {
...@@ -137,6 +137,9 @@ module Issuable ...@@ -137,6 +137,9 @@ module Issuable
}, },
object_attributes: hook_attrs object_attributes: hook_attrs
} }
hook_data.merge!(assignee: assignee.hook_attrs) if assignee
hook_data
end end
def label_names def label_names
......
...@@ -76,7 +76,6 @@ X-Gitlab-Event: Push Hook ...@@ -76,7 +76,6 @@ X-Gitlab-Event: Push Hook
} }
], ],
"total_commits_count": 4 "total_commits_count": 4
} }
``` ```
...@@ -158,6 +157,11 @@ X-Gitlab-Event: Issue Hook ...@@ -158,6 +157,11 @@ X-Gitlab-Event: Issue Hook
"iid": 23, "iid": 23,
"url": "http://example.com/diaspora/issues/23", "url": "http://example.com/diaspora/issues/23",
"action": "open" "action": "open"
},
"assignee": {
"name": "User1",
"username": "user1",
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=40\u0026d=identicon"
} }
} }
``` ```
...@@ -322,7 +326,12 @@ X-Gitlab-Event: Note Hook ...@@ -322,7 +326,12 @@ X-Gitlab-Event: Note Hook
"email": "john@example.com" "email": "john@example.com"
} }
}, },
"work_in_progress": false "work_in_progress": false,
"assignee": {
"name": "User1",
"username": "user1",
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=40\u0026d=identicon"
}
} }
} }
``` ```
...@@ -397,7 +406,7 @@ X-Gitlab-Event: Note Hook ...@@ -397,7 +406,7 @@ X-Gitlab-Event: Note Hook
**Request body:** **Request body:**
``` ```json
{ {
"object_kind": "note", "object_kind": "note",
"user": { "user": {
...@@ -510,7 +519,12 @@ X-Gitlab-Event: Merge Request Hook ...@@ -510,7 +519,12 @@ X-Gitlab-Event: Merge Request Hook
}, },
"work_in_progress": false, "work_in_progress": false,
"url": "http://example.com/diaspora/merge_requests/1", "url": "http://example.com/diaspora/merge_requests/1",
"action": "open" "action": "open",
"assignee": {
"name": "User1",
"username": "user1",
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=40\u0026d=identicon"
}
} }
} }
``` ```
......
...@@ -79,6 +79,16 @@ describe Issue, "Issuable" do ...@@ -79,6 +79,16 @@ describe Issue, "Issuable" do
expect(hook_data[:repository][:description]).to eq(issue.project.description) expect(hook_data[:repository][:description]).to eq(issue.project.description)
expect(hook_data[:repository][:homepage]).to eq(issue.project.web_url) expect(hook_data[:repository][:homepage]).to eq(issue.project.web_url)
expect(hook_data[:object_attributes]).to eq(issue.hook_attrs) expect(hook_data[:object_attributes]).to eq(issue.hook_attrs)
expect(hook_data).to_not have_key(:assignee)
end
context "issue is assigned" do
before { issue.update_attribute(:assignee, user) }
it "returns correct hook data" do
expect(hook_data[:object_attributes]['assignee_id']).to eq(user.id)
expect(hook_data[:assignee]).to eq(user.hook_attrs)
end
end end
end end
......
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