mirror of
https://github.com/gitbucket/gitbucket.git
synced 2026-05-07 20:07:30 +02:00
(refs #1271)Add merged_by property
This commit is contained in:
@@ -17,6 +17,7 @@ case class ApiPullRequest(
|
||||
mergeable: Option[Boolean],
|
||||
merged: Boolean,
|
||||
merged_at: Option[Date],
|
||||
merged_by: Option[ApiUser],
|
||||
title: String,
|
||||
body: String,
|
||||
user: ApiUser) {
|
||||
@@ -34,22 +35,27 @@ case class ApiPullRequest(
|
||||
|
||||
object ApiPullRequest{
|
||||
def apply(issue: Issue, pullRequest: PullRequest, headRepo: ApiRepository, baseRepo: ApiRepository, user: ApiUser,
|
||||
/*mergeable: Boolean,*/ merged: Boolean, mergedAt: Option[Date]): ApiPullRequest =
|
||||
/*mergeable: Boolean,*/ merged: Boolean, mergedAt: Option[Date], mergedBy: Option[ApiUser]): ApiPullRequest =
|
||||
ApiPullRequest(
|
||||
number = issue.issueId,
|
||||
updated_at = issue.updatedDate,
|
||||
created_at = issue.registeredDate,
|
||||
head = Commit(
|
||||
sha = pullRequest.commitIdTo,
|
||||
ref = pullRequest.requestBranch,
|
||||
repo = headRepo)(issue.userName),
|
||||
sha = pullRequest.commitIdTo,
|
||||
ref = pullRequest.requestBranch,
|
||||
repo = headRepo,
|
||||
baseOwner = issue.userName
|
||||
),
|
||||
base = Commit(
|
||||
sha = pullRequest.commitIdFrom,
|
||||
ref = pullRequest.branch,
|
||||
repo = baseRepo)(issue.userName),
|
||||
sha = pullRequest.commitIdFrom,
|
||||
ref = pullRequest.branch,
|
||||
repo = baseRepo,
|
||||
baseOwner = issue.userName
|
||||
),
|
||||
mergeable = None, // TODO: need check mergeable.
|
||||
merged = merged,
|
||||
merged_at = mergedAt,
|
||||
merged_by = mergedBy,
|
||||
title = issue.title,
|
||||
body = issue.content.getOrElse(""),
|
||||
user = user
|
||||
@@ -58,7 +64,8 @@ object ApiPullRequest{
|
||||
case class Commit(
|
||||
sha: String,
|
||||
ref: String,
|
||||
repo: ApiRepository)(baseOwner:String){
|
||||
repo: ApiRepository,
|
||||
baseOwner:String){
|
||||
val label = if( baseOwner == repo.owner.login ){ ref }else{ s"${repo.owner.login}:${ref}" }
|
||||
val user = repo.owner
|
||||
}
|
||||
|
||||
@@ -407,7 +407,7 @@ trait ApiControllerBase extends ControllerBase {
|
||||
|
||||
|
||||
JsonFormat(issues.map { case (issue, issueUser, commentCount, pullRequest, headRepo, headOwner) =>
|
||||
val comments = getCommentsForApi(repository.owner, repository.name, issue.issueId)
|
||||
val mergedComment = getMergedComment(getCommentsForApi(repository.owner, repository.name, issue.issueId))
|
||||
|
||||
ApiPullRequest(
|
||||
issue = issue,
|
||||
@@ -415,8 +415,9 @@ trait ApiControllerBase extends ControllerBase {
|
||||
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 }
|
||||
merged = mergedComment.isDefined,
|
||||
mergedAt = mergedComment.map { case (comment, _) => comment.registeredDate },
|
||||
mergedBy = mergedComment.map { case (_, account) => ApiUser(account) }
|
||||
)
|
||||
})
|
||||
})
|
||||
@@ -434,7 +435,7 @@ trait ApiControllerBase extends ControllerBase {
|
||||
issueUser <- users.get(issue.openedUserName)
|
||||
headRepo <- getRepository(pullRequest.requestUserName, pullRequest.requestRepositoryName)
|
||||
} yield {
|
||||
val comments = getCommentsForApi(repository.owner, repository.name, issueId)
|
||||
val mergedComment = getMergedComment(getCommentsForApi(repository.owner, repository.name, issue.issueId))
|
||||
|
||||
JsonFormat(ApiPullRequest(
|
||||
issue = issue,
|
||||
@@ -442,8 +443,9 @@ trait ApiControllerBase extends ControllerBase {
|
||||
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 }
|
||||
merged = mergedComment.isDefined,
|
||||
mergedAt = mergedComment.map { case (comment, _) => comment.registeredDate },
|
||||
mergedBy = mergedComment.map { case (_, account) => ApiUser(account) }
|
||||
))
|
||||
}) getOrElse NotFound()
|
||||
})
|
||||
|
||||
@@ -34,6 +34,10 @@ trait IssuesService {
|
||||
.map{ case ((t1, t2), t3) => (t1, t2, t3) }
|
||||
.list
|
||||
|
||||
def getMergedComment(comments: List[(IssueComment, Account, Issue)]): Option[(IssueComment, Account)] = {
|
||||
comments.collectFirst { case (comment, account, _) if comment.action == "merged" => (comment, account) }
|
||||
}
|
||||
|
||||
def getComment(owner: String, repository: String, commentId: String)(implicit s: Session) =
|
||||
if (commentId forall (_.isDigit))
|
||||
IssueComments filter { t =>
|
||||
|
||||
@@ -192,7 +192,7 @@ trait WebHookPullRequestService extends WebHookService {
|
||||
issueUser <- users.get(issue.openedUserName)
|
||||
headRepo <- getRepository(pullRequest.requestUserName, pullRequest.requestRepositoryName)
|
||||
} yield {
|
||||
val comments = getCommentsForApi(repository.owner, repository.name, issueId)
|
||||
val mergedComment = getMergedComment(getCommentsForApi(repository.owner, repository.name, issueId))
|
||||
|
||||
WebHookPullRequestPayload(
|
||||
action = action,
|
||||
@@ -204,8 +204,9 @@ trait WebHookPullRequestService extends WebHookService {
|
||||
baseRepository = repository,
|
||||
baseOwner = baseOwner,
|
||||
sender = sender,
|
||||
merged = comments.exists { case (comment, _, _) => comment.action == "merged" },
|
||||
mergedAt = comments.collectFirst { case (comment, _, _) if(comment.action == "merged") => comment.registeredDate }
|
||||
merged = mergedComment.isDefined,
|
||||
mergedAt = mergedComment.map { case (comment, _) => comment.registeredDate },
|
||||
mergedBy = mergedComment.map { case (_, account) => ApiUser(account) }
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -236,7 +237,7 @@ 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 mergedComment = getMergedComment(getCommentsForApi(baseRepo.owner, baseRepo.name, issue.issueId))
|
||||
|
||||
val payload = WebHookPullRequestPayload(
|
||||
action = action,
|
||||
@@ -248,8 +249,9 @@ trait WebHookPullRequestService extends WebHookService {
|
||||
baseRepository = baseRepo,
|
||||
baseOwner = baseOwner,
|
||||
sender = sender,
|
||||
merged = comments.exists { case (comment, _, _) => comment.action == "merged" },
|
||||
mergedAt = comments.collectFirst { case (comment, _, _) if(comment.action == "merged") => comment.registeredDate }
|
||||
merged = mergedComment.isDefined,
|
||||
mergedAt = mergedComment.map { case (comment, _) => comment.registeredDate },
|
||||
mergedBy = mergedComment.map { case (_, account) => ApiUser(account) }
|
||||
)
|
||||
|
||||
callWebHook(WebHook.PullRequest, webHooks, payload)
|
||||
@@ -271,7 +273,7 @@ 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)
|
||||
val mergedComment = getMergedComment(getCommentsForApi(repository.owner, repository.name, issue.issueId))
|
||||
|
||||
WebHookPullRequestReviewCommentPayload(
|
||||
action = action,
|
||||
@@ -284,8 +286,9 @@ trait WebHookPullRequestReviewCommentService extends WebHookService {
|
||||
baseRepository = repository,
|
||||
baseOwner = baseOwner,
|
||||
sender = sender,
|
||||
merged = comments.exists { case (comment, _, _) => comment.action == "merged" },
|
||||
mergedAt = comments.collectFirst { case (comment, _, _) if(comment.action == "merged") => comment.registeredDate }
|
||||
merged = mergedComment.isDefined,
|
||||
mergedAt = mergedComment.map { case (comment, _) => comment.registeredDate },
|
||||
mergedBy = mergedComment.map { case (_, account) => ApiUser(account) }
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -386,11 +389,22 @@ object WebHookService {
|
||||
baseOwner: Account,
|
||||
sender: Account,
|
||||
merged: Boolean,
|
||||
mergedAt: Option[Date]): WebHookPullRequestPayload = {
|
||||
mergedAt: Option[Date],
|
||||
mergedBy: Option[ApiUser]): WebHookPullRequestPayload = {
|
||||
|
||||
val headRepoPayload = ApiRepository(headRepository, headOwner)
|
||||
val baseRepoPayload = ApiRepository(baseRepository, baseOwner)
|
||||
val senderPayload = ApiUser(sender)
|
||||
val pr = ApiPullRequest(issue, pullRequest, headRepoPayload, baseRepoPayload, ApiUser(issueUser), merged, mergedAt)
|
||||
val pr = ApiPullRequest(
|
||||
issue = issue,
|
||||
pullRequest = pullRequest,
|
||||
headRepo = headRepoPayload,
|
||||
baseRepo = baseRepoPayload,
|
||||
user = ApiUser(issueUser),
|
||||
merged = merged,
|
||||
mergedAt = mergedAt,
|
||||
mergedBy = mergedBy
|
||||
)
|
||||
|
||||
WebHookPullRequestPayload(
|
||||
action = action,
|
||||
@@ -450,7 +464,8 @@ object WebHookService {
|
||||
baseOwner: Account,
|
||||
sender: Account,
|
||||
merged: Boolean,
|
||||
mergedAt: Option[Date]
|
||||
mergedAt: Option[Date],
|
||||
mergedBy: Option[ApiUser]
|
||||
) : WebHookPullRequestReviewCommentPayload = {
|
||||
val headRepoPayload = ApiRepository(headRepository, headOwner)
|
||||
val baseRepoPayload = ApiRepository(baseRepository, baseOwner)
|
||||
@@ -471,7 +486,8 @@ object WebHookService {
|
||||
baseRepo = baseRepoPayload,
|
||||
user = ApiUser(issueUser),
|
||||
merged = merged,
|
||||
mergedAt = mergedAt
|
||||
mergedAt = mergedAt,
|
||||
mergedBy = mergedBy
|
||||
),
|
||||
repository = baseRepoPayload,
|
||||
sender = senderPayload)
|
||||
|
||||
Reference in New Issue
Block a user