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
- Improved performance of the trending projects page
- Remove CI migration task
- 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 build trace updating
- Include full path of source and target branch names in New Merge Request page (Stan Hu)
......
......@@ -126,7 +126,7 @@ module Issuable
end
def to_hook_data(user)
{
hook_data = {
object_kind: self.class.name.underscore,
user: user.hook_attrs,
repository: {
......@@ -137,6 +137,9 @@ module Issuable
},
object_attributes: hook_attrs
}
hook_data.merge!(assignee: assignee.hook_attrs) if assignee
hook_data
end
def label_names
......
......@@ -76,7 +76,6 @@ X-Gitlab-Event: Push Hook
}
],
"total_commits_count": 4
}
```
......@@ -158,6 +157,11 @@ X-Gitlab-Event: Issue Hook
"iid": 23,
"url": "http://example.com/diaspora/issues/23",
"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
"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
**Request body:**
```
```json
{
"object_kind": "note",
"user": {
......@@ -510,7 +519,12 @@ X-Gitlab-Event: Merge Request Hook
},
"work_in_progress": false,
"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
expect(hook_data[:repository][:description]).to eq(issue.project.description)
expect(hook_data[:repository][:homepage]).to eq(issue.project.web_url)
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
......
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