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
This commit is contained in:
commit
42607a7f17
4 changed files with 35 additions and 7 deletions
|
@ -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
|
||||||
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
|
||||||
},
|
},
|
||||||
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
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"total_commits_count": 4
|
"total_commits_count": 4
|
||||||
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -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
|
||||||
"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
|
||||||
|
|
||||||
**Request body:**
|
**Request body:**
|
||||||
|
|
||||||
```
|
```json
|
||||||
{
|
{
|
||||||
"object_kind": "note",
|
"object_kind": "note",
|
||||||
"user": {
|
"user": {
|
||||||
|
@ -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
|
||||||
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
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue