diff --git a/src/main/scala/com/codacy/client/bitbucket/v2/service/RepositoryServices.scala b/src/main/scala/com/codacy/client/bitbucket/v2/service/RepositoryServices.scala index 87bd227..6511220 100644 --- a/src/main/scala/com/codacy/client/bitbucket/v2/service/RepositoryServices.scala +++ b/src/main/scala/com/codacy/client/bitbucket/v2/service/RepositoryServices.scala @@ -118,4 +118,24 @@ class RepositoryServices(client: BitbucketClient) { val encodedRepo = URLEncoder.encode(repo, "UTF-8") s"${client.repositoriesBaseUrl}/$encodedOwner/$encodedRepo" } + + def getProjectRepositories( + workspaceId: String, + projectKey: String, + pageRequest: Option[PageRequest], + pageLength: Option[Int] + ): RequestResponse[Seq[Repository]] = { + val encodedProjectKey = URLEncoder.encode(projectKey, "UTF-8") + + val url = s"${client.repositoriesBaseUrl}/$workspaceId?q=project.key=%22$encodedProjectKey%22" + pageRequest match { + case Some(request) => + client.executeWithCursor[Repository](url, request, pageLength) + case None => + val length = pageLength.fold("")(pagelen => s"pagelen=$pagelen") + val urlWithPageLength = joinQueryParameters(url, length) + client.executePaginated[Repository](urlWithPageLength) + } + } + }