mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-15 09:55:49 +01:00
(refs #1271)Add some properties to ApiPullRequest model
This commit is contained in:
@@ -15,6 +15,8 @@ case class ApiPullRequest(
|
||||
head: ApiPullRequest.Commit,
|
||||
base: ApiPullRequest.Commit,
|
||||
mergeable: Option[Boolean],
|
||||
merged: Boolean,
|
||||
merged_at: Option[Date],
|
||||
title: String,
|
||||
body: String,
|
||||
user: ApiUser) {
|
||||
@@ -31,7 +33,8 @@ case class ApiPullRequest(
|
||||
}
|
||||
|
||||
object ApiPullRequest{
|
||||
def apply(issue: Issue, pullRequest: PullRequest, headRepo: ApiRepository, baseRepo: ApiRepository, user: ApiUser): ApiPullRequest =
|
||||
def apply(issue: Issue, pullRequest: PullRequest, headRepo: ApiRepository, baseRepo: ApiRepository, user: ApiUser,
|
||||
/*mergeable: Boolean,*/ merged: Boolean, mergedAt: Option[Date]): ApiPullRequest =
|
||||
ApiPullRequest(
|
||||
number = issue.issueId,
|
||||
updated_at = issue.updatedDate,
|
||||
@@ -45,6 +48,8 @@ object ApiPullRequest{
|
||||
ref = pullRequest.branch,
|
||||
repo = baseRepo)(issue.userName),
|
||||
mergeable = None, // TODO: need check mergeable.
|
||||
merged = merged,
|
||||
merged_at = mergedAt,
|
||||
title = issue.title,
|
||||
body = issue.content.getOrElse(""),
|
||||
user = user
|
||||
|
||||
@@ -405,13 +405,18 @@ trait ApiControllerBase extends ControllerBase {
|
||||
repos = repository.owner -> repository.name
|
||||
)
|
||||
|
||||
|
||||
JsonFormat(issues.map { case (issue, issueUser, commentCount, pullRequest, headRepo, headOwner) =>
|
||||
val comments = getCommentsForApi(repository.owner, repository.name, issue.issueId)
|
||||
|
||||
ApiPullRequest(
|
||||
issue,
|
||||
pullRequest,
|
||||
ApiRepository(headRepo, ApiUser(headOwner)),
|
||||
ApiRepository(repository, ApiUser(baseOwner)),
|
||||
ApiUser(issueUser)
|
||||
issue = issue,
|
||||
pullRequest = pullRequest,
|
||||
headRepo = ApiRepository(headRepo, ApiUser(headOwner)),
|
||||
baseRepo = ApiRepository(repository, ApiUser(baseOwner)),
|
||||
user = ApiUser(issueUser),
|
||||
merged = comments.exists { case (comment, _, _) => comment.action == "merged" },
|
||||
mergedAt = comments.collectFirst { case (comment, _, _) if(comment.action == "merged") => comment.registeredDate }
|
||||
)
|
||||
})
|
||||
})
|
||||
@@ -429,12 +434,17 @@ trait ApiControllerBase extends ControllerBase {
|
||||
issueUser <- users.get(issue.openedUserName)
|
||||
headRepo <- getRepository(pullRequest.requestUserName, pullRequest.requestRepositoryName)
|
||||
} yield {
|
||||
val comments = getCommentsForApi(repository.owner, repository.name, issueId)
|
||||
|
||||
JsonFormat(ApiPullRequest(
|
||||
issue,
|
||||
pullRequest,
|
||||
ApiRepository(headRepo, ApiUser(headOwner)),
|
||||
ApiRepository(repository, ApiUser(baseOwner)),
|
||||
ApiUser(issueUser)))
|
||||
issue = issue,
|
||||
pullRequest = pullRequest,
|
||||
headRepo = ApiRepository(headRepo, ApiUser(headOwner)),
|
||||
baseRepo = ApiRepository(repository, ApiUser(baseOwner)),
|
||||
user = ApiUser(issueUser),
|
||||
merged = comments.exists { case (comment, _, _) => comment.action == "merged" },
|
||||
mergedAt = comments.collectFirst { case (comment, _, _) if(comment.action == "merged") => comment.registeredDate }
|
||||
))
|
||||
}) getOrElse NotFound()
|
||||
})
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package gitbucket.core.service
|
||||
|
||||
import java.util.Date
|
||||
|
||||
import fr.brouillard.oss.security.xhub.XHub
|
||||
import fr.brouillard.oss.security.xhub.XHub.{XHubDigest, XHubConverter}
|
||||
import fr.brouillard.oss.security.xhub.XHub.{XHubConverter, XHubDigest}
|
||||
import gitbucket.core.api._
|
||||
import gitbucket.core.model.{WebHook, Account, Issue, PullRequest, IssueComment, WebHookEvent, CommitComment}
|
||||
import gitbucket.core.model.{Account, CommitComment, Issue, IssueComment, PullRequest, WebHook, WebHookEvent}
|
||||
import gitbucket.core.model.Profile._
|
||||
import org.apache.http.client.utils.URLEncodedUtils
|
||||
import profile.simple._
|
||||
@@ -16,6 +18,7 @@ import org.apache.http.message.BasicNameValuePair
|
||||
import org.eclipse.jgit.api.Git
|
||||
import org.eclipse.jgit.lib.ObjectId
|
||||
import org.slf4j.LoggerFactory
|
||||
|
||||
import scala.concurrent._
|
||||
import org.apache.http.HttpRequest
|
||||
import org.apache.http.HttpResponse
|
||||
@@ -189,6 +192,8 @@ trait WebHookPullRequestService extends WebHookService {
|
||||
issueUser <- users.get(issue.openedUserName)
|
||||
headRepo <- getRepository(pullRequest.requestUserName, pullRequest.requestRepositoryName)
|
||||
} yield {
|
||||
val comments = getCommentsForApi(repository.owner, repository.name, issueId)
|
||||
|
||||
WebHookPullRequestPayload(
|
||||
action = action,
|
||||
issue = issue,
|
||||
@@ -198,7 +203,10 @@ trait WebHookPullRequestService extends WebHookService {
|
||||
headOwner = headOwner,
|
||||
baseRepository = repository,
|
||||
baseOwner = baseOwner,
|
||||
sender = sender)
|
||||
sender = sender,
|
||||
merged = comments.exists { case (comment, _, _) => comment.action == "merged" },
|
||||
mergedAt = comments.collectFirst { case (comment, _, _) if(comment.action == "merged") => comment.registeredDate }
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -228,6 +236,8 @@ trait WebHookPullRequestService extends WebHookService {
|
||||
((issue, issueUser, pullRequest, baseOwner, headOwner), webHooks) <- getPullRequestsByRequestForWebhook(requestRepository.owner, requestRepository.name, requestBranch)
|
||||
baseRepo <- getRepository(pullRequest.userName, pullRequest.repositoryName)
|
||||
} yield {
|
||||
val comments = getCommentsForApi(baseRepo.owner, baseRepo.name, issue.issueId)
|
||||
|
||||
val payload = WebHookPullRequestPayload(
|
||||
action = action,
|
||||
issue = issue,
|
||||
@@ -237,7 +247,11 @@ trait WebHookPullRequestService extends WebHookService {
|
||||
headOwner = headOwner,
|
||||
baseRepository = baseRepo,
|
||||
baseOwner = baseOwner,
|
||||
sender = sender)
|
||||
sender = sender,
|
||||
merged = comments.exists { case (comment, _, _) => comment.action == "merged" },
|
||||
mergedAt = comments.collectFirst { case (comment, _, _) if(comment.action == "merged") => comment.registeredDate }
|
||||
)
|
||||
|
||||
callWebHook(WebHook.PullRequest, webHooks, payload)
|
||||
}
|
||||
}
|
||||
@@ -257,6 +271,8 @@ trait WebHookPullRequestReviewCommentService extends WebHookService {
|
||||
issueUser <- users.get(issue.openedUserName)
|
||||
headRepo <- getRepository(pullRequest.requestUserName, pullRequest.requestRepositoryName)
|
||||
} yield {
|
||||
val comments = getCommentsForApi(repository.owner, repository.name, issue.issueId)
|
||||
|
||||
WebHookPullRequestReviewCommentPayload(
|
||||
action = action,
|
||||
comment = comment,
|
||||
@@ -267,7 +283,10 @@ trait WebHookPullRequestReviewCommentService extends WebHookService {
|
||||
headOwner = headOwner,
|
||||
baseRepository = repository,
|
||||
baseOwner = baseOwner,
|
||||
sender = sender)
|
||||
sender = sender,
|
||||
merged = comments.exists { case (comment, _, _) => comment.action == "merged" },
|
||||
mergedAt = comments.collectFirst { case (comment, _, _) if(comment.action == "merged") => comment.registeredDate }
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -365,11 +384,14 @@ object WebHookService {
|
||||
headOwner: Account,
|
||||
baseRepository: RepositoryInfo,
|
||||
baseOwner: Account,
|
||||
sender: Account): WebHookPullRequestPayload = {
|
||||
sender: Account,
|
||||
merged: Boolean,
|
||||
mergedAt: Option[Date]): WebHookPullRequestPayload = {
|
||||
val headRepoPayload = ApiRepository(headRepository, headOwner)
|
||||
val baseRepoPayload = ApiRepository(baseRepository, baseOwner)
|
||||
val senderPayload = ApiUser(sender)
|
||||
val pr = ApiPullRequest(issue, pullRequest, headRepoPayload, baseRepoPayload, ApiUser(issueUser))
|
||||
val pr = ApiPullRequest(issue, pullRequest, headRepoPayload, baseRepoPayload, ApiUser(issueUser), merged, mergedAt)
|
||||
|
||||
WebHookPullRequestPayload(
|
||||
action = action,
|
||||
number = issue.issueId,
|
||||
@@ -426,15 +448,31 @@ object WebHookService {
|
||||
headOwner: Account,
|
||||
baseRepository: RepositoryInfo,
|
||||
baseOwner: Account,
|
||||
sender: Account
|
||||
sender: Account,
|
||||
merged: Boolean,
|
||||
mergedAt: Option[Date]
|
||||
) : WebHookPullRequestReviewCommentPayload = {
|
||||
val headRepoPayload = ApiRepository(headRepository, headOwner)
|
||||
val baseRepoPayload = ApiRepository(baseRepository, baseOwner)
|
||||
val senderPayload = ApiUser(sender)
|
||||
|
||||
WebHookPullRequestReviewCommentPayload(
|
||||
action = action,
|
||||
comment = ApiPullRequestReviewComment(comment, senderPayload, RepositoryName(baseRepository), issue.issueId),
|
||||
pull_request = ApiPullRequest(issue, pullRequest, headRepoPayload, baseRepoPayload, ApiUser(issueUser)),
|
||||
comment = ApiPullRequestReviewComment(
|
||||
comment = comment,
|
||||
commentedUser = senderPayload,
|
||||
repositoryName = RepositoryName(baseRepository),
|
||||
issueId = issue.issueId
|
||||
),
|
||||
pull_request = ApiPullRequest(
|
||||
issue = issue,
|
||||
pullRequest = pullRequest,
|
||||
headRepo = headRepoPayload,
|
||||
baseRepo = baseRepoPayload,
|
||||
user = ApiUser(issueUser),
|
||||
merged = merged,
|
||||
mergedAt = mergedAt
|
||||
),
|
||||
repository = baseRepoPayload,
|
||||
sender = senderPayload)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user