in auditlog/src/main/scala/com/gerritforge/analytics/auditlog/broadcast/GerritProjects.scala [85:110]
def extractProject(what: String, accessPath: String): Option[String] = accessPath match {
case _ if matches(NO_PROJECT_RELATED_COMMANDS, what) =>
None
case "SSH_COMMAND" =>
extractGroup(PROJECT_SSH_WITH_SPACES, what)
.orElse(extractGroup(PROJECT_SSH_WITH_BRACKETS, what))
.orElse(extractGroup(PROJECT_SSH_PACK, what))
.orElse(extractGroup(PROJECT_SSH_REPLICATION_START, what))
.orElse(extractGroup(PROJECT_SSH_NO_SPACES, what).flatMap(findProjectStringAtStart(_)))
.orElse(findProjectStringAtStart(what))
.orElse(findProjectStringAtEnd(what))
case "REST_API" | "UNKNOWN" =>
extractGroup(PROJECT_REST_API_CHANGES_SEGMENT, what)
.orElse(extractGroup(PROJECT_REST_API_PROJECTS_SEGMENT, what))
.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 =>
logger.warn(
s"Unexpected access path '$unexpected' encountered when extracting project from '$what'"
)
None
}