Extract project from GIT git-uplod-pack and git-receive-pack
This commits fixes a bug where gerrit project was not extracted from
git-upload-pack and git-receive-pack GIT commands.
Change-Id: I43f93b870203d6b318be754ce3d9ba087c1decf0
diff --git a/auditlog/src/main/scala/com/gerritforge/analytics/auditlog/broadcast/GerritProjects.scala b/auditlog/src/main/scala/com/gerritforge/analytics/auditlog/broadcast/GerritProjects.scala
index cbb72ac..6f428e2 100644
--- a/auditlog/src/main/scala/com/gerritforge/analytics/auditlog/broadcast/GerritProjects.scala
+++ b/auditlog/src/main/scala/com/gerritforge/analytics/auditlog/broadcast/GerritProjects.scala
@@ -75,6 +75,7 @@
.map(URLDecoder.decode(_, "UTF-8"))
case "GIT" =>
extractGroup(PROJECT_HTTP_PACK_INFO_REF, what)
+ .orElse(extractGroup(PROJECT_SSH_PACK, what))
.orElse(extractGroup(PROJECT_HTTP_PACK, what))
.flatMap(findProjectStringAtEnd(_, '/'))
case unexpected =>
diff --git a/auditlog/src/test/scala/com/gerritforge/analytics/auditlog/broadcast/GerritProjectsSpec.scala b/auditlog/src/test/scala/com/gerritforge/analytics/auditlog/broadcast/GerritProjectsSpec.scala
index 57598e4..aed1980 100644
--- a/auditlog/src/test/scala/com/gerritforge/analytics/auditlog/broadcast/GerritProjectsSpec.scala
+++ b/auditlog/src/test/scala/com/gerritforge/analytics/auditlog/broadcast/GerritProjectsSpec.scala
@@ -199,6 +199,18 @@
existingProjects.extractProject(what, accessPath) should contain(project)
}
+ it should "extract a project from an SSH upload pack command" in {
+ val project = "cbdr/Gjallarhorn"
+ val what = s"git-upload-pack./$project"
+ val accessPath = "GIT"
+
+ val existingProjects = GerritProjects(Map(
+ project -> GerritProject(project)
+ ))
+
+ existingProjects.extractProject(what, accessPath) should contain(project)
+ }
+
it should "extract the project from an info ref receive pack target" in {
val project = "dushyantRathore/Jenkins_Test"
val what = s"https://review.gerrithub.io/$project/info/refs?service=git-receive-pack"