Commit bf2d029a authored by Stan Hu's avatar Stan Hu

Add spec for pull request activity

parent e47cf67e
...@@ -3,16 +3,12 @@ ...@@ -3,16 +3,12 @@
module BitbucketServer module BitbucketServer
module Representation module Representation
class Activity < Representation::Base class Activity < Representation::Base
def action
raw['action']
end
def comment? def comment?
action == 'COMMENTED' action == 'COMMENTED'
end end
def inline_comment? def inline_comment?
comment? && comment_anchor !!(comment? && comment_anchor)
end end
def comment def comment
...@@ -26,57 +22,41 @@ module BitbucketServer ...@@ -26,57 +22,41 @@ module BitbucketServer
end end
end end
# XXX Move this into MergeEvent # TODO Move this into MergeEvent
def merge_event? def merge_event?
action == 'MERGED' action == 'MERGED'
end end
def committer_user def committer_user
commit.fetch('committer', {})['displayName'] raw.dig('commit', 'committer', 'displayName')
end end
def committer_email def committer_email
commit.fetch('committer', {})['emailAddress'] raw.dig('commit', 'committer', 'emailAddress')
end end
def merge_timestamp def merge_timestamp
timestamp = commit.fetch('committer', {})['commiterTimestamp'] timestamp = raw.dig('commit', 'committerTimestamp')
Time.at(timestamp / 1000.0) if timestamp.is_a?(Integer) Time.at(timestamp / 1000.0) if timestamp.is_a?(Integer)
end end
def commit
raw.fetch('commit', {})
end
def created_at def created_at
Time.at(created_date / 1000) if created_date.is_a?(Integer) Time.at(created_date / 1000) if created_date.is_a?(Integer)
end end
def updated_at
Time.at(updated_date / 1000) if created_date.is_a?(Integer)
end
private private
def raw_comment def action
raw.fetch('comment', {}) raw['action']
end end
def comment_anchor def comment_anchor
raw['commentAnchor'] raw['commentAnchor']
end end
def author
raw_comment.fetch('author', {})
end
def created_date def created_date
comment['createdDate'] raw.dig('createdDate')
end
def updated_date
comment['updatedDate']
end end
end end
end end
......
{
"isLastPage": true,
"limit": 25,
"size": 8,
"start": 0,
"values": [
{
"action": "COMMENTED",
"comment": {
"author": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
},
"comments": [
{
"author": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
},
"comments": [
{
"author": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
},
"comments": [],
"createdDate": 1530164016725,
"id": 11,
"permittedOperations": {
"deletable": true,
"editable": true
},
"properties": {
"repositoryId": 1
},
"tasks": [
{
"anchor": {
"author": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
},
"createdDate": 1530164016725,
"id": 11,
"permittedOperations": {
"deletable": true,
"editable": true
},
"properties": {
"repositoryId": 1
},
"text": "Ok",
"type": "COMMENT",
"updatedDate": 1530164016725,
"version": 0
},
"author": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
},
"createdDate": 1530164026000,
"id": 1,
"permittedOperations": {
"deletable": true,
"editable": true,
"transitionable": true
},
"state": "OPEN",
"text": "here's a task"
}
],
"text": "Ok",
"updatedDate": 1530164016725,
"version": 0
},
{
"author": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
},
"comments": [],
"createdDate": 1530165543990,
"id": 12,
"permittedOperations": {
"deletable": true,
"editable": true
},
"properties": {
"repositoryId": 1
},
"tasks": [],
"text": "hi",
"updatedDate": 1530165543990,
"version": 0
}
],
"createdDate": 1530164013718,
"id": 10,
"permittedOperations": {
"deletable": true,
"editable": true
},
"properties": {
"repositoryId": 1
},
"tasks": [],
"text": "Hello world",
"updatedDate": 1530164013718,
"version": 0
},
{
"author": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
},
"comments": [],
"createdDate": 1530165549932,
"id": 13,
"permittedOperations": {
"deletable": true,
"editable": true
},
"properties": {
"repositoryId": 1
},
"tasks": [],
"text": "hello",
"updatedDate": 1530165549932,
"version": 0
}
],
"createdDate": 1530161499144,
"id": 9,
"permittedOperations": {
"deletable": true,
"editable": true
},
"properties": {
"repositoryId": 1
},
"tasks": [],
"text": "is this a new line?",
"updatedDate": 1530161499144,
"version": 0
},
"commentAction": "ADDED",
"commentAnchor": {
"diffType": "EFFECTIVE",
"fileType": "TO",
"fromHash": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
"line": 1,
"lineType": "ADDED",
"orphaned": false,
"path": "CHANGELOG.md",
"toHash": "a4c2164330f2549f67c13f36a93884cf66e976be"
},
"createdDate": 1530161499144,
"diff": {
"destination": {
"components": [
"CHANGELOG.md"
],
"extension": "md",
"name": "CHANGELOG.md",
"parent": "",
"toString": "CHANGELOG.md"
},
"hunks": [
{
"destinationLine": 1,
"destinationSpan": 11,
"segments": [
{
"lines": [
{
"commentIds": [
9
],
"destination": 1,
"line": "# Edit 1",
"source": 1,
"truncated": false
},
{
"destination": 2,
"line": "",
"source": 1,
"truncated": false
}
],
"truncated": false,
"type": "ADDED"
},
{
"lines": [
{
"destination": 3,
"line": "# ChangeLog",
"source": 1,
"truncated": false
},
{
"destination": 4,
"line": "",
"source": 2,
"truncated": false
},
{
"destination": 5,
"line": "This log summarizes the changes in each released version of rouge. The versioning scheme",
"source": 3,
"truncated": false
},
{
"destination": 6,
"line": "we use is semver, although we will often release new lexers in minor versions, as a",
"source": 4,
"truncated": false
},
{
"destination": 7,
"line": "practical matter.",
"source": 5,
"truncated": false
},
{
"destination": 8,
"line": "",
"source": 6,
"truncated": false
},
{
"destination": 9,
"line": "## version TBD: (unreleased)",
"source": 7,
"truncated": false
},
{
"destination": 10,
"line": "",
"source": 8,
"truncated": false
},
{
"destination": 11,
"line": "* General",
"source": 9,
"truncated": false
}
],
"truncated": false,
"type": "CONTEXT"
}
],
"sourceLine": 1,
"sourceSpan": 9,
"truncated": false
}
],
"properties": {
"current": true,
"fromHash": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
"toHash": "a4c2164330f2549f67c13f36a93884cf66e976be"
},
"source": null,
"truncated": false
},
"id": 19,
"user": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
}
},
{
"action": "COMMENTED",
"comment": {
"author": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
},
"comments": [],
"createdDate": 1530053198463,
"id": 7,
"permittedOperations": {
"deletable": true,
"editable": true
},
"properties": {
"repositoryId": 1
},
"tasks": [],
"text": "What about this line?",
"updatedDate": 1530053198463,
"version": 0
},
"commentAction": "ADDED",
"commentAnchor": {
"diffType": "EFFECTIVE",
"fileType": "FROM",
"fromHash": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
"line": 9,
"lineType": "CONTEXT",
"orphaned": false,
"path": "CHANGELOG.md",
"toHash": "a4c2164330f2549f67c13f36a93884cf66e976be"
},
"createdDate": 1530053198463,
"diff": {
"destination": {
"components": [
"CHANGELOG.md"
],
"extension": "md",
"name": "CHANGELOG.md",
"parent": "",
"toString": "CHANGELOG.md"
},
"hunks": [
{
"destinationLine": 1,
"destinationSpan": 12,
"segments": [
{
"lines": [
{
"destination": 1,
"line": "# Edit 1",
"source": 1,
"truncated": false
},
{
"destination": 2,
"line": "",
"source": 1,
"truncated": false
}
],
"truncated": false,
"type": "ADDED"
},
{
"lines": [
{
"destination": 3,
"line": "# ChangeLog",
"source": 1,
"truncated": false
},
{
"destination": 4,
"line": "",
"source": 2,
"truncated": false
},
{
"destination": 5,
"line": "This log summarizes the changes in each released version of rouge. The versioning scheme",
"source": 3,
"truncated": false
},
{
"destination": 6,
"line": "we use is semver, although we will often release new lexers in minor versions, as a",
"source": 4,
"truncated": false
},
{
"destination": 7,
"line": "practical matter.",
"source": 5,
"truncated": false
},
{
"destination": 8,
"line": "",
"source": 6,
"truncated": false
},
{
"destination": 9,
"line": "## version TBD: (unreleased)",
"source": 7,
"truncated": false
},
{
"destination": 10,
"line": "",
"source": 8,
"truncated": false
},
{
"commentIds": [
7
],
"destination": 11,
"line": "* General",
"source": 9,
"truncated": false
},
{
"destination": 12,
"line": " * Load pastie theme ([#809](https://github.com/jneen/rouge/pull/809) by rramsden)",
"source": 10,
"truncated": false
}
],
"truncated": false,
"type": "CONTEXT"
}
],
"sourceLine": 1,
"sourceSpan": 10,
"truncated": false
}
],
"properties": {
"current": true,
"fromHash": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
"toHash": "a4c2164330f2549f67c13f36a93884cf66e976be"
},
"source": null,
"truncated": false
},
"id": 14,
"user": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
}
},
{
"action": "COMMENTED",
"comment": {
"author": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
},
"comments": [
{
"author": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
},
"comments": [
{
"author": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
},
"comments": [],
"createdDate": 1530143330513,
"id": 8,
"permittedOperations": {
"deletable": true,
"editable": true
},
"properties": {
"repositoryId": 1
},
"tasks": [],
"text": "How about this?",
"updatedDate": 1530143330513,
"version": 0
}
],
"createdDate": 1530053193795,
"id": 6,
"permittedOperations": {
"deletable": true,
"editable": true
},
"properties": {
"repositoryId": 1
},
"tasks": [],
"text": "It does.",
"updatedDate": 1530053193795,
"version": 0
}
],
"createdDate": 1530053187904,
"id": 5,
"permittedOperations": {
"deletable": true,
"editable": true
},
"properties": {
"repositoryId": 1
},
"tasks": [],
"text": "Does this line make sense?",
"updatedDate": 1530053187904,
"version": 0
},
"commentAction": "ADDED",
"commentAnchor": {
"diffType": "EFFECTIVE",
"fileType": "FROM",
"fromHash": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
"line": 3,
"lineType": "CONTEXT",
"orphaned": false,
"path": "CHANGELOG.md",
"toHash": "a4c2164330f2549f67c13f36a93884cf66e976be"
},
"createdDate": 1530053187904,
"diff": {
"destination": {
"components": [
"CHANGELOG.md"
],
"extension": "md",
"name": "CHANGELOG.md",
"parent": "",
"toString": "CHANGELOG.md"
},
"hunks": [
{
"destinationLine": 1,
"destinationSpan": 12,
"segments": [
{
"lines": [
{
"destination": 1,
"line": "# Edit 1",
"source": 1,
"truncated": false
},
{
"destination": 2,
"line": "",
"source": 1,
"truncated": false
}
],
"truncated": false,
"type": "ADDED"
},
{
"lines": [
{
"destination": 3,
"line": "# ChangeLog",
"source": 1,
"truncated": false
},
{
"destination": 4,
"line": "",
"source": 2,
"truncated": false
},
{
"commentIds": [
5
],
"destination": 5,
"line": "This log summarizes the changes in each released version of rouge. The versioning scheme",
"source": 3,
"truncated": false
},
{
"destination": 6,
"line": "we use is semver, although we will often release new lexers in minor versions, as a",
"source": 4,
"truncated": false
},
{
"destination": 7,
"line": "practical matter.",
"source": 5,
"truncated": false
},
{
"destination": 8,
"line": "",
"source": 6,
"truncated": false
},
{
"destination": 9,
"line": "## version TBD: (unreleased)",
"source": 7,
"truncated": false
},
{
"destination": 10,
"line": "",
"source": 8,
"truncated": false
},
{
"destination": 11,
"line": "* General",
"source": 9,
"truncated": false
},
{
"destination": 12,
"line": " * Load pastie theme ([#809](https://github.com/jneen/rouge/pull/809) by rramsden)",
"source": 10,
"truncated": false
}
],
"truncated": false,
"type": "CONTEXT"
}
],
"sourceLine": 1,
"sourceSpan": 10,
"truncated": false
}
],
"properties": {
"current": true,
"fromHash": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
"toHash": "a4c2164330f2549f67c13f36a93884cf66e976be"
},
"source": null,
"truncated": false
},
"id": 12,
"user": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
}
},
{
"action": "COMMENTED",
"comment": {
"author": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
},
"comments": [],
"createdDate": 1529813304164,
"id": 4,
"permittedOperations": {
"deletable": true,
"editable": true
},
"properties": {
"repositoryId": 1
},
"tasks": [],
"text": "Hello world",
"updatedDate": 1529813304164,
"version": 0
},
"commentAction": "ADDED",
"createdDate": 1529813304164,
"id": 11,
"user": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
}
},
{
"action": "MERGED",
"commit": {
"author": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
},
"authorTimestamp": 1529727872000,
"committer": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
},
"committerTimestamp": 1529727872000,
"displayId": "839fa9a2d43",
"id": "839fa9a2d434eb697815b8fcafaecc51accfdbbc",
"message": "Merge pull request #1 in TEST/rouge from root/CHANGELOGmd-1529725646923 to master\n\n* commit '66fbe6a097803f0acb7342b19563f710657ce5a2':\n CHANGELOG.md edited online with Bitbucket",
"parents": [
{
"author": {
"emailAddress": "dblessing@users.noreply.github.com",
"name": "Drew Blessing"
},
"authorTimestamp": 1529604583000,
"committer": {
"emailAddress": "noreply@github.com",
"name": "GitHub"
},
"committerTimestamp": 1529604583000,
"displayId": "c5f4288162e",
"id": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
"message": "Merge pull request #949 from jneen/dblessing-patch-1\n\nAdd 'obj-c', 'obj_c' as ObjectiveC aliases",
"parents": [
{
"displayId": "ea7675f741e",
"id": "ea7675f741ee28f3f177ff32a9bde192742ffc59"
},
{
"displayId": "386b95a977b",
"id": "386b95a977b331e267497aa5206861774656f0c5"
}
]
},
{
"author": {
"emailAddress": "test.user@example.com",
"name": "root"
},
"authorTimestamp": 1529725651000,
"committer": {
"emailAddress": "test.user@example.com",
"name": "root"
},
"committerTimestamp": 1529725651000,
"displayId": "66fbe6a0978",
"id": "66fbe6a097803f0acb7342b19563f710657ce5a2",
"message": "CHANGELOG.md edited online with Bitbucket",
"parents": [
{
"displayId": "c5f4288162e",
"id": "c5f4288162e2e6218180779c7f6ac1735bb56eab"
}
]
}
]
},
"createdDate": 1529727872302,
"id": 7,
"user": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
}
},
{
"action": "COMMENTED",
"comment": {
"author": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
},
"comments": [
{
"author": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
},
"comments": [],
"createdDate": 1529813297478,
"id": 3,
"permittedOperations": {
"deletable": true,
"editable": true
},
"properties": {
"repositoryId": 1
},
"tasks": [],
"text": "This is a thread",
"updatedDate": 1529813297478,
"version": 0
}
],
"createdDate": 1529725692591,
"id": 2,
"permittedOperations": {
"deletable": true,
"editable": true
},
"properties": {
"repositoryId": 1
},
"tasks": [],
"text": "What about this?",
"updatedDate": 1529725692591,
"version": 0
},
"commentAction": "ADDED",
"createdDate": 1529725692591,
"id": 6,
"user": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
}
},
{
"action": "COMMENTED",
"comment": {
"author": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
},
"comments": [],
"createdDate": 1529725685910,
"id": 1,
"permittedOperations": {
"deletable": true,
"editable": true
},
"properties": {
"repositoryId": 1
},
"tasks": [],
"text": "This is a test.\n\n[analyze.json](attachment:1/1f32f09d97%2Fanalyze.json)\n",
"updatedDate": 1529725685910,
"version": 0
},
"commentAction": "ADDED",
"createdDate": 1529725685910,
"id": 5,
"user": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
}
},
{
"action": "OPENED",
"createdDate": 1529725657542,
"id": 4,
"user": {
"active": true,
"displayName": "root",
"emailAddress": "test.user@example.com",
"id": 1,
"links": {
"self": [
{
"href": "http://localhost:7990/users/root"
}
]
},
"name": "root",
"slug": "root",
"type": "NORMAL"
}
}
]
}
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