Commit 3fd704b2 authored by Stan Hu's avatar Stan Hu

Add spec for BitBucketServer pull reuest parsing

parent 7c1aaf68
...@@ -2,11 +2,11 @@ module BitbucketServer ...@@ -2,11 +2,11 @@ module BitbucketServer
module Representation module Representation
class PullRequest < Representation::Base class PullRequest < Representation::Base
def author def author
raw.fetch('author', {}).fetch('user', {}).fetch('name') raw.dig('author', 'user', 'name')
end end
def author_email def author_email
raw.fetch('author', {}).fetch('user', {}).fetch('emailAddress') raw.dig('author', 'user', 'emailAddress')
end end
def description def description
...@@ -32,11 +32,11 @@ module BitbucketServer ...@@ -32,11 +32,11 @@ module BitbucketServer
end end
def created_at def created_at
raw['createdDate'] Time.at(created_date / 1000) if created_date.is_a?(Integer)
end end
def updated_at def updated_at
raw['updatedDate'] Time.at(updated_date / 1000) if created_date.is_a?(Integer)
end end
def title def title
...@@ -44,29 +44,29 @@ module BitbucketServer ...@@ -44,29 +44,29 @@ module BitbucketServer
end end
def source_branch_name def source_branch_name
source_branch['id'] dig('fromRef', 'id')
end end
def source_branch_sha def source_branch_sha
source_branch['latestCommit'] dig('fromRef', 'latestCommit')
end end
def target_branch_name def target_branch_name
target_branch['id'] dig('toRef', 'id')
end end
def target_branch_sha def target_branch_sha
target_branch['latestCommit'] dig('toRef', 'latestCommit')
end end
private private
def source_branch def created_date
raw['fromRef'] || {} raw['createdDate']
end end
def target_branch def updated_date
raw['toRef'] || {} raw['updatedDate']
end end
end end
end end
......
{
"author":{
"approved":false,
"role":"AUTHOR",
"status":"UNAPPROVED",
"user":{
"active":true,
"displayName":"root",
"emailAddress":"joe.montana@49ers.com",
"id":1,
"links":{
"self":[
{
"href":"http://localhost:7990/users/root"
}
]
},
"name":"root",
"slug":"root",
"type":"NORMAL"
}
},
"closed":true,
"closedDate":1530600648850,
"createdDate":1530600635690,
"description":"Test",
"fromRef":{
"displayId":"root/CODE_OF_CONDUCTmd-1530600625006",
"id":"refs/heads/root/CODE_OF_CONDUCTmd-1530600625006",
"latestCommit":"074e2b4dddc5b99df1bf9d4a3f66cfc15481fdc8",
"repository":{
"forkable":true,
"id":1,
"links":{
"clone":[
{
"href":"http://root@localhost:7990/scm/test/rouge.git",
"name":"http"
},
{
"href":"ssh://git@localhost:7999/test/rouge.git",
"name":"ssh"
}
],
"self":[
{
"href":"http://localhost:7990/projects/TEST/repos/rouge/browse"
}
]
},
"name":"rouge",
"project":{
"description":"Test",
"id":1,
"key":"TEST",
"links":{
"self":[
{
"href":"http://localhost:7990/projects/TEST"
}
]
},
"name":"test",
"public":false,
"type":"NORMAL"
},
"public":false,
"scmId":"git",
"slug":"rouge",
"state":"AVAILABLE",
"statusMessage":"Available"
}
},
"id":7,
"links":{
"self":[
{
"href":"http://localhost:7990/projects/TEST/repos/rouge/pull-requests/7"
}
]
},
"locked":false,
"open":false,
"participants":[
],
"properties":{
"commentCount":1,
"openTaskCount":0,
"resolvedTaskCount":0
},
"reviewers":[
],
"state":"MERGED",
"title":"Added a new line",
"toRef":{
"displayId":"master",
"id":"refs/heads/master",
"latestCommit":"839fa9a2d434eb697815b8fcafaecc51accfdbbc",
"repository":{
"forkable":true,
"id":1,
"links":{
"clone":[
{
"href":"http://root@localhost:7990/scm/test/rouge.git",
"name":"http"
},
{
"href":"ssh://git@localhost:7999/test/rouge.git",
"name":"ssh"
}
],
"self":[
{
"href":"http://localhost:7990/projects/TEST/repos/rouge/browse"
}
]
},
"name":"rouge",
"project":{
"description":"Test",
"id":1,
"key":"TEST",
"links":{
"self":[
{
"href":"http://localhost:7990/projects/TEST"
}
]
},
"name":"test",
"public":false,
"type":"NORMAL"
},
"public":false,
"scmId":"git",
"slug":"rouge",
"state":"AVAILABLE",
"statusMessage":"Available"
}
},
"updatedDate":1530600648850,
"version":2
}
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