diff --git a/src/main/scala/gitbucket/core/api/ApiRepository.scala b/src/main/scala/gitbucket/core/api/ApiRepository.scala index ee97ea3..dce8443 100644 --- a/src/main/scala/gitbucket/core/api/ApiRepository.scala +++ b/src/main/scala/gitbucket/core/api/ApiRepository.scala @@ -13,10 +13,14 @@ forks: Int, `private`: Boolean, default_branch: String, - owner: ApiUser) { + owner: ApiUser)(urlIsHtmlUrl: Boolean) { val forks_count = forks val watchers_count = watchers - val url = ApiPath(s"/api/v3/repos/${full_name}") + val url = if(urlIsHtmlUrl){ + ApiPath(s"/${full_name}") + }else{ + ApiPath(s"/api/v3/repos/${full_name}") + } val http_url = ApiPath(s"/git/${full_name}.git") val clone_url = ApiPath(s"/git/${full_name}.git") val html_url = ApiPath(s"/${full_name}") @@ -27,7 +31,8 @@ repository: Repository, owner: ApiUser, forkedCount: Int =0, - watchers: Int = 0): ApiRepository = + watchers: Int = 0, + urlIsHtmlUrl: Boolean = false): ApiRepository = ApiRepository( name = repository.repositoryName, full_name = s"${repository.userName}/${repository.repositoryName}", @@ -37,7 +42,7 @@ `private` = repository.isPrivate, default_branch = repository.defaultBranch, owner = owner - ) + )(urlIsHtmlUrl) def apply(repositoryInfo: RepositoryInfo, owner: ApiUser): ApiRepository = ApiRepository(repositoryInfo.repository, owner, forkedCount=repositoryInfo.forkedCount) @@ -45,4 +50,7 @@ def apply(repositoryInfo: RepositoryInfo, owner: Account): ApiRepository = this(repositoryInfo.repository, ApiUser(owner)) + def forPushPayload(repositoryInfo: RepositoryInfo, owner: ApiUser): ApiRepository = + ApiRepository(repositoryInfo.repository, owner, forkedCount=repositoryInfo.forkedCount, urlIsHtmlUrl=true) + } diff --git a/src/main/scala/gitbucket/core/service/WebHookService.scala b/src/main/scala/gitbucket/core/service/WebHookService.scala index e5436f6..2b18cae 100644 --- a/src/main/scala/gitbucket/core/service/WebHookService.scala +++ b/src/main/scala/gitbucket/core/service/WebHookService.scala @@ -217,10 +217,9 @@ before = ObjectId.toString(oldId), after = ObjectId.toString(newId), commits = commits.map{ commit => ApiPushCommit(git, RepositoryName(repositoryInfo), commit) }, - repository = ApiRepository( + repository = ApiRepository.forPushPayload( repositoryInfo, - owner= ApiUser(repositoryOwner) - ) + owner= ApiUser(repositoryOwner)) ) } diff --git a/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala b/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala index f3a2f97..590180d 100644 --- a/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala +++ b/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala @@ -45,7 +45,7 @@ forks = 0, `private` = false, default_branch = "master", - owner = apiUser) + owner = apiUser)(urlIsHtmlUrl = false) val repositoryJson = s"""{ "name" : "Hello-World", "full_name" : "octocat/Hello-World",