summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2018-07-20 22:30:28 -0700
committerStan Hu <stanhu@gmail.com>2018-07-20 22:30:28 -0700
commit3fd704b239cbf008f48ca3ca2e6119ca993794b7 (patch)
treeb20828d5f1b6d00d54d0fe484e120d310cc2cf26
parent7c1aaf68f82f05fd34f567be2481b8283e3328c2 (diff)
downloadgitlab-ce-3fd704b239cbf008f48ca3ca2e6119ca993794b7.tar.gz
Add spec for BitBucketServer pull reuest parsing
-rw-r--r--lib/bitbucket_server/representation/pull_request.rb24
-rw-r--r--spec/fixtures/importers/bitbucket_server/pull_request.json146
2 files changed, 158 insertions, 12 deletions
diff --git a/lib/bitbucket_server/representation/pull_request.rb b/lib/bitbucket_server/representation/pull_request.rb
index 3e460f04064..344b6806a91 100644
--- a/lib/bitbucket_server/representation/pull_request.rb
+++ b/lib/bitbucket_server/representation/pull_request.rb
@@ -2,11 +2,11 @@ module BitbucketServer
module Representation
class PullRequest < Representation::Base
def author
- raw.fetch('author', {}).fetch('user', {}).fetch('name')
+ raw.dig('author', 'user', 'name')
end
def author_email
- raw.fetch('author', {}).fetch('user', {}).fetch('emailAddress')
+ raw.dig('author', 'user', 'emailAddress')
end
def description
@@ -32,11 +32,11 @@ module BitbucketServer
end
def created_at
- raw['createdDate']
+ Time.at(created_date / 1000) if created_date.is_a?(Integer)
end
def updated_at
- raw['updatedDate']
+ Time.at(updated_date / 1000) if created_date.is_a?(Integer)
end
def title
@@ -44,29 +44,29 @@ module BitbucketServer
end
def source_branch_name
- source_branch['id']
+ dig('fromRef', 'id')
end
def source_branch_sha
- source_branch['latestCommit']
+ dig('fromRef', 'latestCommit')
end
def target_branch_name
- target_branch['id']
+ dig('toRef', 'id')
end
def target_branch_sha
- target_branch['latestCommit']
+ dig('toRef', 'latestCommit')
end
private
- def source_branch
- raw['fromRef'] || {}
+ def created_date
+ raw['createdDate']
end
- def target_branch
- raw['toRef'] || {}
+ def updated_date
+ raw['updatedDate']
end
end
end
diff --git a/spec/fixtures/importers/bitbucket_server/pull_request.json b/spec/fixtures/importers/bitbucket_server/pull_request.json
new file mode 100644
index 00000000000..6c7fcf3b04c
--- /dev/null
+++ b/spec/fixtures/importers/bitbucket_server/pull_request.json
@@ -0,0 +1,146 @@
+{
+ "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
+}