diff --git a/src/main/scala/gitbucket/core/api/ApiIssue.scala b/src/main/scala/gitbucket/core/api/ApiIssue.scala index 7fef81b..45b5d62 100644 --- a/src/main/scala/gitbucket/core/api/ApiIssue.scala +++ b/src/main/scala/gitbucket/core/api/ApiIssue.scala @@ -1,6 +1,7 @@ package gitbucket.core.api import gitbucket.core.model.Issue +import gitbucket.core.util.RepositoryName import java.util.Date @@ -16,10 +17,13 @@ state: String, created_at: Date, updated_at: Date, - body: String) + body: String)(repositoryName: RepositoryName){ + val comments_url = ApiPath(s"/api/v3/repos/${repositoryName.fullName}/issues/${number}/comments") + val html_url = ApiPath(s"/${repositoryName.fullName}/issues/${number}") +} object ApiIssue{ - def apply(issue: Issue, user: ApiUser): ApiIssue = + def apply(issue: Issue, repositoryName: RepositoryName, user: ApiUser): ApiIssue = ApiIssue( number = issue.issueId, title = issue.title, @@ -27,5 +31,5 @@ state = if(issue.closed){ "closed" }else{ "open" }, body = issue.content.getOrElse(""), created_at = issue.registeredDate, - updated_at = issue.updatedDate) + updated_at = issue.updatedDate)(repositoryName) } diff --git a/src/main/scala/gitbucket/core/api/JsonFormat.scala b/src/main/scala/gitbucket/core/api/JsonFormat.scala index bcca2f1..33611fd 100644 --- a/src/main/scala/gitbucket/core/api/JsonFormat.scala +++ b/src/main/scala/gitbucket/core/api/JsonFormat.scala @@ -23,7 +23,7 @@ ) + FieldSerializer[ApiUser]() + FieldSerializer[ApiPullRequest]() + FieldSerializer[ApiRepository]() + FieldSerializer[ApiCommitListItem.Parent]() + FieldSerializer[ApiCommitListItem]() + FieldSerializer[ApiCommitListItem.Commit]() + FieldSerializer[ApiCommitStatus]() + FieldSerializer[ApiCommit]() + FieldSerializer[ApiCombinedCommitStatus]() + - FieldSerializer[ApiPullRequest.Commit]() + FieldSerializer[ApiPullRequest.Commit]() + FieldSerializer[ApiIssue]() def apiPathSerializer(c: Context) = new CustomSerializer[ApiPath](format => diff --git a/src/main/scala/gitbucket/core/service/WebHookService.scala b/src/main/scala/gitbucket/core/service/WebHookService.scala index 6e7bd63..05913fe 100644 --- a/src/main/scala/gitbucket/core/service/WebHookService.scala +++ b/src/main/scala/gitbucket/core/service/WebHookService.scala @@ -90,7 +90,7 @@ action = action, number = issue.issueId, repository = ApiRepository(repository, ApiUser(repoOwner)), - issue = ApiIssue(issue, ApiUser(issueUser)), + issue = ApiIssue(issue, RepositoryName(repository), ApiUser(issueUser)), sender = ApiUser(sender)) } } @@ -272,7 +272,7 @@ WebHookIssueCommentPayload( action = "created", repository = ApiRepository(repository, repositoryUser), - issue = ApiIssue(issue, ApiUser(issueUser)), + issue = ApiIssue(issue, RepositoryName(repository), ApiUser(issueUser)), comment = ApiComment(comment, ApiUser(commentUser)), sender = ApiUser(sender)) } diff --git a/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala b/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala index 73d4ef7..2116c3c 100644 --- a/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala +++ b/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala @@ -157,13 +157,15 @@ state = "open", body = "I'm having a problem with this.", created_at = date1, - updated_at = date1) + updated_at = date1)(RepositoryName("octocat","Hello-World")) val apiIssueJson = s"""{ "number": 1347, "state": "open", "title": "Found a bug", "body": "I'm having a problem with this.", "user": $apiUserJson, + "comments_url": "${context.baseUrl}/api/v3/repos/octocat/Hello-World/issues/1347/comments", + "html_url": "${context.baseUrl}/octocat/Hello-World/issues/1347", "created_at": "2011-04-14T16:00:49Z", "updated_at": "2011-04-14T16:00:49Z" }"""