Skip to content

Instantly share code, notes, and snippets.

@mrueegg
Created March 9, 2017 17:18
Show Gist options
  • Save mrueegg/b7dc99b4a771473547286291a3c77400 to your computer and use it in GitHub Desktop.
Save mrueegg/b7dc99b4a771473547286291a3c77400 to your computer and use it in GitHub Desktop.
Open task counter implementation in Scala for Bitbucket Server
import ch.mibex.crossproduct.api.OpenTasksCounter
import com.atlassian.bitbucket.pull.{PullRequest, PullRequestService, PullRequestTaskSearchRequest}
import com.atlassian.bitbucket.task.{Task, TaskState}
import com.atlassian.bitbucket.util.{PageProvider, PageRequest, PageUtils, PagedIterable}
import scala.collection.JavaConverters._
class BitbucketOpenTasksCounter(pullRequestService: PullRequestService) extends OpenTasksCounter[PullRequest] {
override def countOpenTasks(pullRequest: PullRequest): Long = {
val searchRequest = new PullRequestTaskSearchRequest.Builder(pullRequest).build()
new PagedIterable[Task](new PageProvider[Task] {
override def get(pageRequest: PageRequest) =
pullRequestService.searchTasks(searchRequest, pageRequest)
}, PageUtils.newRequest(0, 200))
.asScala
.count(_.getState == TaskState.OPEN)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment