From b1d4a18c9bbf889d7384f4eb684e48f963aceae2 Mon Sep 17 00:00:00 2001 From: Naoki Takezoe Date: Thu, 19 Dec 2024 15:19:42 +0900 Subject: [PATCH] Fix ref and ssh_url in WebHook payloads (#3656) --- src/main/scala/gitbucket/core/api/ApiRepository.scala | 2 +- .../core/controller/RepositoryViewerController.scala | 6 +++--- .../gitbucket/core/service/SystemSettingsService.scala | 2 +- .../scala/gitbucket/core/servlet/GitRepositoryServlet.scala | 2 +- src/main/scala/gitbucket/core/ssh/GitCommand.scala | 2 +- .../gitbucket/core/service/SystemSettingsServiceSpec.scala | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/scala/gitbucket/core/api/ApiRepository.scala b/src/main/scala/gitbucket/core/api/ApiRepository.scala index e03c59f9b..3f287281a 100644 --- a/src/main/scala/gitbucket/core/api/ApiRepository.scala +++ b/src/main/scala/gitbucket/core/api/ApiRepository.scala @@ -21,7 +21,7 @@ case class ApiRepository( val url = ApiPath(s"/api/v3/repos/${full_name}") val clone_url = ApiPath(s"/git/${full_name}.git") val html_url = ApiPath(s"/${full_name}") - val ssh_url = Some(SshPath("")) + val ssh_url = Some(SshPath(s"/${full_name}.git")) } object ApiRepository { diff --git a/src/main/scala/gitbucket/core/controller/RepositoryViewerController.scala b/src/main/scala/gitbucket/core/controller/RepositoryViewerController.scala index 3cf7e8bfe..c21d42809 100644 --- a/src/main/scala/gitbucket/core/controller/RepositoryViewerController.scala +++ b/src/main/scala/gitbucket/core/controller/RepositoryViewerController.scala @@ -629,7 +629,7 @@ trait RepositoryViewerControllerBase extends ControllerBase { sender, repository, owner, - ref = newBranchName, + ref = s"refs/heads/${newBranchName}", refType = "branch" ) } @@ -1017,7 +1017,7 @@ trait RepositoryViewerControllerBase extends ControllerBase { WebHookPushPayload( git, pusherAccount, - newBranchName, + s"refs/heads/${newBranchName}", repository, List(), ownerAccount, @@ -1036,7 +1036,7 @@ trait RepositoryViewerControllerBase extends ControllerBase { sender, repository, owner, - ref = newBranchName, + ref = s"refs/heads/${newBranchName}", refType = "branch" ) } diff --git a/src/main/scala/gitbucket/core/service/SystemSettingsService.scala b/src/main/scala/gitbucket/core/service/SystemSettingsService.scala index 17b9f0301..f3c275196 100644 --- a/src/main/scala/gitbucket/core/service/SystemSettingsService.scala +++ b/src/main/scala/gitbucket/core/service/SystemSettingsService.scala @@ -373,7 +373,7 @@ object SystemSettingsService { if (isDefaultPort) { s"${genericUser}@${host}" } else { - s"${genericUser}@${host}:${port}" + s"ssh://${genericUser}@${host}:${port}" } def getUrl(owner: String, name: String): String = diff --git a/src/main/scala/gitbucket/core/servlet/GitRepositoryServlet.scala b/src/main/scala/gitbucket/core/servlet/GitRepositoryServlet.scala index 772dcd684..f6c143b70 100644 --- a/src/main/scala/gitbucket/core/servlet/GitRepositoryServlet.scala +++ b/src/main/scala/gitbucket/core/servlet/GitRepositoryServlet.scala @@ -204,7 +204,7 @@ class GitBucketReceivePackFactory extends ReceivePackFactory[HttpServletRequest] val settings = loadSystemSettings() val baseUrl = settings.baseUrl(request) - val sshUrl = settings.sshUrl(owner, repository) + val sshUrl = settings.sshUrl if (!repository.endsWith(".wiki")) { val hook = new CommitLogHook(owner, repository, pusher, baseUrl, sshUrl) diff --git a/src/main/scala/gitbucket/core/ssh/GitCommand.scala b/src/main/scala/gitbucket/core/ssh/GitCommand.scala index 8628b383d..32f3b2552 100644 --- a/src/main/scala/gitbucket/core/ssh/GitCommand.scala +++ b/src/main/scala/gitbucket/core/ssh/GitCommand.scala @@ -183,7 +183,7 @@ class DefaultGitReceivePack(owner: String, repoName: String, baseUrl: String, ss val receive = new ReceivePack(repository) if (!repoName.endsWith(".wiki")) { val hook = - new CommitLogHook(owner, repoName, userName(authType), baseUrl, Some(sshAddress.getUrl(owner, repoName))) + new CommitLogHook(owner, repoName, userName(authType), baseUrl, Some(sshAddress.getUrl)) receive.setPreReceiveHook(hook) receive.setPostReceiveHook(hook) } diff --git a/src/test/scala/gitbucket/core/service/SystemSettingsServiceSpec.scala b/src/test/scala/gitbucket/core/service/SystemSettingsServiceSpec.scala index a48be8a3e..15e4e68fa 100644 --- a/src/test/scala/gitbucket/core/service/SystemSettingsServiceSpec.scala +++ b/src/test/scala/gitbucket/core/service/SystemSettingsServiceSpec.scala @@ -90,7 +90,7 @@ class SystemSettingsServiceSpec extends AnyWordSpecLike with Matchers { "getUrl" which { "returns the port number when not using port 22" in new MockContext { override val port = 8022 - sshAddress.getUrl shouldBe "git@code.these.solutions:8022" + sshAddress.getUrl shouldBe "ssh://git@code.these.solutions:8022" } "leaves off the port number when using port 22" in new MockContext { override val port = 22