From 2235dab550c9b05f57eb6d1107d6e43d9f3a11e3 Mon Sep 17 00:00:00 2001 From: takezoe Date: Sat, 26 Oct 2013 01:40:26 +0900 Subject: [PATCH] (refs #174)Fix commit hook for DELETE command. --- src/main/scala/service/ActivityService.scala | 19 ++++++++++++++++-- .../scala/servlet/GitRepositoryServlet.scala | 13 +++++++----- src/main/twirl/helper/activities.scala.html | 2 ++ .../assets/common/images/activity-delete.png | Bin 0 -> 419 bytes 4 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 src/main/webapp/assets/common/images/activity-delete.png diff --git a/src/main/scala/service/ActivityService.scala b/src/main/scala/service/ActivityService.scala index b6074887f..fce0b095b 100644 --- a/src/main/scala/service/ActivityService.scala +++ b/src/main/scala/service/ActivityService.scala @@ -109,11 +109,26 @@ trait ActivityService { s"[user:${activityUserName}] created tag [tag:${userName}/${repositoryName}#${tagName}] at [repo:${userName}/${repositoryName}]", None, currentDate) - + + def recordDeleteTagActivity(userName: String, repositoryName: String, activityUserName: String, + tagName: String, commits: List[util.JGitUtil.CommitInfo]) = + Activities.autoInc insert(userName, repositoryName, activityUserName, + "delete_tag", + s"[user:${activityUserName}] deleted tag ${tagName} at [repo:${userName}/${repositoryName}]", + None, + currentDate) + def recordCreateBranchActivity(userName: String, repositoryName: String, activityUserName: String, branchName: String) = Activities.autoInc insert(userName, repositoryName, activityUserName, "create_branch", - s"[user:${activityUserName}] created branch [tag:${userName}/${repositoryName}#${branchName}] at [repo:${userName}/${repositoryName}]", + s"[user:${activityUserName}] created branch [branch:${userName}/${repositoryName}#${branchName}] at [repo:${userName}/${repositoryName}]", + None, + currentDate) + + def recordDeleteBranchActivity(userName: String, repositoryName: String, activityUserName: String, branchName: String) = + Activities.autoInc insert(userName, repositoryName, activityUserName, + "delete_branch", + s"[user:${activityUserName}] deleted branch ${branchName} at [repo:${userName}/${repositoryName}]", None, currentDate) diff --git a/src/main/scala/servlet/GitRepositoryServlet.scala b/src/main/scala/servlet/GitRepositoryServlet.scala index c25a786eb..f97632024 100644 --- a/src/main/scala/servlet/GitRepositoryServlet.scala +++ b/src/main/scala/servlet/GitRepositoryServlet.scala @@ -85,7 +85,11 @@ class CommitLogHook(owner: String, repository: String, userName: String, baseURL def onPostReceive(receivePack: ReceivePack, commands: java.util.Collection[ReceiveCommand]): Unit = { using(Git.open(Directory.getRepositoryDir(owner, repository))) { git => commands.asScala.foreach { command => - val commits = JGitUtil.getCommitLog(git, command.getOldId.name, command.getNewId.name) + logger.debug(s"commandType: ${command.getType}, refName: ${command.getRefName}") + val commits = command.getType match { + case ReceiveCommand.Type.DELETE => Nil + case _ => JGitUtil.getCommitLog(git, command.getOldId.name, command.getNewId.name) + } val refName = command.getRefName.split("/") val branchName = refName.drop(2).mkString("/") @@ -113,16 +117,15 @@ class CommitLogHook(owner: String, repository: String, userName: String, baseURL // record activity if(refName(1) == "heads"){ command.getType match { - case ReceiveCommand.Type.CREATE => { - recordCreateBranchActivity(owner, repository, userName, branchName) - recordPushActivity(owner, repository, userName, branchName, newCommits) - } + case ReceiveCommand.Type.CREATE => recordCreateBranchActivity(owner, repository, userName, branchName) case ReceiveCommand.Type.UPDATE => recordPushActivity(owner, repository, userName, branchName, newCommits) + case ReceiveCommand.Type.DELETE => recordDeleteBranchActivity(owner, repository, userName, branchName) case _ => } } else if(refName(1) == "tags"){ command.getType match { case ReceiveCommand.Type.CREATE => recordCreateTagActivity(owner, repository, userName, branchName, newCommits) + case ReceiveCommand.Type.DELETE => recordDeleteTagActivity(owner, repository, userName, branchName, newCommits) case _ => } } diff --git a/src/main/twirl/helper/activities.scala.html b/src/main/twirl/helper/activities.scala.html index 15c8cdc86..6e7f324c2 100644 --- a/src/main/twirl/helper/activities.scala.html +++ b/src/main/twirl/helper/activities.scala.html @@ -16,7 +16,9 @@ case "merge_pullreq" => detailActivity(activity, "activity-merge.png") case "create_repository" => simpleActivity(activity, "activity-create-repository.png") case "create_branch" => simpleActivity(activity, "activity-branch.png") + case "delete_branch" => simpleActivity(activity, "activity-delete.png") case "create_tag" => simpleActivity(activity, "activity-tag.png") + case "delete_tag" => simpleActivity(activity, "activity-delete.png") case "fork" => simpleActivity(activity, "activity-fork.png") case "push" => customActivity(activity, "activity-commit.png"){
diff --git a/src/main/webapp/assets/common/images/activity-delete.png b/src/main/webapp/assets/common/images/activity-delete.png new file mode 100644 index 0000000000000000000000000000000000000000..4ad4b6416d7213fdf5593416096b603e94d88a7c GIT binary patch literal 419 zcmV;U0bKrxP)u|2t}_MM)PVpL!`R%akApLXhlkcD|ZJnTInky4S2Vd(F&Nk4ofu?)&~= zFtBaA)oKlg!`Wi7GX%jNMMMNy1KBkdK7#o{TzH%_SiF8q$`^-3GU z#$L18grn$^a}-52Hhvt(5jL&Q=X3c{%mj6<{C>Z0x7$)Uj$@F+;lQ!i>nRyXm7S)k zG|GH7n~i{U%n@8M@2X(C-I9Q9n&xh|d*dGgZE-J-LD%cGtb!_8meovx<6qH-jEs;L zyWK91YcmLffD{{4Y@WNM@PFH2^vo2Kq@IgICv4YsZ@1fDcBj)Jnd literal 0 HcmV?d00001